mirror of
https://github.com/eclipse/paho.mqtt-sn.embedded-c.git
synced 2025-12-18 09:56:50 +01:00
Update: Add Aggregate Gateway functions. #127
Signed-off-by: tomoaki <tomoaki@tomy-tech.com>
This commit is contained in:
@@ -18,22 +18,27 @@
|
||||
#define MQTTSNGATEWAY_SRC_MQTTSNGWFORWARDER_H_
|
||||
|
||||
#include "MQTTSNGWClient.h"
|
||||
#include "MQTTSNGateway.h"
|
||||
#include "MQTTSNGWEncapsulatedPacket.h"
|
||||
#include "SensorNetwork.h"
|
||||
|
||||
|
||||
namespace MQTTSNGW
|
||||
{
|
||||
|
||||
class Gateway;
|
||||
class Client;
|
||||
class WirelessNodeId;
|
||||
|
||||
/*=====================================
|
||||
Class ForwarderElement
|
||||
=====================================*/
|
||||
class ForwarderElement
|
||||
{
|
||||
friend class Forwarder;
|
||||
public:
|
||||
ForwarderElement();
|
||||
~ForwarderElement();
|
||||
|
||||
void setClient(Client* client);
|
||||
void setWirelessNodeId(WirelessNodeId* id);
|
||||
private:
|
||||
@@ -42,15 +47,18 @@ private:
|
||||
ForwarderElement* _next;
|
||||
};
|
||||
|
||||
|
||||
/*=====================================
|
||||
Class Forwarder
|
||||
=====================================*/
|
||||
class Forwarder
|
||||
{
|
||||
friend class ForwarderList;
|
||||
public:
|
||||
Forwarder();
|
||||
Forwarder(void);
|
||||
Forwarder(SensorNetAddress* addr, string* forwarderId);
|
||||
~Forwarder();
|
||||
|
||||
void initialize(void);
|
||||
const char* getId(void);
|
||||
void addClient(Client* client, WirelessNodeId* id);
|
||||
Client* getClient(WirelessNodeId* id);
|
||||
@@ -62,17 +70,21 @@ public:
|
||||
private:
|
||||
string _forwarderName;
|
||||
SensorNetAddress _sensorNetAddr;
|
||||
ForwarderElement* _headClient;
|
||||
Forwarder* _next;
|
||||
ForwarderElement* _headClient{nullptr};
|
||||
Forwarder* _next {nullptr};
|
||||
Mutex _mutex;
|
||||
};
|
||||
|
||||
/*=====================================
|
||||
Class ForwarderList
|
||||
=====================================*/
|
||||
class ForwarderList
|
||||
{
|
||||
public:
|
||||
ForwarderList();
|
||||
~ForwarderList();
|
||||
|
||||
void initialize(Gateway* gw);
|
||||
Forwarder* getForwarder(SensorNetAddress* addr);
|
||||
bool setFowerder(const char* fileName);
|
||||
Forwarder* addForwarder(SensorNetAddress* addr, string* forwarderId);
|
||||
|
||||
Reference in New Issue
Block a user