import sys from message_handler_node import define_message_types, NodeMessage class DirectoryServerMessage(NodeMessage): pass directory_server_messages = [ 'DirectoryServerJoin', 'DirectoryServerJoinContact', 'DirectoryServerLeave', 'DirectoryServerGetRingContact', 'DirectoryServerReturnRingContact' ] define_message_types( sys.modules[__name__], directory_server_messages, lambda name, parent, members: type(name, (DirectoryServerMessage, ), members))
class DHTNodeMessage(NodeMessage): pass message_types = [ 'ForwardMessage', 'PingMessage', 'PingResponse', 'JoinMessage', 'JoinResponse', 'StabilizeGetSuccessorPredecessor', 'StabilizeGotSuccessorPredecessor', 'StabilizeNotify', 'FindMessage', 'FindResponse', 'GetMessage', 'GetResponse', 'AppendMessage', 'AppendResponse', 'LeaveGetPredecessorSuccessor', 'LeaveMessage', 'LeaveResponse', 'LeaveUpdateSuccessor' ] define_message_types( sys.modules[__name__], message_types, lambda name, parent, members: type(name, (DHTNodeMessage, ), members)) def message_to_string(msg): d = msg.__dict__.copy() if 'id' in d: d['id'] = key_to_int(d['id']) return '%s: %s' % (msg.__class__.__name__, str(d)) class DHTNode(MessageHandlerNode): """ Chord node Messages sent recursively
class DHTNodeMessage(NodeMessage): pass message_types = [ 'ForwardMessage', 'PingMessage', 'PingResponse', 'JoinMessage', 'JoinResponse', 'StabilizeGetSuccessorPredecessor', 'StabilizeGotSuccessorPredecessor', 'StabilizeNotify', 'FindMessage', 'FindResponse', 'GetMessage', 'GetResponse', 'AppendMessage', 'AppendResponse', 'LeaveGetPredecessorSuccessor', 'LeaveMessage', 'LeaveResponse', 'LeaveUpdateSuccessor' ] define_message_types( sys.modules[__name__], message_types, lambda name, parent, members:type(name, (DHTNodeMessage,), members) ) def message_to_string(msg): d = msg.__dict__.copy() if 'id' in d: d['id'] = key_to_int(d['id']) return '%s: %s' % (msg.__class__.__name__, str(d)) class DHTNode(MessageHandlerNode): """ Chord node Messages sent recursively Maintains an in-memory dict of node data
import sys from message_handler_node import define_message_types, NodeMessage class DirectoryServerMessage(NodeMessage): pass directory_server_messages = [ "DirectoryServerJoin", "DirectoryServerJoinContact", "DirectoryServerLeave", "DirectoryServerGetRingContact", "DirectoryServerReturnRingContact", ] define_message_types( sys.modules[__name__], directory_server_messages, lambda name, parent, members: type(name, (DirectoryServerMessage,), members), )