SatCat5
satcat5::coap::SimpleClientUdp Class Reference

Detailed Description

Variant of SimpleClient using a single outgoing UDP connection.

Definition at line 73 of file coap_client.h.

#include <coap_client.h>

Inheritance diagram for satcat5::coap::SimpleClientUdp:
[legend]
Collaboration diagram for satcat5::coap::SimpleClientUdp:
[legend]

Public Member Functions

 SimpleClientUdp (satcat5::udp::Dispatch *iface)
 
u16 msg_id () const
 Message-ID and token for the most recent request.
 
void set_callback (satcat5::io::EventListener *obj)
 Request notifications for incoming responses.
 
satcat5::io::Readableresponse_all ()
 Read full header and contents of the next CoAP response.
 
satcat5::io::Readableresponse_data ()
 Read the contents of the next CoAP response.
 
bool response_discard ()
 Discard the contents of the next CoAP response.
 
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...
 
bool request (satcat5::coap::Code code, const char *uri, const char *data, u16 fmt=satcat5::coap::FORMAT_TEXT)
 Create and send a CoAP request, with optional data. More...
 
bool request (satcat5::coap::Code code, const char *uri, satcat5::io::Readable *data=0, u16 fmt=satcat5::coap::FORMAT_BYTES)
 Create and send a CoAP request, with optional data. More...
 
bool request (satcat5::coap::Code code, const char *uri, satcat5::cbor::CborWriter &cbor)
 Create and send a CoAP request, with optional data. 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

void coap_response (satcat5::coap::Connection *obj, satcat5::coap::Reader *msg) override
 Save the incoming response message.
 
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_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::ConnectionUdp m_connection
 
satcat5::io::PacketBufferStatic< SATCAT5_COAP_BUFFSIZE > m_rcvd
 
u16 m_msg_id
 
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_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.

◆ request() [1/3]

bool SimpleClient::request ( satcat5::coap::Code  code,
const char *  uri,
const char *  data,
u16  fmt = satcat5::coap::FORMAT_TEXT 
)
inherited

Create and send a CoAP request, with optional data.

Various options are provided for generating message contents.

Definition at line 45 of file coap_client.cc.

◆ request() [2/3]

bool SimpleClient::request ( satcat5::coap::Code  code,
const char *  uri,
satcat5::cbor::CborWriter cbor 
)
inherited

Create and send a CoAP request, with optional data.

Various options are provided for generating message contents.

Definition at line 52 of file coap_client.cc.

◆ request() [3/3]

bool SimpleClient::request ( satcat5::coap::Code  code,
const char *  uri,
satcat5::io::Readable data = 0,
u16  fmt = satcat5::coap::FORMAT_BYTES 
)
inherited

Create and send a CoAP request, with optional data.

Various options are provided for generating message contents.

Definition at line 22 of file coap_client.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 files: