Go to the latest version of this document.

t.p.a.AMP(BinaryBoxProtocol, BoxDispatcher, CommandLocator, SimpleStringLocator) : class documentation

Part of twisted.protocols.amp View Source View In Hierarchy

Known subclasses: twisted.trial._dist.worker.LocalWorkerAMP, twisted.trial._dist.worker.WorkerProtocol

This protocol is an AMP connection. See the module docstring for protocol details.
Method __init__ Undocumented
Method locateResponder Unify the implementations of CommandLocator and SimpleStringLocator to perform both kinds of dispatch, preferring CommandLocator.
Method __repr__ A verbose string representation which gives us information about this AMP connection.
Method makeConnection Emit a helpful log message when the connection is made.
Method connectionLost Emit a helpful log message when the connection is lost.

Inherited from BinaryBoxProtocol:

Instance Variable boxReceiver an IBoxReceiver provider, whose ampBoxReceived method will be invoked for each AmpBox that is received.
Method sendBox Send a amp.Box to my peer.
Method dataReceived Either parse incoming data as AmpBoxes or relay it to our nested protocol.
Method proto_init String received in the 'init' state.
Method proto_key String received in the 'key' state. If the key is empty, a complete box has been received.
Method proto_value String received in the 'value' state.
Method lengthLimitExceeded The key length limit was exceeded. Disconnect the transport and make sure a meaningful exception is reported.
Method unhandledError The buck stops here. This error was completely unhandled, time to terminate the connection.
Instance Variable _keyLengthLimitExceeded A flag which is only true when the connection is being closed because a key length prefix which was longer than allowed by the protocol was received.
Method _switchTo Switch this BinaryBoxProtocol's transport to a new protocol. You need to do this 'simultaneously' on both ends of a connection; the easiest way to do this is to use a subclass of ProtocolSwitchCommand.
Method _lockForSwitch No summary
Method _unlockFromSwitch Unlock this locked binary protocol so that further boxes may be sent again. This is used after an attempt to switch protocols has failed for some reason.
Method _prepareTLS Used by StartTLSCommand to put us into the state where we don't actually send things that get sent, instead we buffer them. see _sendBox.
Method _startTLS Used by TLSBox to initiate the SSL handshake.
Method _getPeerCertificate Undocumented
Method _defaultStartTLSResponder The default TLS responder doesn't specify any certificate or anything.

Inherited from StatefulStringProtocol (via BinaryBoxProtocol):

Instance Variable state Current state of the protocol. Defaults to 'init'. (type: str)
Method stringReceived Choose a protocol phase function and call it.

Inherited from IntNStringReceiver (via BinaryBoxProtocol, Int16StringReceiver):

Instance Variable structFormat format used for struct packing/unpacking. Define it in subclass. (type: str)
Instance Variable prefixLength length of the prefix, in bytes. Define it in subclass, using struct.calcsize(structFormat) (type: int)
Method stringReceived Override this for notification when each complete string is received.
Method sendString Send a prefixed string to the other end of the connection.
Instance Variable _unprocessed bytes received, but not yet broken up into messages / sent to stringReceived. _compatibilityOffset must be updated when this value is updated so that the recvd attribute can be generated correctly. (type: bytes)
Instance Variable _compatibilityOffset the offset within _unprocessed to the next message to be parsed. (used to generate the recvd attribute) (type: int)

Inherited from Protocol (via BinaryBoxProtocol, Int16StringReceiver, IntNStringReceiver):

Method logPrefix Return a prefix matching the class name, to identify log messages related to this protocol instance.

Inherited from BaseProtocol (via BinaryBoxProtocol, Int16StringReceiver, IntNStringReceiver, Protocol):

Method connectionMade Called when a connection is made.

Inherited from _PauseableMixin (via BinaryBoxProtocol, Int16StringReceiver, IntNStringReceiver):

Method pauseProducing Undocumented
Method resumeProducing Undocumented
Method stopProducing Undocumented

Inherited from _DescriptorExchanger (via BinaryBoxProtocol):

Method fileDescriptorReceived Collect received file descriptors to be claimed later by Descriptor.
Instance Variable _descriptors Temporary storage for all file descriptors received. Values in this dictionary are the file descriptors (as integers). Keys in this dictionary are ordinals giving the order in which each descriptor was received. The ordering information is used to allow Descriptor to determine which is the correct descriptor for any particular usage of that argument type. (type: dict)
Instance Variable _sendingDescriptorCounter A no-argument callable which returns the ordinals, starting from 0. This is used to construct values for _sendFileDescriptor.
Instance Variable _receivingDescriptorCounter A no-argument callable which returns the ordinals, starting from 0. This is used to construct values for fileDescriptorReceived.
Method _sendFileDescriptor Assign and return the next ordinal to the given descriptor after sending the descriptor over this protocol's transport.

Inherited from BoxDispatcher:

Instance Variable locator an object with a locateResponder method that locates a responder function that takes a Box and returns a result (either a Box or a Deferred which fires one).
Instance Variable boxSender an object which can send boxes, via the _sendBox method, such as an AMP instance. (type: IBoxSender)
Method startReceivingBoxes The given boxSender is going to start calling boxReceived on this BoxDispatcher.
Method stopReceivingBoxes No further boxes will be received here. Terminate all currently oustanding command deferreds with the given reason.
Method failAllOutgoing Call the errback on all outstanding requests awaiting responses.
Method callRemoteString This is a low-level API, designed only for optimizing simple messages for which the overhead of parsing is too great.
Method callRemote This is the primary high-level API for sending messages via AMP. Invoke it with a command and appropriate arguments to send a message to this connection's peer.
Method unhandledError This is a terminal callback called after application code has had a chance to quash any errors.
Method ampBoxReceived An AmpBox was received, representing a command, or an answer to a previously issued command (either successful or erroneous). Respond to it according to its contents.
Method dispatchCommand A box with a _command key was received.
Instance Variable _outstandingRequests a dictionary mapping request IDs to Deferreds which were returned for those requests.
Method _nextTag Generate protocol-local serial numbers for _ask keys.
Method _sendBoxCommand Send a command across the wire with the given amp.Box.
Method _answerReceived An AMP box was received that answered a command previously sent with callRemote.
Method _errorReceived An AMP box was received that answered a command previously sent with callRemote, with an error.
Method _commandReceived
Method _safeEmit Emit a box, ignoring ProtocolSwitched and ConnectionLost errors which cannot be usefully handled.

Inherited from CommandLocator:

Class __metaclass__ No summary
Method lookupFunction Deprecated synonym for locateResponder
Method _wrapWithSerialization Wrap aCallable with its command's argument de-serialization and result serialization logic.
def __init__(self, boxReceiver=None, locator=None): (source)
Undocumented
def locateResponder(self, name): (source)
Unify the implementations of CommandLocator and SimpleStringLocator to perform both kinds of dispatch, preferring CommandLocator.
def __repr__(self): (source)
A verbose string representation which gives us information about this AMP connection.
def makeConnection(self, transport): (source)
Emit a helpful log message when the connection is made.
def connectionLost(self, reason): (source)
Emit a helpful log message when the connection is lost.
API Documentation for Twisted, generated by pydoctor at 2013-04-03 11:20:05.