SatCat5
satcat5::coap::EndpointUdpStatic< SIZE > Class Template Reference

Detailed Description

template<unsigned SIZE>
class satcat5::coap::EndpointUdpStatic< SIZE >

Variant of EndpointUdp with a static array of connections.

For a dynamically-allocated variant,

See also
EndpointUdpHeap.

Definition at line 255 of file coap_endpoint.h.

#include <coap_endpoint.h>

Inheritance diagram for satcat5::coap::EndpointUdpStatic< SIZE >:
[legend]
Collaboration diagram for satcat5::coap::EndpointUdpStatic< SIZE >:
[legend]

Public Member Functions

ConnectionUdpconnections (unsigned idx)
 Access an internal connection object by index.
 
satcat5::net::Dispatchiface () const
 Fetch the associated network interface.
 
satcat5::udp::Port srcport () const
 For UDP only, query the local port number.
 
Connectionfind_token (u32 token) const
 Scan connections for a matching proxy-ID. More...
 
satcat5::coap::Connectionget_idle_connection () const
 Get the first idle connection, or null if all are busy.
 
void set_connection (satcat5::coap::Connection *obj)
 Set the preferred connection for outgoing requests. More...
 
void set_filter (const satcat5::net::Type &filter)
 Set network interface filter. More...
 
void bind (satcat5::udp::Port req_port=satcat5::udp::PORT_COAP)
 Begin accepting incoming requests on the designated UDP port.
 
satcat5::coap::ConnectionUdpconnect (const satcat5::udp::Addr &dstaddr, const satcat5::udp::Port &dstport=satcat5::udp::PORT_COAP, const satcat5::udp::Port &srcport=satcat5::udp::PORT_NONE)
 Open a connection to the designated remote UDP endpoint. More...
 
satcat5::eth::Dispatcheth () const
 Pointer to the parent's network interface.
 
satcat5::ip::Dispatchip () const
 Pointer to the parent's network interface.
 
satcat5::udp::Dispatchudp () const
 Pointer to the parent's network interface.
 

Protected Member Functions

 EndpointUdpStatic (satcat5::udp::Dispatch *iface, satcat5::udp::Port req_port=satcat5::udp::PORT_NONE)
 Constructor and destructor should only be called by the child.
 
void frame_rcvd (satcat5::io::LimitedRead &src) override
 Dispatch calls frame_rcvd(...) for each incoming frame with with a matching net::Type value. More...
 
void add_connection (Connection *item)
 
void remove_connection (Connection *item)
 
bool reply (u8 type, const satcat5::coap::ReadHeader *msg)
 
virtual void coap_request (Connection *obj, Reader *msg)
 The Child class overrides these event-handlers: More...
 
virtual void coap_response (Connection *obj, Reader *msg)
 The Child class overrides these event-handlers: More...
 
virtual void coap_reqwait (Connection *obj, Reader *msg)
 The Child class overrides these event-handlers: More...
 
virtual void coap_separate (Connection *obj, Reader *msg)
 The Child class overrides these event-handlers: More...
 
virtual void coap_error (Connection *obj)
 The Child class overrides these event-handlers: More...
 
virtual void coap_ping (const Reader *msg)
 The Child class overrides these event-handlers: More...
 
virtual void coap_timeout (Connection *obj)
 The Child class overrides these event-handlers: More...
 

Protected Attributes

satcat5::coap::ConnectionUdpArray< SIZE > m_connections
 Connections to remote server(s).
 
satcat5::net::Dispatch *const m_iface
 
satcat5::util::List< satcat5::coap::Connectionm_list
 
satcat5::coap::Connectionm_prefer
 
satcat5::coap::Endpointm_aux_ep
 
satcat5::net::Type m_filter
 Incoming packet filter.
 
satcat5::coap::Endpoint *const m_endpoint
 Pointer to the associated Endpoint.
 

Private Attributes

satcat5::net::Protocolm_next
 Linked list of Protocols.
 

Member Function Documentation

◆ coap_error()

virtual void satcat5::coap::Endpoint::coap_error ( Connection obj)
inlineprotectedvirtualinherited

The Child class overrides these event-handlers:

  • coap_request = Received incoming request. The default implementation always responds with "5.01 Not Implemented". The child class SHOULD override this method if it accepts incoming requests. Call open_response() or open_separate() to send the reply.
    See also
    coap::Connection.
  • coap_response = Received the response to a pending request. The default implementation discards the incoming response. The child class SHOULD override this method if it issues requests.
    See also
    Connection::open_request. Multicast queries may result in multiple responses.
  • coap_reqwait = Received duplicate request in "await" state. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_separate = Received separated-response notification. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_error = A pending request failed (i.e., reset or timeout). The child class SHOULD override this method if it issues requests, in order to process errors.
  • coap_ping = Received response to a ping request. The child class MAY override this method if it issues ping requests.
    See also
    Connection::ping.
  • coap_timeout = Benign timeout for a non-confirmable request. For unicast queries, this event indicates no response. For multicast queries, this event marks the end of the waiting period, whether or not request(s) were received.

Reimplemented in satcat5::coap::ProxyServer, and satcat5::coap::EndpointSppFwd.

Definition at line 106 of file coap_endpoint.h.

◆ coap_ping()

virtual void satcat5::coap::Endpoint::coap_ping ( const Reader msg)
inlineprotectedvirtualinherited

The Child class overrides these event-handlers:

  • coap_request = Received incoming request. The default implementation always responds with "5.01 Not Implemented". The child class SHOULD override this method if it accepts incoming requests. Call open_response() or open_separate() to send the reply.
    See also
    coap::Connection.
  • coap_response = Received the response to a pending request. The default implementation discards the incoming response. The child class SHOULD override this method if it issues requests.
    See also
    Connection::open_request. Multicast queries may result in multiple responses.
  • coap_reqwait = Received duplicate request in "await" state. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_separate = Received separated-response notification. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_error = A pending request failed (i.e., reset or timeout). The child class SHOULD override this method if it issues requests, in order to process errors.
  • coap_ping = Received response to a ping request. The child class MAY override this method if it issues ping requests.
    See also
    Connection::ping.
  • coap_timeout = Benign timeout for a non-confirmable request. For unicast queries, this event indicates no response. For multicast queries, this event marks the end of the waiting period, whether or not request(s) were received.

Reimplemented in satcat5::coap::EndpointSppFwd.

Definition at line 107 of file coap_endpoint.h.

◆ coap_request()

virtual void satcat5::coap::Endpoint::coap_request ( Connection obj,
Reader msg 
)
inlineprotectedvirtualinherited

The Child class overrides these event-handlers:

  • coap_request = Received incoming request. The default implementation always responds with "5.01 Not Implemented". The child class SHOULD override this method if it accepts incoming requests. Call open_response() or open_separate() to send the reply.
    See also
    coap::Connection.
  • coap_response = Received the response to a pending request. The default implementation discards the incoming response. The child class SHOULD override this method if it issues requests.
    See also
    Connection::open_request. Multicast queries may result in multiple responses.
  • coap_reqwait = Received duplicate request in "await" state. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_separate = Received separated-response notification. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_error = A pending request failed (i.e., reset or timeout). The child class SHOULD override this method if it issues requests, in order to process errors.
  • coap_ping = Received response to a ping request. The child class MAY override this method if it issues ping requests.
    See also
    Connection::ping.
  • coap_timeout = Benign timeout for a non-confirmable request. For unicast queries, this event indicates no response. For multicast queries, this event marks the end of the waiting period, whether or not request(s) were received.

Reimplemented in satcat5::coap::ResourceServer, and satcat5::coap::EndpointSppFwd.

Definition at line 101 of file coap_endpoint.h.

◆ coap_reqwait()

virtual void satcat5::coap::Endpoint::coap_reqwait ( Connection obj,
Reader msg 
)
inlineprotectedvirtualinherited

The Child class overrides these event-handlers:

  • coap_request = Received incoming request. The default implementation always responds with "5.01 Not Implemented". The child class SHOULD override this method if it accepts incoming requests. Call open_response() or open_separate() to send the reply.
    See also
    coap::Connection.
  • coap_response = Received the response to a pending request. The default implementation discards the incoming response. The child class SHOULD override this method if it issues requests.
    See also
    Connection::open_request. Multicast queries may result in multiple responses.
  • coap_reqwait = Received duplicate request in "await" state. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_separate = Received separated-response notification. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_error = A pending request failed (i.e., reset or timeout). The child class SHOULD override this method if it issues requests, in order to process errors.
  • coap_ping = Received response to a ping request. The child class MAY override this method if it issues ping requests.
    See also
    Connection::ping.
  • coap_timeout = Benign timeout for a non-confirmable request. For unicast queries, this event indicates no response. For multicast queries, this event marks the end of the waiting period, whether or not request(s) were received.

Reimplemented in satcat5::coap::ProxyServer.

Definition at line 104 of file coap_endpoint.h.

◆ coap_response()

virtual void satcat5::coap::Endpoint::coap_response ( Connection obj,
Reader msg 
)
inlineprotectedvirtualinherited

The Child class overrides these event-handlers:

  • coap_request = Received incoming request. The default implementation always responds with "5.01 Not Implemented". The child class SHOULD override this method if it accepts incoming requests. Call open_response() or open_separate() to send the reply.
    See also
    coap::Connection.
  • coap_response = Received the response to a pending request. The default implementation discards the incoming response. The child class SHOULD override this method if it issues requests.
    See also
    Connection::open_request. Multicast queries may result in multiple responses.
  • coap_reqwait = Received duplicate request in "await" state. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_separate = Received separated-response notification. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_error = A pending request failed (i.e., reset or timeout). The child class SHOULD override this method if it issues requests, in order to process errors.
  • coap_ping = Received response to a ping request. The child class MAY override this method if it issues ping requests.
    See also
    Connection::ping.
  • coap_timeout = Benign timeout for a non-confirmable request. For unicast queries, this event indicates no response. For multicast queries, this event marks the end of the waiting period, whether or not request(s) were received.

Reimplemented in satcat5::coap::SimpleClient, satcat5::coap::ProxyServer, and satcat5::coap::EndpointSppFwd.

Definition at line 103 of file coap_endpoint.h.

◆ coap_separate()

virtual void satcat5::coap::Endpoint::coap_separate ( Connection obj,
Reader msg 
)
inlineprotectedvirtualinherited

The Child class overrides these event-handlers:

  • coap_request = Received incoming request. The default implementation always responds with "5.01 Not Implemented". The child class SHOULD override this method if it accepts incoming requests. Call open_response() or open_separate() to send the reply.
    See also
    coap::Connection.
  • coap_response = Received the response to a pending request. The default implementation discards the incoming response. The child class SHOULD override this method if it issues requests.
    See also
    Connection::open_request. Multicast queries may result in multiple responses.
  • coap_reqwait = Received duplicate request in "await" state. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_separate = Received separated-response notification. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_error = A pending request failed (i.e., reset or timeout). The child class SHOULD override this method if it issues requests, in order to process errors.
  • coap_ping = Received response to a ping request. The child class MAY override this method if it issues ping requests.
    See also
    Connection::ping.
  • coap_timeout = Benign timeout for a non-confirmable request. For unicast queries, this event indicates no response. For multicast queries, this event marks the end of the waiting period, whether or not request(s) were received.

Reimplemented in satcat5::coap::ProxyServer.

Definition at line 105 of file coap_endpoint.h.

◆ coap_timeout()

virtual void satcat5::coap::Endpoint::coap_timeout ( Connection obj)
inlineprotectedvirtualinherited

The Child class overrides these event-handlers:

  • coap_request = Received incoming request. The default implementation always responds with "5.01 Not Implemented". The child class SHOULD override this method if it accepts incoming requests. Call open_response() or open_separate() to send the reply.
    See also
    coap::Connection.
  • coap_response = Received the response to a pending request. The default implementation discards the incoming response. The child class SHOULD override this method if it issues requests.
    See also
    Connection::open_request. Multicast queries may result in multiple responses.
  • coap_reqwait = Received duplicate request in "await" state. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_separate = Received separated-response notification. Child classes that require special event handling, such as reverse-proxies, MAY override this method as needed.
  • coap_error = A pending request failed (i.e., reset or timeout). The child class SHOULD override this method if it issues requests, in order to process errors.
  • coap_ping = Received response to a ping request. The child class MAY override this method if it issues ping requests.
    See also
    Connection::ping.
  • coap_timeout = Benign timeout for a non-confirmable request. For unicast queries, this event indicates no response. For multicast queries, this event marks the end of the waiting period, whether or not request(s) were received.

Definition at line 108 of file coap_endpoint.h.

◆ connect()

ConnectionUdp * ManageUdp::connect ( const satcat5::udp::Addr dstaddr,
const satcat5::udp::Port dstport = satcat5::udp::PORT_COAP,
const satcat5::udp::Port srcport = satcat5::udp::PORT_NONE 
)
inherited

Open a connection to the designated remote UDP endpoint.

In most cases, the source port should be left as PORT_NONE, which automatically chooses an unoccupied local port. (Use the returned coap::Connection object to issue requests.)

Definition at line 154 of file coap_endpoint.cc.

◆ find_token()

Connection * Endpoint::find_token ( u32  token) const
inherited

Scan connections for a matching proxy-ID.

See also
coap::ProxyServer.

Definition at line 40 of file coap_endpoint.cc.

◆ frame_rcvd()

void Endpoint::frame_rcvd ( satcat5::io::LimitedRead src)
overrideprotectedvirtualinherited

Dispatch calls frame_rcvd(...) for each incoming frame with with a matching net::Type value.

The child class SHOULD read the frame contents from the provided "src" object, which is only valid until the function returns.

To send a reply:

  • Call m_iface->open_reply() to obtain a Writable object. (This also writes out any applicable frame headers.)
  • Write frame contents, then call write_finalize().

The child class MUST override this method.

Implements satcat5::net::Protocol.

Definition at line 56 of file coap_endpoint.cc.

◆ set_connection()

void satcat5::coap::Endpoint::set_connection ( satcat5::coap::Connection obj)
inlineinherited

Set the preferred connection for outgoing requests.

Usually called indirectly through ManageSpp or ManageUdp.

Definition at line 58 of file coap_endpoint.h.

◆ set_filter()

void satcat5::coap::Endpoint::set_filter ( const satcat5::net::Type filter)
inlineinherited

Set network interface filter.

Usually called indirectly through ManageSpp or ManageUdp.

Definition at line 63 of file coap_endpoint.h.


The documentation for this class was generated from the following file: