HAN-FUN API  1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
HF::Devices::Concentrator::Transport Class Reference

Parent class for transport layer implementations on a HAN-FUN Concentrator device. More...

#include <devices.h>

+ Inheritance diagram for HF::Devices::Concentrator::Transport:
+ Collaboration diagram for HF::Devices::Concentrator::Transport:

Public Member Functions

void destroy ()
 Free the system resources associated with this transport layer.
 
void add (HF::Transport::Endpoint *ep)
 Register the given Endpoint to receive events. More...
 
void add (HF::Transport::Link *link)
 Add the given link to the list of known links and call the connected method for all registered end-points. More...
 
void remove (HF::Transport::Link *link=nullptr)
 Call the disconnected method for all registered end-points with the given link and remove it from list of known links. More...
 
HF::Transport::Linkfind (uint16_t address)
 Find the link used to send messages to the HAN-FUN device with the given address. More...
 
- Public Member Functions inherited from HF::Transport::AbstractLayer
void initialize ()
 Initialize the associated transport layer. More...
 
void destroy ()
 Free the system resources associated with this transport layer.
 
void add (HF::Transport::Endpoint *ep)
 Add an entry to the list of end-points connected to the transport layer. More...
 
void remove (HF::Transport::Endpoint *ep=nullptr)
 Remove the entry in ep, from the list of end-points connected to the transport layer. More...
 
void receive (HF::Transport::Link *link, HF::Common::ByteArray &payload)
 Receive the data in payload, coming in in the given link and deliver the decoded packet to all registered end-points. More...
 
const HF::UID::UID uid () const
 Return the UID of the local device on this transport layer. More...
 
void uid (HF::UID::UID_T *_uid)
 Set the UID to the given value. More...
 
void connected (HF::Transport::Link *link)
 Call the connected method for all the registered end-points with the given link as argument. More...
 
void disconnected (HF::Transport::Link *link)
 Call the disconnected method for all the registered end-points with the given link as argument. More...
 
Commands

Protected Attributes

Common::SimpleList< HF::Transport::Link * > links
 List of links present in the transport layer.
 
- Protected Attributes inherited from HF::Transport::AbstractLayer
Common::SimpleList< HF::Transport::Endpoint * > endpoints
 List of registered end-points for this layer.
 
HF::UID::UID_T_uid
 UID associated with the local transport layer.
 

Detailed Description

Parent class for transport layer implementations on a HAN-FUN Concentrator device.

Definition at line 929 of file devices.h.

Member Function Documentation

◆ add() [1/2]

void HF::Devices::Concentrator::Transport::add ( HF::Transport::Endpoint ep)
inlinevirtual

Register the given Endpoint to receive events.

This should be possible to register multiple end-points, to the transport layer.

Parameters
[in]eppointer to the end-point to register in the transport layer.

Implements HF::Transport::Layer.

Definition at line 945 of file devices.h.

References HF::Transport::AbstractLayer::add(), HF::Transport::Endpoint::connected(), and links.

946  {
948  /* *INDENT-OFF* */
949  std::for_each(links.begin(), links.end(), [ep](HF::Transport::Link *link)
950  {
951  ep->connected (link);
952  });
953  /* *INDENT-ON* */
954  }
Common::SimpleList< HF::Transport::Link * > links
List of links present in the transport layer.
Definition: devices.h:934
void add(HF::Transport::Endpoint *ep)
Add an entry to the list of end-points connected to the transport layer.
virtual void connected(Link *link)=0
Callback to report that a new transport link was been created to a remote device. ...
+ Here is the call graph for this function:

◆ add() [2/2]

void HF::Devices::Concentrator::Transport::add ( HF::Transport::Link link)
inline

Add the given link to the list of known links and call the connected method for all registered end-points.

Parameters
[in]linkpointer to the link to add.

Definition at line 962 of file devices.h.

References HF::Transport::AbstractLayer::connected(), and links.

963  {
964  assert(link != nullptr);
965 
966  links.push_front(link);
968  }
Common::SimpleList< HF::Transport::Link * > links
List of links present in the transport layer.
Definition: devices.h:934
void connected(HF::Transport::Link *link)
Call the connected method for all the registered end-points with the given link as argument...
+ Here is the call graph for this function:

◆ find()

HF::Transport::Link* HF::Devices::Concentrator::Transport::find ( uint16_t  address)

Find the link used to send messages to the HAN-FUN device with the given address.

Parameters
[in]addressthe HAN-FUN address to find the link for.
Returns
a pointer to the link for the given address or nullptr if no link exists for the given address.

◆ remove()

void HF::Devices::Concentrator::Transport::remove ( HF::Transport::Link link = nullptr)

Call the disconnected method for all registered end-points with the given link and remove it from list of known links.

If link is nullptr, then remove all known links.

Parameters
[in]linkpointer to the link to remove.

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