Package lacewing :: Package moo :: Module protocol
[frames] | no frames]

Source Code for Module lacewing.moo.protocol

 1  from twisted.internet import protocol 
 2   
 3  from lacewing.moo.packetloaders.common import OutOfData 
 4   
 5  from lacewing.multidict import MultikeyDict 
 6   
7 -class MooProtocol(protocol.Protocol):
8 name = None 9 id = None 10 11 isAccepted = False 12 13 channels = None 14 _packetBuffer = '' 15
16 - def __init__(self):
17 self.channels = MultikeyDict()
18
19 - def sendLoader(self, loader):
20 newPacket = self._sendPacket(**self.settings) 21 newPacket.loader = loader 22 self.transport.write(newPacket.generate())
23
24 - def dataReceived(self, data):
25 packetBuffer = ''.join([self._packetBuffer, data]) 26 newPacket = self._receivePacket(**self.settings) 27 try: 28 while 1: 29 bytesRead = newPacket.load(packetBuffer) 30 self.loaderReceived(newPacket.loader) 31 packetBuffer = packetBuffer[bytesRead:] 32 if len(packetBuffer) == 0: 33 break 34 except OutOfData: 35 pass 36 self._packetBuffer = packetBuffer
37
38 - def loaderReceived(self, loader):
39 """ 40 Called upon receiving a packet from the 41 other end. 42 """ 43 raise NotImplementedError
44