Encode and decode file descriptors for exchange over a UNIX domain socket.
This argument type requires an AMP connection set up over an IUNIXTransport
provider (for example, the kind of connection created by IReactorUNIX.connectUNIX
and UNIXClientEndpoint
).
There is no correspondence between the integer value of the file descriptor on the sending and receiving sides, therefore an alternate approach is taken to matching up received descriptors with particular Descriptor
parameters. The argument is encoded to an ordinal (unique per connection) for inclusion in the AMP command or response box. The descriptor itself is sent using IUNIXTransport.sendFileDescriptor
. The receiver uses the order in which file descriptors are received and the ordinal value to come up with the received copy of the descriptor.
Method | from |
Take a unique identifier associated with a file descriptor which must have been received by now and use it to look up that descriptor in a dictionary where they are kept. |
Method | to |
Send inObject, an integer file descriptor, over proto's connection and return a unique identifier which will allow the receiver to associate the file descriptor with this argument. |
Inherited from Integer
:
Method | to |
Convert a Python object into a string for passing over the network. |
Inherited from Argument
(via Integer
):
Method | __init__ |
Create an Argument. |
Method | from |
Populate an 'out' dictionary with mapping names to Python values decoded from an 'in' AmpBox mapping strings to string values. |
Method | from |
Convert a string to a Python object. Subclasses must implement this. |
Method | retrieve |
Retrieve the given key from the given dictionary, removing it if found. |
Method | to |
Populate an 'out' AmpBox with strings encoded from an 'in' dictionary mapping names to Python values. |
Instance Variable | optional |
Undocumented |
Take a unique identifier associated with a file descriptor which must have been received by now and use it to look up that descriptor in a dictionary where they are kept.
Parameters | |
in | The base representation (as a byte string) of an ordinal indicating which file descriptor corresponds to this usage of this argument. |
proto:BinaryBoxProtocol | The protocol used to receive this descriptor. This protocol must be connected via a transport providing IUNIXTransport . |
Returns | |
int | The file descriptor represented by inString. |
Send inObject, an integer file descriptor, over proto's connection and return a unique identifier which will allow the receiver to associate the file descriptor with this argument.
Parameters | |
in | A file descriptor to duplicate over an AMP connection as the value for this argument. |
proto | The protocol which will be used to send this descriptor. This protocol must be connected via a transport providing IUNIXTransport . |
Returns | |
bytes | A byte string which can be used by the receiver to reconstruct the file descriptor. |