twisted.protocols.amp.ProtocolSwitchCommand(Command) class documentationtwisted.protocols.amp
(View In Hierarchy)
Known subclasses: twisted.test.test_amp.TestSwitchProto
Use this command to switch from something Amp-derived to a different protocol mid-connection. This can be useful to use amp as the connection-startup negotiation phase. Since TLS is a different layer entirely, you can use Amp to negotiate the security parameters of your connection, then switch to a different protocol, and the connection will remain secured.
| Method | __init__ | Create a ProtocolSwitchCommand. | 
| Class Method | makeResponse | Serialize a mapping of arguments using this Command's 
response schema. | 
| Method | _doCommand | When we emit a ProtocolSwitchCommand, lock the protocol, but don't actually switch to the new protocol unless an acknowledgement is received. If an error is received, switch back. | 
Inherited from Command:
| Class Variable | arguments | A list of 2-tuples of (name, Argument-subclass-instance), specifying the names and values of the parameters which are required for this command. | 
| Class Variable | response | A list like arguments,
but instead used for the return value. | 
| Class Variable | errors | A mapping of subclasses of Exceptionto wire-protocol tags for errors represented asstrs.
Responders which raise keys from this dictionary will have the error 
translated to the corresponding tag on the wire. Invokers which receive 
Deferreds from invoking this command withBoxDispatcher.callRemotewill potentially receive Failures with keys from this mapping as their 
value. This mapping is inherited; if you declare a command which handlesFooErroras 'FOO_ERROR', then subclass it and specifyBarErroras 'BAR_ERROR', responders to the subclass may raise 
eitherFooErrororBarError, and invokers must be
able to deal with either of those exceptions. | 
| Class Variable | fatalErrors | like 'errors', but errors in this list will always terminate the connection, despite being of a recognizable error type. | 
| Class Variable | commandType | The type of Box used to issue commands; useful only for protocol-modifying 
behavior like startTLS or protocol switching.  Defaults to a plain vanilla Box. | 
| Class Variable | responseType | The type of Box used to respond to this command; only useful for 
protocol-modifying behavior like startTLS or protocol switching. Defaults 
to a plain vanilla Box. | 
| Instance Variable | requiresAnswer | a boolean; defaults to True.  Set it to False on your subclass if you want 
callRemote to return None.  Note: this is a hint only to the client side of
the protocol.  The return-type of a command responder method must always be
a dictionary adhering to the contract specified by response,
because clients are always free to request a response if they want one. | 
| Class | __metaclass__ | Metaclass hack to establish reverse-mappings for 'errors' and 'fatalErrors' as class vars. | 
| Class Method | makeArguments | Serialize a mapping of arguments using this Command's 
argument schema. | 
| Class Method | parseResponse | Parse a mapping of serialized arguments using this Command's 
response schema. | 
| Class Method | parseArguments | Parse a mapping of serialized arguments using this Command's 
argument schema. | 
| Class Method | responder | Declare a method to be a responder for a particular command. | 
Create a ProtocolSwitchCommand.
| Parameters | _protoToSwitchToFactory | a ProtocolFactory which will generate the Protocol to switch to. | 
| kw | Keyword arguments, encoded and handled normally as Commandwould. | 
When we emit a ProtocolSwitchCommand, lock the protocol, but don't actually switch to the new protocol unless an acknowledgement is received. If an error is received, switch back.