Changeset 459

Show
Ignore:
Timestamp:
02/27/03 15:35:33 (6 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBFoundation/RBFoundation/XMLNode.py

    r453 r459  
    106106    def __init__(self, node=None, namespace=None, prefix='', default_namespaces=None, attrlookup=None): 
    107107        self.enableattrlookup(attrlookup) 
    108         if default_namespaces: self.namespaces = default_namespaces 
    109         else: self.namespaces = self.default_namespaces.copy() 
     108        if default_namespaces is not None:  
     109            self.namespaces = default_namespaces 
     110        else:  
     111            self.namespaces = self.default_namespaces.copy() 
    110112        self.elems = self.default_elements[:] 
    111113        self.attrs = self.default_attributes.copy() 
    112114        self.node = node or self.default_node or self.__class__.__name__ 
    113         self.namespace = (prefix, namespace) 
     115        if namespace is None: 
     116            self.namespace = (prefix, ) 
     117        else:  
     118            self.namespace = (prefix, namespace) 
    114119        self.softspace = 0 # for compatibility with file-like objects 
    115120 
     
    373378    #~ namespace property ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    374379 
    375     def _getnamespace(self): 
     380    def _get_namespace(self): 
    376381        """Returns the namespace of the xmlnode""" 
    377382        return self.namespaces.xmlns(self.prefix or '') 
    378     def _setnamespace(self, namespace): 
     383    def _set_namespace(self, value): 
    379384        """Sets the namespace of the xmlnode""" 
    380         if isinstance(namespace, tuple): 
    381             if len(namespace) == 1: 
    382                 self.prefix, namespace = namespace[0], '' 
     385        if isinstance(value, tuple): 
     386            if len(value) == 1: 
     387                self.prefix, namespace = value[0] or '', None 
    383388            else: 
    384                 self.prefix, namespace = namespace 
    385         self.prefix = self.prefix or '' 
     389                self.prefix, namespace = value[0] or '', value[1] 
     390        else: 
     391            self.prefix, namespace = self.prefix or '', value 
    386392        if namespace is not None: 
    387393            self.namespaces.setxmlns(self.prefix, namespace) 
    388     def _delnamespace(self): 
     394    def _del_namespace(self): 
    389395        """Removes the namespace of the xmlnode""" 
    390396        try: del self.namespaces[self.prefix or ''] 
    391397        except KeyError: pass 
    392     namespace = property(_getnamespace, _setnamespace, _delnamespace) 
     398    namespace = property(_get_namespace, _set_namespace, _del_namespace) 
    393399 
    394400    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBMessaging/RBMessaging/Model.py

    r415 r459  
    2525 
    2626import weakref 
     27import socket 
     28import logging 
     29import logging.handlers 
    2730 
    28 import Connection 
    2931from RBFoundation import SmartSelect 
     32from RBTelepathy import SocketConnections 
     33 
     34from RBMessaging.Packet import RBNamespace 
     35 
     36from Router import SimpleRouter 
     37import Client.Connection 
     38import Host.Connection 
    3039 
    3140#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3342#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3443 
    35 class MessagingModel(object): 
     44class Model(object): 
    3645    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3746    #~ Public Methods  
     
    4150        self.Connections = {} 
    4251        self.Routers = {} 
     52        self.Routers[(RBNamespace, 'message')] = SimpleRouter.AuthorityDictRouter() 
    4353 
    4454    def GetRouter(self, key): 
    45         try: 
    46             return weakref.proxy(self.Routers[key]) 
    47         except KeyError: 
    48             return None 
     55        try: return weakref.proxy(self.Routers[key]) 
     56        except KeyError: return None 
    4957 
    5058    def Process(self, timeout): 
    5159        return self.SmartSelectCollection.Process(timeout) 
     60 
     61    def Connect(self, host='localhost'): 
     62        host = host or socket.gethostname() 
     63        conn = Client.Connection.Connection.BuildFromInfo(self, host) 
     64        logging.info('Connecting to %r', host) 
     65        return conn 
     66 
     67    def Serve(self, host='localhost'): 
     68        host = host or socket.gethostname() 
     69        conn = SocketConnections.ServerConnection.BuildFromInfo(self, host) 
     70        logging.info('Serving Connections on %r', host) 
     71        conn.ConnectionBuilder = Host.Connection.Connection.BuildFromSocket 
    5272 
    5373    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    6686    SmartSelectCollection = property(_GetSmartSelectCollection, None, _DelSmartSelectCollection) 
    6787 
     88#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     89 
     90if __name__ == '__main__': 
     91    logging.basicConfig() 
     92    logging.root.setLevel(logging.INFO) 
     93    #logging.root.setLevel(logging.DEBUG) 
     94 
     95    try: 
     96        model = Model() 
     97        model.Serve(None) 
     98        send = model.Connect(None).Login('send') 
     99        while not getattr(send, 'loginaddr', None): 
     100            model.Process(0.1) 
     101        recv = model.Connect(None).Login('recv') 
     102        while not getattr(recv, 'loginaddr', None): 
     103            model.Process(0.1) 
     104        send.Message('recv', 'Some text for recv!') 
     105        send.Message('recv', 'Some data for recv!', '\xde\xad\xbe\xef') 
     106        while 1: 
     107            model.Process(0.1) 
     108    except KeyboardInterrupt: 
     109        pass 
     110 
  • trunk/RBTelepathy/RBTelepathy/Connection.py

    r455 r459  
    8989            for key in handler.RoutedPacketHandlers: 
    9090                self.RoutedPacketHandlers[key] = handler 
     91            return handler 
    9192        except ErrorTypes.RBTelepathyError, e:  
    9293            raise