Abstract API for writing byte-streams and packets.
Defines a generic API for sending data to a specific destination, such as a MAC address,...
virtual bool reply_is_multicast() const =0
Was the parent interface's incoming message sent to a multicast address? (i.e., Could that message ha...
virtual bool ready() const =0
Is this address object ready for use? Child MUST override this method.
virtual void retry()
If this Address is not in the ready() state, reattempt any steps required to do so,...
virtual bool matches_reply_address() const =0
Does this Address object match the parent interface's current reply address? Multicast destinations s...
virtual satcat5::net::Dispatch * iface() const =0
Fetch a pointer to the underlying interface.
virtual void save_reply_address()=0
Bind this Address object to the parent interface's current reply address, as provided in net::Dispatc...
virtual satcat5::io::Writeable * open_write(unsigned len)=0
Open a new frame to the designated address and type.
virtual void close()=0
Close any open connections and revert to idle.
virtual bool is_multicast() const =0
Is the destination a broadcast or multicast address? Child MUST override these method.
bool write_packet(unsigned nbytes, const void *data)
All-in-one call that writes an entire packet.
The "Dispatch" is a generic interface that knows how to read a designated protocol layer and sort inc...
Basic type aliases and prototypes used throughout SatCat5.