delete file protocolbuffer.py
This commit is contained in:
@@ -1,56 +0,0 @@
|
|||||||
'''
|
|
||||||
@author: sylvain
|
|
||||||
'''
|
|
||||||
from twisted.internet import protocol
|
|
||||||
from stream import Stream
|
|
||||||
|
|
||||||
class ProtocolBuffer(protocol.Protocol):
|
|
||||||
'''
|
|
||||||
Inherit from protocol twisted class
|
|
||||||
allow this protocol to wait until expected size of packet
|
|
||||||
throw expect function and set a callback or by default
|
|
||||||
call recv function (may be override)
|
|
||||||
'''
|
|
||||||
def __init__(self):
|
|
||||||
'''
|
|
||||||
Constructor
|
|
||||||
'''
|
|
||||||
#data buffer received from twisted network layer
|
|
||||||
self._buffer = ""
|
|
||||||
|
|
||||||
#len of next packet pass to next state function
|
|
||||||
self._expectedLen = 0
|
|
||||||
|
|
||||||
def dataReceived(self, data):
|
|
||||||
'''
|
|
||||||
inherit from protocol class
|
|
||||||
main event of received data
|
|
||||||
'''
|
|
||||||
#add in buffer
|
|
||||||
self._buffer += data
|
|
||||||
#while buffer have expected size call local callback
|
|
||||||
while len(self._buffer) >= self._expectedLen:
|
|
||||||
#expected data is first expected bytes
|
|
||||||
expectedData = Stream(self._buffer[0:self._expectedLen])
|
|
||||||
#rest is for next event of automata
|
|
||||||
self._buffer = self._buffer[self._expectedLen:]
|
|
||||||
#call recv function
|
|
||||||
self.recvExpectedData(expectedData)
|
|
||||||
|
|
||||||
def expect(self, expectedLen, callback = None):
|
|
||||||
'''
|
|
||||||
new expected len
|
|
||||||
'''
|
|
||||||
self._expectedLen = expectedLen
|
|
||||||
|
|
||||||
#default callback is recvExpectedData
|
|
||||||
if callback is None:
|
|
||||||
callback = self.__class__.recvExpectedData
|
|
||||||
|
|
||||||
self.recvExpectedData = callback
|
|
||||||
|
|
||||||
def recvExpectedData(self, data):
|
|
||||||
'''
|
|
||||||
call when expected data is receive
|
|
||||||
'''
|
|
||||||
pass
|
|
||||||
Reference in New Issue
Block a user