Changeset 412
- Timestamp:
- 01/22/03 00:52:10 (6 years ago)
- Files:
-
- trunk/RBMessaging (added)
- trunk/RBMessaging/RBMessaging (added)
- trunk/RBMessaging/RBMessaging/Model.py (added)
- trunk/RBTelepathy/RBTelepathy/Connection.py (modified) (6 diffs)
- trunk/RBTelepathy/RBTelepathy/ErrorTypes.py (modified) (2 diffs)
- trunk/RBTelepathy/RBTelepathy/Packet/AuthenticationHandler.py (added)
- trunk/RBTelepathy/RBTelepathy/Packet/Builder.py (modified) (1 diff)
- trunk/RBTelepathy/RBTelepathy/Packet/Elements.py (modified) (5 diffs)
- trunk/RBTelepathy/RBTelepathy/Packet/ErrorHandler.py (added)
- trunk/RBTelepathy/RBTelepathy/Packet/MessageHandler.py (added)
- trunk/RBTelepathy/RBTelepathy/Packet/StreamElements.py (modified) (1 diff)
- trunk/RBTelepathy/RBTelepathy/Packet/__init__.py (modified) (2 diffs)
- trunk/RBTelepathy/RBTelepathy/Stream/Protocol.py (modified) (3 diffs)
- trunk/RBTelepathy/RBTelepathy/Stream/SocketAdaptor.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBTelepathy/RBTelepathy/Connection.py
r408 r412 24 24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 25 26 import logging 26 27 import ErrorTypes 27 28 … … 30 31 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 32 32 #class PacketDispatch(object):33 33 class Connection(object): 34 34 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 36 36 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 37 38 __slots__ = ('RoutedPacketHandlers', 'StreamPacketHandlers') 39 log = logging.getLogger('.'.join((__name__, 'Connection'))) 38 log = logging.getLogger('Connection') 39 RoutedPacketHandlers = {} 40 StreamPacketHandlers = {} 40 41 41 42 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 44 45 45 46 def __init__(self): 46 self.RoutedPacketHandlers = {} 47 self.StreamPacketHandlers = {} 47 self.RoutedPacketHandlers = self.RoutedPacketHandlers.copy() 48 self.StreamPacketHandlers = self.StreamPacketHandlers.copy() 49 50 def SendPacket(self, *args, **kw): 51 self.protocol.SendPacket(*args, **kw) 48 52 49 53 def OnRoutedPacket(self, packet, *args, **kw): 50 self.log.debug('Received Routed packet (%s, %s)', (packet.__namespace__, packet.__node__))54 self.log.debug('Received Routed packet (%s, %s)', packet.__namespace__, packet.__node__) 51 55 52 56 # Lookup our packet handler … … 62 66 63 67 def OnStreamPacket(self, packet, *args, **kw): 64 self.log.debug('Received Stream packet (%s, %s)', (packet.__namespace__, packet.__node__))68 self.log.debug('Received Stream packet (%s, %s)', packet.__namespace__, packet.__node__) 65 69 66 70 # Lookup our packet handler … … 75 79 return packethandler.OnStreamPacket(self, packet, *args, **kw) 76 80 77 # XXX: OLD CODE 78 ##def OnRoutedPacket(self, packet, addresses): 79 ## # Copy the root level packet, so we can adjust it's addresses 80 ## packet = copy.copy(packet) 81 ## # Change the address lists in the packet 82 ## packet.SetAddresses(addresses) 83 ## self.log.debug('Sending routed packet to protocol') 84 ## # Send the packet to the stream protocol 85 ## self.protocol.SendPacket(packet) 81 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 86 82 87 ##def GetRouter(self): 88 ## try: return self.router 89 ## except AttributeError: 90 ## raise AttributeError, '%s has no connection to the router' % (self.__class__.__name__, ) 83 class ServerConnection(Connection): 84 # TODO: 85 # Load Packet.ErrorHandler 86 # Load Packet.AuthenticationHandler for Server Connection 87 # 88 # TODO On Authenticated: 89 # Load Packet.ConfigureHandler for Server Connection 90 # Load Packet.MessageHandler for Server Connection 91 # 92 # This process should be controllable by an xml loader 91 93 92 ##def _PKT__message(self, packet): 93 ## # TODO: Flush out 94 ## #fromlist = packet.GetAddresses('from') 95 ## #if fromlist: 96 ## # raise ValueError, '"from" element not allowed on a user connection' 97 ## tolist = packet.GetAddresses('to') 98 ## self.log.info('Sending "%s" packet to Router', packet.__node__) 99 ## routecommands = self.GetRouter().RoutePacket(packet, tolist) 100 ## if routecommands: 101 ## self.log.debug('Sending routed packet "%s" to destination', packet.__node__) 102 ## return [routecmd() for routecmd in routecommands] 103 ## else: return () 94 def OnAuthenticated(self, succeeded): 95 if succeeded: 96 self.log.info('Successful authentication from client') 97 else: 98 self.log.warn('Failed authentication from client') 104 99 100 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 101 102 class ClientConnection(Connection): 103 # TODO: 104 # Load Packet.ErrorHandler 105 # Load Packet.AuthenticationHandler for Client Connection 106 # 107 # This process should be controllable by an xml loader 108 109 def OnAuthenticated(self, succeeded): 110 if succeeded: 111 self.log.info('Successfully authenticated to server') 112 else: 113 self.log.warn('Failed authentication to server') 114 trunk/RBTelepathy/RBTelepathy/ErrorTypes.py
r408 r412 50 50 def __init__(self, message, **kw): 51 51 self.message = message 52 for name, value in kw.iteritems :52 for name, value in kw.iteritems(): 53 53 setattr(self, name, value) 54 54 … … 70 70 71 71 def _get_errortype(self): 72 return getattr(self.__class__.__name__)72 return self.__class__.__name__ 73 73 errortype = property(_get_errortype) 74 74 trunk/RBTelepathy/RBTelepathy/Packet/Builder.py
r411 r412 26 26 import weakref 27 27 from RBFoundation.XMLClassBuilder import XMLClassBuilder 28 from RBFoundation.XMLClassBuilder import ElementFactory as EF 28 29 29 30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBTelepathy/RBTelepathy/Packet/Elements.py
r410 r412 26 26 from RBFoundation.XMLBuilder import XMLBuilderObjectBase 27 27 from RBFoundation.XMLClassBuilder import XMLClassBuilderObjectMixin 28 from RBFoundation.XMLObjectify import BaseObjectifiedXML, ObjectifiedXML28 from RBFoundation.XMLObjectify import BaseObjectifiedXML, AttributedObjectifiedXML, ObjectifiedXML 29 29 import URIAddress 30 30 … … 51 51 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52 52 53 class PacketChildElement(PacketElementBase, AttributedObjectifiedXML): 54 pass 55 56 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57 53 58 class RootElementBase(PacketElementBase): 54 59 def OnStreamData(self, data, OnPacketComplete=None): … … 65 70 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 66 71 67 class StreamRootElement( PacketElementBase):72 class StreamRootElement(RootElementBase): 68 73 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 69 74 #~ OnStreamData adaptor … … 98 103 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 99 104 100 class RouteableRootElement( PacketElementBase):105 class RouteableRootElement(RootElementBase): 101 106 def GetAddresses(self, nodename='to'): 102 107 existing = self._getElements(node=nodename, namespace=self.__namespace__) … … 131 136 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 132 137 133 class URIAddressElement( PacketElementBase):138 class URIAddressElement(RootElementBase): 134 139 def OnUpdateContent(self): 135 PacketElementBase.OnUpdateContent(self)140 RootElementBase.OnUpdateContent(self) 136 141 if self._addr is None: 137 142 try: del self._attributes['addr'] trunk/RBTelepathy/RBTelepathy/Packet/StreamElements.py
r409 r412 24 24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 25 26 from XMLMessageElements import PacketElementBase26 from RBMElements import PacketElementBase 27 27 28 28 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trunk/RBTelepathy/RBTelepathy/Packet/__init__.py
r411 r412 24 24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25 25 26 import XMLBuilder as _XMLBuilder26 import RBMBuilder as _RBMBuilder 27 27 28 28 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 30 30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 31 32 StandardStreamPacketBuilder = _ XMLBuilder.StreamPacketBuilder33 RBMessagingNamespace = _ XMLBuilder.RBMessagingNamespace34 DefaultNamespace = _ XMLBuilder.RBNamespaceSynonyms[None]35 Namespace = _ XMLBuilder.RBMessagingNamespace32 StandardStreamPacketBuilder = _RBMBuilder.StreamPacketBuilder 33 RBMessagingNamespace = _RBMBuilder.RBMessagingNamespace 34 DefaultNamespace = _RBMBuilder.RBNamespaceSynonyms[None] 35 Namespace = _RBMBuilder.RBMessagingNamespace 36 36 37 #class RootMessage(XMLMessageElements.Message, XMLClassBuilder.XMLClassBuilderBaseMixin):38 # NamespaceSynonyms = StandardNamespaceSynonyms39 # DefaultNamespace = NamespaceSynonyms[None]40 # ElementFactories = XMLClassBuilder.ElementFactorySet({41 # (RBMessagingNamespace, 'stream'): XMLStreamElements.StreamFormatFactory(),42 # (RBMessagingNamespace, 'to'): EF.Static(XMLMessageElements.URIAddressElement),43 # (RBMessagingNamespace, 'from'): EF.Static(XMLMessageElements.URIAddressElement),44 # #(RBMessagingNamespace, ): ChildELementErrorFactory(),45 # None: EF.Static(ObjectifiedXML),46 # })47 48 # def _xmlChildFactory(self, owner, parent, node, attributes, namespacemap):49 # return self.ElementFactorySet._GetElementFactory(owner, parent, node, attributes, namespacemap)50 trunk/RBTelepathy/RBTelepathy/Stream/Protocol.py
r408 r412 44 44 currentpacket = None 45 45 packetbuilder = None 46 log = logging.getLogger(' .'.join((__name__, 'StreamProtocol')))46 log = logging.getLogger('StreamProtocol') 47 47 48 48 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 62 62 streamdata = ''.join((packet.GetStreamHeader(), self.delimiter, packet.GetStreamData())) 63 63 self.stream.write(streamdata) 64 SendPacket = OnPacket 64 65 65 66 def OnRecvStreamData(self, streamdata): … … 104 105 errortext = xmlescape(error.message) 105 106 errortype = 'type=%s' % (xmlquoteattr(error.errortype),) 107 106 108 self.stream.write('''<error xmlns='%s' %s>%s</error>%s''' % (namespace, errortype, errortext, self.delimiter)) 107 109 trunk/RBTelepathy/RBTelepathy/Stream/SocketAdaptor.py
r408 r412 41 41 _sendData = "" 42 42 isshutdown = False 43 log = logging.getLogger(' .'.join((__name__, 'SocketStream')))43 log = logging.getLogger('SocketStream') 44 44 45 45 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
