1 #pragma once
2 
3 #include "ASyncTCP.h"
4 #include "MySensorsBase.h"
5 
6 class MySensorsTCP : public MySensorsBase, ASyncTCP
7 {
8 public:
9 	MySensorsTCP(const int ID, const std::string &IPAddress, const unsigned short usIPPort);
10 	~MySensorsTCP(void);
11 public:
12 	// signals
13 	boost::signals2::signal<void()>	sDisconnected;
14 private:
15 	int m_retrycntr;
16 	bool StartHardware() override;
17 	bool StopHardware() override;
18 protected:
19 	std::string m_szIPAddress;
20 	unsigned short m_usIPPort;
21 
22 	void WriteInt(const std::string &sendStr) override;
23 
24 	void Do_Work();
25 
26 	void OnConnect() override;
27 	void OnDisconnect() override;
28 	void OnData(const unsigned char *pData, size_t length) override;
29 	void OnError(const boost::system::error_code& error) override;
30 
31 	std::shared_ptr<std::thread> m_thread;
32 };
33 
34