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.
| Method | __init__ |
Undocumented |
| Method | close |
Discard the in-memory buffer and other in-memory state for the given file descriptor. |
| Method | get |
Get the Tunnel object associated with the given TuntapPort. |
| Method | ioctl |
Perform some configuration change to the in-memory state for the given file descriptor. |
| Method | open |
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... |
| Method | read |
Try to read some bytes out of one of the in-memory buffers which may previously have been populated by write. |
| Method | receive |
Get a socket-like object which can be used to receive a datagram sent from the given address. |
| Method | register |
Specify a class which will be used to handle I/O to a device of a particular name. |
| Method | send |
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 | write |
Try to add some bytes to one of the in-memory buffers to be accessed by a later read call. |
| Constant | O |
No summary |
| Constant | O |
No summary |
| Constant | O |
No summary |
| Instance Variable | permissions |
No summary |
| Instance Variable | _counter |
No summary |
| Instance Variable | _devices |
No summary |
| Instance Variable | _open |
No summary |
Discard the in-memory buffer and other in-memory state for the given file descriptor.
| See Also | |
os.close |
Get the Tunnel object associated with the given TuntapPort.
| Parameters | |
| port | A TuntapPort previously initialized using this MemoryIOSystem. |
| Returns | |
Tunnel | The tunnel object created by a prior use of open on this object on the tunnel special device file. |
Perform some configuration change to the in-memory state for the given file descriptor.
| See Also | |
fcntl.ioctl |
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:bytes | A string giving the name of the file to open. |
| flags:int | The flags with which to open the file. |
| mode:int | The mode with which to open the file. |
| Returns | |
int | A file descriptor associated with the newly opened file description. |
| 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 |
Get a socket-like object which can be used to receive a datagram sent from the given address.
| Parameters | |
fileno:int | A file descriptor representing a tunnel device which the datagram will be received via. |
host:bytes | The IPv4 address to which the datagram was sent. |
port:int | The UDP port number to which the datagram was sent. received. |
| Returns | |
A socket.socket-like object which can be used to receive the specified datagram. |
Specify a class which will be used to handle I/O to a device of a particular name.
| Parameters | |
name:bytes | The filesystem path name of the device. |
| cls | A class (like Tunnel) to instantiated whenever this device is opened. |
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:bytes | A UDP datagram payload to send. |
address:tuple of (bytes, int) | The destination to which to send the datagram. |
| Returns | |
tuple of (bytes, int) | A two-tuple giving the address from which gives the address from which the datagram was sent. |
Try to add some bytes to one of the in-memory buffers to be accessed by a later read call.
| See Also | |
os.write |