SatCat5
io_multiplexer.h File Reference

Detailed Description

Multiplexers for selecting one of several I/O interfaces.

We define a "port" as a Readable pointer paired with a Writeable pointer, representing input from and output to the same logical interface. Examples include a UART (cfg::Uart), or a MailMap object (port::Mailbox), or a UDP socket (udp::Socket).

A "controller" is anything that attaches to a port and begins issuing read and write commands, such as an Ethernet network interface (eth::Dispatch) or a port adapter (port::MailAdapter, port::SlipAdapter). Some objects act as both a port and a controller, such as BufferedIO (io::BufferedIO).

Definition in file io_multiplexer.h.

Include dependency graph for io_multiplexer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  satcat5::io::MuxPort
 Helper object used inside io::MuxDown. More...
 
class  satcat5::io::MuxDown
 Multiplexer connecting a port to one of several controllers. More...
 
class  satcat5::io::MuxUp
 Multiplexer connecting a controller to one of several ports. More...
 
class  satcat5::io::MuxDownStatic< SIZE >
 Static allocator for io::MuxDown. More...
 
class  satcat5::io::MuxUpStatic< SIZE >
 Static allocator for io::MuxUp. More...