TcpSocket.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2023 SICK AG, Waldkirch
3 //
4 // SPDX-License-Identifier: Unlicense
5 
6 #pragma once
7 
8 #include <cstdint>
9 #include <memory> // for unique_ptr
10 #include <string>
11 #include <vector>
12 
13 #include "ITransport.h"
14 
15 namespace visionary {
16 
17 class SockRecord; // forward definition
18 
19 class TcpSocket : public ITransport
20 {
21 public:
22  using ByteBuffer = std::vector<std::uint8_t>;
23 
24  TcpSocket();
25  virtual ~TcpSocket();
26 
34  int connect(const std::string& ipaddr, std::uint16_t port, std::uint32_t timeoutMs = 5000);
35  int shutdown() override;
36  int getLastError() override;
37 
38  using ITransport::send;
39  send_return_t send(const char* pData, size_t size) override;
40  recv_return_t recv(ByteBuffer& buffer, std::size_t maxBytesToReceive) override;
41  recv_return_t read(ByteBuffer& buffer, std::size_t nBytesToReceive) override;
42 
43 private:
44  std::unique_ptr<SockRecord> m_pSockRecord; // buffer for a SOCKET
45 };
46 
47 } // namespace visionary
visionary::TcpSocket::getLastError
int getLastError() override
Definition: TcpSocket.cpp:301
visionary::TcpSocket::recv
recv_return_t recv(ByteBuffer &buffer, std::size_t maxBytesToReceive) override
Definition: TcpSocket.cpp:237
visionary::ITransport::recv_return_t
ssize_t recv_return_t
Definition: ITransport.h:29
visionary
Definition: MD5.cpp:44
visionary::ITransport::ByteBuffer
std::vector< std::uint8_t > ByteBuffer
Definition: ITransport.h:22
visionary::TcpSocket::TcpSocket
TcpSocket()
Definition: TcpSocket.cpp:24
visionary::TcpSocket::shutdown
int shutdown() override
Definition: TcpSocket.cpp:217
visionary::TcpSocket::send
send_return_t send(const char *pData, size_t size) override
Definition: TcpSocket.cpp:230
visionary::TcpSocket::read
recv_return_t read(ByteBuffer &buffer, std::size_t nBytesToReceive) override
Definition: TcpSocket.cpp:255
visionary::TcpSocket::m_pSockRecord
std::unique_ptr< SockRecord > m_pSockRecord
Definition: TcpSocket.h:44
visionary::TcpSocket::~TcpSocket
virtual ~TcpSocket()
Definition: TcpSocket.cpp:28
visionary::ITransport::send_return_t
ssize_t send_return_t
Definition: ITransport.h:28
visionary::ITransport::send
send_return_t send(const std::vector< T > &buffer)
Definition: ITransport.h:45
ITransport.h
visionary::ITransport
Definition: ITransport.h:19
visionary::TcpSocket::connect
int connect(const std::string &ipaddr, std::uint16_t port, std::uint32_t timeoutMs=5000)
Definition: TcpSocket.cpp:36
visionary::TcpSocket
Definition: TcpSocket.h:19


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:48:42