HAN-FUN API  1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.

This module contains the classes that define and implement the Group Management service API. More...

+ Collaboration diagram for Group Management:

Data Structures

struct  HF::Core::GroupManagement::GroupAddress
 This class represents a group address. More...
 
struct  HF::Core::GroupManagement::Group
 This class represents a group of devices. More...
 
struct  HF::Core::GroupManagement::CreateMessage
 Message payload for a HF::GroupManagement::CREATE_CMD request. More...
 
struct  HF::Core::GroupManagement::CreateResponse
 Message payload for a HF::GroupManagement::CREATE_CMD response. More...
 
struct  HF::Core::GroupManagement::Message
 Parent class for the message payload for a HF::GroupManagement::ADD_CMD and HF::GroupManagement::REMOVE_CMD requests. More...
 
struct  HF::Core::GroupManagement::InfoResponse
 Message payload for a HF::GroupManagement::GET_INFO_CMD response. More...
 
struct  HF::Core::GroupManagement::NumberOfGroups
 Helper class to handle the Number Of Groups attribute for the Group Management service. More...
 
struct  HF::Core::GroupManagement::IEntries
 Device Management - Persistent Storage API. More...
 
struct  HF::Core::GroupManagement::Entries
 Default implementation of the persistence API. More...
 
struct  HF::Core::GroupManagement::Base
 Group Management Service : Parent. More...
 
class  HF::Core::GroupManagement::IServer
 Group Management Service : Server side implementation. More...
 
struct  HF::Core::GroupManagement::IGroupTable
 Interface to the HF::GroupTable API used to update the device's group tables entries on add/remove events. More...
 
struct  HF::Core::GroupManagement::GroupTableClient
 Default implementation of the IGroupTable interface. More...
 
class  HF::Core::GroupManagement::Server< _Entries, _GroupTable >
 Helper class used to implement custom functionality to the group management server side. More...
 
struct  HF::Core::GroupManagement::Client
 Group Management Service : Client side implementation. More...
 

Typedefs

typedef Protocol::Address HF::Core::GroupManagement::Member
 This class represents a member of a group.
 
typedef GroupAddress HF::Core::GroupManagement::DeleteMessage
 Message payload for a HF::GroupManagement::DELETE_CMD request.
 
typedef Protocol::Response HF::Core::GroupManagement::DeleteResponse
 Message payload for a HF::GroupManagement::DELETE_CMD response.
 
typedef Message HF::Core::GroupManagement::AddMessage
 Message payload for a HF::GroupManagement::ADD_CMD request.
 
typedef Protocol::Response HF::Core::GroupManagement::AddResponse
 Message payload for a HF::GroupManagement::ADD_CMD response.
 
typedef Message HF::Core::GroupManagement::RemoveMessage
 Message payload for a HF::GroupManagement::REMOVE_CMD request.
 
typedef Protocol::Response HF::Core::GroupManagement::RemoveResponse
 Message payload for a HF::GroupManagement::REMOVE_CMD response.
 
typedef GroupAddress HF::Core::GroupManagement::InfoMessage
 Message payload for a HF::GroupManagement::GET_INFO_CMD request.
 

Enumerations

enum  HF::Core::GroupManagement::CMD {
  HF::Core::GroupManagement::CREATE_CMD = 0x01, HF::Core::GroupManagement::DELETE_CMD = 0x02, HF::Core::GroupManagement::ADD_CMD = 0x03, HF::Core::GroupManagement::REMOVE_CMD = 0x04,
  HF::Core::GroupManagement::GET_INFO_CMD = 0x05
}
 Command IDs. More...
 
enum  HF::Core::GroupManagement::Attributes { HF::Core::GroupManagement::NUMBER_OF_GROUPS_ATTR = 0x01 }
 Attributes. More...
 

Functions

HF::Attributes::IAttributeHF::Core::create_attribute (GroupManagement::IServer *server, uint8_t uid)
 Create an attribute object that can hold the attribute with the given uid. More...
 
HF::Attributes::IAttributeHF::Core::GroupManagement::create_attribute (uint8_t uid)
 Create an attribute object that can hold the attribute with the given uid. More...
 
std::ostream & operator<< (std::ostream &stream, const HF::Core::GroupManagement::CMD command)
 Convert the given command into a string and write it to the given stream. More...
 
std::ostream & operator<< (std::ostream &stream, const HF::Core::GroupManagement::Attributes attribute)
 Convert the given attribute into a string and write it to the given stream. More...
 

Detailed Description

This module contains the classes that define and implement the Group Management service API.

Enumeration Type Documentation

◆ Attributes

Attributes.

Enumerator
NUMBER_OF_GROUPS_ATTR 

Number Of Groups attribute UID.

Definition at line 90 of file group_management.h.

91  {
92  NUMBER_OF_GROUPS_ATTR = 0x01,
93  __LAST_ATTR__ = NUMBER_OF_GROUPS_ATTR
94  } Attributes;

◆ CMD

Command IDs.

Enumerator
CREATE_CMD 

Create command UID.

DELETE_CMD 

Delete command UID.

ADD_CMD 

Add command UID.

REMOVE_CMD 

Remove command UID.

GET_INFO_CMD 

Get Info command UID.

Definition at line 79 of file group_management.h.

80  {
81  CREATE_CMD = 0x01,
82  DELETE_CMD = 0x02,
83  ADD_CMD = 0x03,
84  REMOVE_CMD = 0x04,
85  GET_INFO_CMD = 0x05,
86  __LAST_CMD__ = GET_INFO_CMD
87  } CMD;

Function Documentation

◆ create_attribute() [1/2]

HF::Attributes::IAttribute* HF::Core::create_attribute ( GroupManagement::IServer server,
uint8_t  uid 
)

Create an attribute object that can hold the attribute with the given uid.

If server is not equal to nullptr then initialize it with the current value.

Parameters
[in]serverpointer to the object to read the current value from.
[in]uidattribute's UID to create the attribute object for.
Returns
pointer to an attribute object or nullptr if the attribute UID does not exist.

◆ create_attribute() [2/2]

HF::Attributes::IAttribute* HF::Core::GroupManagement::create_attribute ( uint8_t  uid)
inline

Create an attribute object that can hold the attribute with the given uid.

See also
HF::Core::create_attribute (HF::Core::GroupManagement::IServer *,uint8_t)
Parameters
[in]uidattribute UID to create the attribute object for.
Return values
pointerto an attribute object.
nullptrif the attribute UID does not exist.

Create an attribute object that can hold the attribute with the given uid.

Create an attribute object that can hold the attribute with the given uid. (HF::Core::Scheduling::Event::IServer *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::DeviceManagement::Server *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::DeviceInformation::Server *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::BindManagement::Server *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::BatchProgramManagement::IServer *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::AttributeReporting::Server *,uint8_t)

See also
HF::Interfaces::create_attribute (HF::Interfaces::SimpleHumidity::Server *,uint8_t)
Parameters
[in]uidattribute UID to create the attribute object for.
Returns
pointer to an attribute object or nullptr if the attribute UID does not exist.

Create an attribute object that can hold the attribute with the given uid.

Create an attribute object that can hold the attribute with the given uid. (HF::Core::Scheduling::Event::IServer *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::DeviceManagement::Server *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::DeviceInformation::Server *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::BindManagement::Server *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::BatchProgramManagement::IServer *,uint8_t)

Create an attribute object that can hold the attribute with the given uid. (HF::Core::AttributeReporting::Server *,uint8_t)

See also
HF::Interfaces::create_attribute (HF::Interfaces::SimpleTemperature::Server *,uint8_t)
Parameters
[in]uidattribute UID to create the attribute object for.
Return values
pointerto an attribute object
<tt>nullptr</tt>if the attribute UID does not exist.

Definition at line 108 of file simple_humidity.h.

109  {
110  return Interfaces::create_attribute(static_cast<SimpleHumidity::Server *>(nullptr),
111  uid);
112  }
HF::Attributes::IAttribute * create_attribute(uint8_t uid)
Create an attribute object that can hold the attribute with the given uid. (HF::Interfaces::SimpleHum...

◆ operator<<() [1/2]

std::ostream& operator<< ( std::ostream &  stream,
const HF::Core::GroupManagement::CMD  command 
)

Convert the given command into a string and write it to the given stream.

Parameters
[in]streamout stream to write the string to.
[in]commandrole value to convert to a string.
Returns
stream

◆ operator<<() [2/2]

std::ostream& operator<< ( std::ostream &  stream,
const HF::Core::GroupManagement::Attributes  attribute 
)

Convert the given attribute into a string and write it to the given stream.

Parameters
[in]streamout stream to write the string to.
[in]attributeattribute value to convert to a string.
Returns
stream