Class t.p.a._AmpParserBase(_DispatchMixin):

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

Known subclasses: twisted.protocols.amp.AMP

Base class for parsing AMP boxes.
Method __init__ Create an _AmpParserBase, initializing request-response tracking state.
Method _puke This is a terminal callback called after application code has had a
Method _nextTag Generate protocol-local serial numbers for _ask keys.
Method failAllOutgoing Call the errback on all outstanding requests awaiting responses.
Method ampBoxReceived An AmpBox was received. Respond to it according to its contents.
Method _sendBoxCommand Send a command across the wire with the given amp.Box.
Method callRemoteString This is a low-level API, designed only for opitmizing simple messages
Method callRemote This is the primary high-level API for sending messages via AMP. Invoke it

Inherited from _DispatchMixin:

Method _wrapWithSerialization Wrap aCallable with its command's argument de-serialization
Method lookupFunction Return a callable to invoke when executing the named command.
Method dispatchCommand A box with a _command key was received.
def __init__(self): (source)
Create an _AmpParserBase, initializing request-response tracking state.
def _puke(self, failure): (source)
This is a terminal callback called after application code has had a chance to quash any errors.
def _nextTag(self): (source)
Generate protocol-local serial numbers for _ask keys.
Returnsa string that has not yet been used on this connection.
def failAllOutgoing(self, reason): (source)
Call the errback on all outstanding requests awaiting responses.
Parametersreasonthe Failure instance to pass to those errbacks.
def ampBoxReceived(self, box): (source)
An AmpBox was received. Respond to it according to its contents.
Parametersboxan AmpBox
def _sendBoxCommand(self, command, box, requiresAnswer=True): (source)

Send a command across the wire with the given amp.Box.

Mutate the given box to give it any additional keys (_command, _ask) required for the command and request/response machinery, then send it.

Returns a Deferred which fires with the response amp.Box when it is received, or fails with a amp.RemoteAmpError if an error is received.

If the Deferred fails and the error is not handled by the caller of this method, the failure will be logged and the connection dropped.
Parameterscommanda str, the name of the command to issue.
boxan AmpBox with the arguments for the command.
requiresAnswera boolean. Defaults to True. If True, return a Deferred which will fire when the other side responds to this command. If False, return None and do not ask the other side for acknowledgement.
Returnsa Deferred which fires the AmpBox that holds the response to this command, or None, as specified by requiresAnswer.
def callRemoteString(self, command, requiresAnswer=True, **kw): (source)
This is a low-level API, designed only for opitmizing simple messages for which the overhead of parsing is too great.
Parameterscommanda str naming the command.
kwarguments to the amp box.
requiresAnswera boolean. Defaults to True. If True, return a Deferred which will fire when the other side responds to this command. If False, return None and do not ask the other side for acknowledgement.
Returnsa Deferred which fires the AmpBox that holds the response to this command, or None, as specified by requiresAnswer.
def callRemote(self, commandType, *a, **kw): (source)
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.
ParameterscommandTypea subclass of Command. (type: type )
aPositional (special) parameters taken by the command. Positional parameters will typically not be sent over the wire. The only command included with AMP which uses positional parameters is ProtocolSwitchCommand, which takes the protocol that will be switched to as its first argument.
kwKeyword arguments taken by the command. These are the arguments declared in the command's 'arguments' attribute. They will be encoded and sent to the peer as arguments for the commandType.
ReturnsIf commandType has a requiresAnswer attribute set to False, then return None. Otherwise, return a Deferred which fires with a dictionary of objects representing the result of this call. Additionally, this Deferred may fail with an exception representing a connection failure, with UnknownRemoteError if the other end of the connection fails for an unknown reason, or with any error specified as a key in commandType's errors dictionary.
API Documentation for twisted, generated by pydoctor.