mirror of
https://github.com/eclipse/paho.mqtt-sn.embedded-c.git
synced 2025-12-16 00:46:52 +01:00
First Commit of MQTT-SN Gateway
Add new SensorNetwork XBee Add a sensor network type in a start message. Update MQTTSNClient to avoid build warning. Update WiringPi's functions to my original ones. BugFix check msgId before adding waitdTopicId table. BugFix Process termination procedures Update print curent time in millseconds. update move currentDateTime() to linux directory. Bugfix: blink blue lightiIndicator. Bugfix: Register returns wrong id. change a status of the client to Disconnected. change client status procedure Update README BugFix: change Network Disconnect procedures. Signed-off-by: tomoaki <tomoaki@tomy-tech.com>
This commit is contained in:
95
MQTTSNGateway/src/linux/Network.h
Normal file
95
MQTTSNGateway/src/linux/Network.h
Normal file
@@ -0,0 +1,95 @@
|
||||
/**************************************************************************************
|
||||
* 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
|
||||
**************************************************************************************/
|
||||
|
||||
#ifndef NETWORK_H_
|
||||
#define NETWORK_H_
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netdb.h>
|
||||
#include <resolv.h>
|
||||
#include <netdb.h>
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#include "Threading.h"
|
||||
#include "MQTTSNGWDefines.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace MQTTSNGW;
|
||||
|
||||
/*========================================
|
||||
Class TCPStack
|
||||
=======================================*/
|
||||
class TCPStack
|
||||
{
|
||||
public:
|
||||
TCPStack();
|
||||
virtual ~TCPStack();
|
||||
|
||||
// Server initialization
|
||||
bool bind(const char* service);
|
||||
bool listen();
|
||||
bool accept(TCPStack&);
|
||||
|
||||
// Client initialization
|
||||
bool connect(const char* host, const char* service);
|
||||
|
||||
int send(const uint8_t* buf, int length);
|
||||
int recv(uint8_t* buf, int len);
|
||||
void close();
|
||||
|
||||
void setNonBlocking(const bool);
|
||||
|
||||
bool isValid();
|
||||
int getSock();
|
||||
|
||||
private:
|
||||
int _sockfd;
|
||||
addrinfo* _addrinfo;
|
||||
};
|
||||
|
||||
/*========================================
|
||||
Class Network
|
||||
=======================================*/
|
||||
class Network: public TCPStack
|
||||
{
|
||||
public:
|
||||
Network(bool secure);
|
||||
virtual ~Network();
|
||||
|
||||
bool connect(const char* host, const char* service);
|
||||
void disconnect();
|
||||
int send(const uint8_t* buf, uint16_t length);
|
||||
int recv(uint8_t* buf, uint16_t len);
|
||||
|
||||
bool isValid();
|
||||
bool isSecure();
|
||||
int getSock();
|
||||
SSL* getSSL();
|
||||
|
||||
private:
|
||||
static SSL_CTX* _ctx;
|
||||
static int _numOfInstance;
|
||||
static SSL_SESSION* _session;
|
||||
|
||||
SSL* _ssl;
|
||||
bool _secureFlg;
|
||||
bool _disconReq;
|
||||
Mutex _mutex;
|
||||
bool _busy;
|
||||
};
|
||||
|
||||
#endif /* NETWORK_H_ */
|
||||
Reference in New Issue
Block a user