diff options
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/protocols/stateful.py')
-rwxr-xr-x | lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/protocols/stateful.py | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/protocols/stateful.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/protocols/stateful.py deleted file mode 100755 index 7b82ae3d..00000000 --- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/protocols/stateful.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- test-case-name: twisted.test.test_stateful -*- - -# Copyright (c) Twisted Matrix Laboratories. -# See LICENSE for details. - - -from twisted.internet import protocol - -try: - from cStringIO import StringIO -except ImportError: - from StringIO import StringIO - -class StatefulProtocol(protocol.Protocol): - """A Protocol that stores state for you. - - state is a pair (function, num_bytes). When num_bytes bytes of data arrives - from the network, function is called. It is expected to return the next - state or None to keep same state. Initial state is returned by - getInitialState (override it). - """ - _sful_data = None, None, 0 - - def makeConnection(self, transport): - protocol.Protocol.makeConnection(self, transport) - self._sful_data = self.getInitialState(), StringIO(), 0 - - def getInitialState(self): - raise NotImplementedError - - def dataReceived(self, data): - state, buffer, offset = self._sful_data - buffer.seek(0, 2) - buffer.write(data) - blen = buffer.tell() # how many bytes total is in the buffer - buffer.seek(offset) - while blen - offset >= state[1]: - d = buffer.read(state[1]) - offset += state[1] - next = state[0](d) - if self.transport.disconnecting: # XXX: argh stupid hack borrowed right from LineReceiver - return # dataReceived won't be called again, so who cares about consistent state - if next: - state = next - if offset != 0: - b = buffer.read() - buffer.seek(0) - buffer.truncate() - buffer.write(b) - offset = 0 - self._sful_data = state, buffer, offset - |