33 _native_handle(_socket.native_handle())
43 _native_handle(_socket.native_handle())
69 std::stringstream stream;
82 SOL_SOCKET, SO_RCVTIMEO,
93 int result = setsockopt
96 SOL_SOCKET, SO_RCVTIMEO,
109 SOL_SOCKET, SO_SNDTIMEO,
119 bool Socket::readData(
unsigned char* buffer, std::size_t bufferSize, std::size_t* readSize)
122 boost::asio::mutable_buffer _buffer
124 std::size_t _readSize;
127 _readSize = boost::asio::read(_socket, _buffer);
137 if (readSize !=
nullptr)
139 *readSize = _readSize;
150 boost::asio::const_buffer _buffer
152 std::size_t _writeSize;
155 _writeSize = boost::asio::write(_socket, _buffer);
165 if (writeSize !=
nullptr)
167 *writeSize = _writeSize;
177 return _socket.is_open();
183 return _socket.is_open()?
"connection is open" :
"warning: connection is closed";
189 auto endpoints =
resolve(_host, _port, _io_context);
190 boost::asio::connect(_socket, endpoints);
191 return _socket.is_open();
rohdeschwarz::busses::socket helper function definitions
std::vector< unsigned char > * buffer()
virtual bool isError() const
Checks socket state for error.
virtual bool readData(unsigned char *buffer, std::size_t bufferSize, std::size_t *readSize=nullptr)
read data into buffer
virtual int timeout_ms() const
Get timeout, in ms.
int port() const
returns the port
virtual std::string endpoint() const
Returns string '{host}:{port}'.
Socket(const char *host, int port=5025)
Constructor.
virtual std::string statusMessage() const
human-readable bus status message
std::string host() const
returns the host or ip address
virtual bool writeData(const unsigned char *data, std::size_t dataSize, std::size_t *writeSize=nullptr)
read data into buffer
virtual bool setTimeout(int timeout_ms)
Set timeout, in ms.
virtual ~Socket()
Destructor.
boost::system::system_error system_error
System error exception.
boost::asio::ip::basic_resolver< boost::asio::ip::tcp >::results_type resolve(const std::string &host, int port, boost::asio::io_context &io_context)
Resolves TCP IP endpoint(s) from host, port.
const char * const_char_p
rohdeschwarz::busses::socket::Socket class definition