class MemoryIOSystem: (source)
Implements interfaces: twisted.pair.tuntap._IInputOutputSystem
An in-memory implementation of basic I/O primitives, useful in the context of unit testing as a drop-in replacement for parts of the os
module.
Instance Variable | permissions |
|
Class Variable | O_RDWR |
|
Class Variable | O_NONBLOCK |
|
Class Variable | O_CLOEXEC |
|
Method | __init__ |
Undocumented |
Method | getTunnel |
Get the Tunnel object associated with the given TuntapPort . |
Method | registerSpecialDevice |
Specify a class which will be used to handle I/O to a device of a particular name. |
Method | open |
No summary |
Method | read |
Try to read some bytes out of one of the in-memory buffers which may previously have been populated by write . |
Method | write |
Try to add some bytes to one of the in-memory buffers to be accessed by a later read call. |
Method | close |
Discard the in-memory buffer and other in-memory state for the given file descriptor. |
Method | ioctl |
Perform some configuration change to the in-memory state for the given file descriptor. |
Method | sendUDP |
Write an ethernet frame containing an ip datagram containing a udp datagram containing the given payload, addressed to the given address, to a tunnel device previously opened on this I/O system. |
Method | receiveUDP |
Get a socket-like object which can be used to receive a datagram sent from the given address. |
Instance Variable | _devices |
|
Instance Variable | _openFiles |
|
Instance Variable | _counter |
Get the Tunnel
object associated with the given TuntapPort
.
Parameters | port | A TuntapPort previously initialized using this MemoryIOSystem . |
Returns | The tunnel object created by a prior use of open on this object on the tunnel special device file. (type: Tunnel ) |
A replacement for os.open
. This initializes state in this MemoryIOSystem
which will be reflected in the behavior of the other file descriptor-related methods (eg MemoryIOSystem.read
, MemoryIOSystem.write
, etc).
Parameters | name | A string giving the name of the file to open. (type: bytes ) |
flags | The flags with which to open the file. (type: int ) | |
mode | The mode with which to open the file. (type: int ) | |
Returns | A file descriptor associated with the newly opened file description. (type: int ) | |
Raises | OSError | With ENOSYS if the file is not a recognized special device file. |
Try to read some bytes out of one of the in-memory buffers which may previously have been populated by write
.
See Also | os.read |
Try to add some bytes to one of the in-memory buffers to be accessed by a later read
call.
See Also | os.write |
Discard the in-memory buffer and other in-memory state for the given file descriptor.
See Also | os.close |
Perform some configuration change to the in-memory state for the given file descriptor.
See Also | fcntl.ioctl |
Write an ethernet frame containing an ip datagram containing a udp datagram containing the given payload, addressed to the given address, to a tunnel device previously opened on this I/O system.
Parameters | datagram | A UDP datagram payload to send. (type: bytes ) |
address | The destination to which to send the datagram. (type: tuple of (bytes , int )) | |
Returns | A two-tuple giving the address from which gives the address from which the datagram was sent. (type: tuple of (bytes , int )) |
Get a socket-like object which can be used to receive a datagram sent from the given address.
Parameters | fileno | A file descriptor representing a tunnel device which the datagram will be received via. (type: int ) |
host | The IPv4 address to which the datagram was sent. (type: bytes ) | |
port | The UDP port number to which the datagram was sent. received. (type: int ) | |
Returns | A socket.socket -like object which can be used to receive the specified datagram. |