LibLogicalAccess  2.5.0
An Open Source RFID Library
Loading...
Searching...
No Matches
tcpdatatransport.hpp
Go to the documentation of this file.
1
7#ifndef LOGICALACCESS_TCPDATATRANSPORT_HPP
8#define LOGICALACCESS_TCPDATATRANSPORT_HPP
9
11#include <boost/asio.hpp>
12#include <boost/asio/deadline_timer.hpp>
13#include <boost/asio/ip/tcp.hpp>
14
15namespace logicalaccess
16{
17#define TRANSPORT_TCP "TCP"
18
22class LLA_CORE_API TCPDataTransport : public DataTransport
23{
24 public:
29
33 virtual ~TCPDataTransport();
34
39 std::string getTransportType() const override
40 {
41 return TRANSPORT_TCP;
42 }
43
48 bool connect() override;
49
55 virtual bool connect(long int timeout);
56
60 void disconnect() override;
61
66 bool isConnected() override;
67
72 std::string getName() const override;
73
78 void serialize(boost::property_tree::ptree &parentNode) override;
79
84 void unSerialize(boost::property_tree::ptree &node) override;
85
90 std::string getDefaultXmlNodeName() const override;
91
96 std::string getIpAddress() const;
97
102 void setIpAddress(std::string ipAddress);
103
108 int getPort() const;
109
114 void setPort(int port);
115
120 void send(const ByteVector &data) override;
121
127 ByteVector receive(long int timeout) override;
128
133 void connect_complete(const boost::system::error_code &error);
134
140 void read_complete(const boost::system::error_code &error, size_t bytes_transferred);
141
146 void time_out(const boost::system::error_code &error);
147
148 protected:
152 boost::asio::io_service d_ios;
153
157 boost::asio::ip::tcp::socket d_socket;
158
162 boost::asio::deadline_timer d_timer;
163
168
173
177 std::string d_ipAddress;
178
183};
184}
185
186#endif /* LOGICALACCESS_TCPDATATRANSPORT_HPP */
A data transport base class. It provide an abstraction layer between the host and readers.
Definition: datatransport.hpp:22
An TCP data transport class.
Definition: tcpdatatransport.hpp:23
boost::asio::ip::tcp::socket d_socket
TCP Socket.
Definition: tcpdatatransport.hpp:157
std::string d_ipAddress
The ip address.
Definition: tcpdatatransport.hpp:177
std::string getTransportType() const override
Get the transport type of this instance.
Definition: tcpdatatransport.hpp:39
boost::asio::io_service d_ios
Provides core I/O functionality.
Definition: tcpdatatransport.hpp:152
int d_port
The listening port.
Definition: tcpdatatransport.hpp:182
size_t d_bytes_transferred
Byte Readed.
Definition: tcpdatatransport.hpp:172
bool d_read_error
Read error.
Definition: tcpdatatransport.hpp:167
boost::asio::deadline_timer d_timer
Read Deadline timer.
Definition: tcpdatatransport.hpp:162
Data transport for reader/card commands.
std::vector< uint8_t > ByteVector
Definition: lla_fwd.hpp:80
Definition: asn1.hpp:9
#define TRANSPORT_TCP
Definition: tcpdatatransport.hpp:17