Package twisted :: Package protocols :: Module basic :: Class NetstringReceiver
[frames | no frames]

Class NetstringReceiver

BaseProtocol --+    
               |    
        Protocol --+
                   |
                  NetstringReceiver

Known Subclasses:
JobFileScanner, LogFileScanner

This uses djb's Netstrings protocol to break up the input into strings.

Each string makes a callback to stringReceived, with a single argument of that string.

Security features:
  1. Messages are limited in size, useful if you don't want someone sending you a 500MB netstring (change MAX_LENGTH to the maximum length you wish to accept).
  2. The connection is lost if an illegal message is received.

Method Summary
  dataReceived(self, data)
Called whenever data is received.
  doComma(self)
  doData(self)
  doLength(self)
  sendString(self, data)
  stringReceived(self, line)
Override this.
    Inherited from Protocol
  connectionLost(self, reason)
Called when the connection is shut down.

Class Variable Summary
int brokenPeer = 0                                                                     
int MAX_LENGTH = 99999                                                                 
    Inherited from Protocol
Implements __implemented__ = <implementedBy twisted.internet.protoc...
ClassProvides __provides__ = <zope.interface.declarations.ClassProvide...

Method Details

dataReceived(self, data)

Called whenever data is received.

Use this method to translate to a higher-level message. Usually, some callback will be made upon the receipt of each complete protocol message.
Parameters:
data - a string of indeterminate length. Please keep in mind that you will probably need to buffer some data, as partial (or multiple) protocol messages may be received! I recommend that unit tests for protocols call through to this method with differing chunk sizes, down to one byte at a time.
Overrides:
twisted.internet.protocol.Protocol.dataReceived (inherited documentation)

stringReceived(self, line)

Override this.

Class Variable Details

brokenPeer

Type:
int
Value:
0                                                                     

MAX_LENGTH

Type:
int
Value:
99999                                                                 

Generated by Epydoc 2.1 on Sun Dec 10 22:04:45 2006 http://epydoc.sf.net