mirror of
https://github.com/eclipse/paho.mqtt-sn.embedded-c.git
synced 2025-12-15 16:36:52 +01:00
73 lines
2.3 KiB
C++
73 lines
2.3 KiB
C++
/**************************************************************************************
|
|
* Copyright (c) 2016, Tomoaki Yamaguchi
|
|
*
|
|
* All rights reserved. This program and the accompanying materials
|
|
* are made available under the terms of the Eclipse Public License v1.0
|
|
* and Eclipse Distribution License v1.0 which accompany this distribution.
|
|
*
|
|
* The Eclipse Public License is available at
|
|
* http://www.eclipse.org/legal/epl-v10.html
|
|
* and the Eclipse Distribution License is available at
|
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
|
*
|
|
* Contributors:
|
|
* Tomoaki Yamaguchi - initial API and implementation and/or initial documentation
|
|
* Tieto Poland Sp. z o.o. - Gateway improvements
|
|
**************************************************************************************/
|
|
|
|
#ifndef MQTTSNGATEWAY_SRC_MQTTSNGWCLIENTLIST_H_
|
|
#define MQTTSNGATEWAY_SRC_MQTTSNGWCLIENTLIST_H_
|
|
|
|
#include "MQTTSNGWClient.h"
|
|
#include "MQTTSNGateway.h"
|
|
|
|
namespace MQTTSNGW
|
|
{
|
|
#define TRANSPEARENT_TYPE 0
|
|
#define QOSM1PROXY_TYPE 1
|
|
#define AGGREGATER_TYPE 2
|
|
#define FORWARDER_TYPE 3
|
|
|
|
class Client;
|
|
|
|
/*=====================================
|
|
Class ClientList
|
|
=====================================*/
|
|
class ClientList
|
|
{
|
|
public:
|
|
ClientList();
|
|
~ClientList();
|
|
|
|
void initialize(bool aggregate);
|
|
void setClientList(int type);
|
|
void setPredefinedTopics(bool aggregate);
|
|
void erase(Client*&);
|
|
Client* createClient(SensorNetAddress* addr, MQTTSNString* clientId,
|
|
int type);
|
|
Client* createClient(SensorNetAddress* addr, MQTTSNString* clientId,
|
|
bool unstableLine, bool secure, int type);
|
|
bool createList(const char* fileName, int type);
|
|
Client* getClient(SensorNetAddress* addr);
|
|
Client* getClient(MQTTSNString* clientId);
|
|
Client* getClient(int index);
|
|
uint16_t getClientCount(void);
|
|
Client* getClient(void);
|
|
bool isAuthorized();
|
|
|
|
private:
|
|
bool readPredefinedList(const char* fileName, bool _aggregate);
|
|
Gateway* _gateway { nullptr };
|
|
Client* createPredefinedTopic(MQTTSNString* clientId, string topicName,
|
|
uint16_t toipcId, bool _aggregate);
|
|
Client* _firstClient;
|
|
Client* _endClient;
|
|
Mutex _mutex;
|
|
uint16_t _clientCnt;
|
|
bool _authorize { false };
|
|
};
|
|
|
|
}
|
|
|
|
#endif /* MQTTSNGATEWAY_SRC_MQTTSNGWCLIENTLIST_H_ */
|