otsdaq  v2_04_02
TCPTransmitterSocket.h
1 #ifndef _ots_TCPTransmitterSocket_h_
2 #define _ots_TCPTransmitterSocket_h_
3 
4 #include <string>
5 #include <vector>
6 #include "otsdaq/NetworkUtilities/TCPSocket.h"
7 
8 namespace ots
9 {
10 // A class that can write to a socket
11 class TCPTransmitterSocket : public virtual TCPSocket
12 {
13  public:
14  TCPTransmitterSocket(int socketId = invalidSocketId);
15  virtual ~TCPTransmitterSocket(void);
16  // TCPTransmitterSocket(TCPTransmitterSocket const&) = delete ;
17  TCPTransmitterSocket(TCPTransmitterSocket&& theTCPTransmitterSocket) = default;
18 
19  void send(char const* buffer, std::size_t size);
20  void send(const std::string& buffer);
21  void send(const std::vector<char>& buffer);
22  template<typename T>
23 
24  void send(const std::vector<T>& buffer)
25  {
26  send(reinterpret_cast<const char*>(&buffer.at(0)), buffer.size() * sizeof(T));
27  }
28 
29  void sendPacket(const std::string& buffer);
30 };
31 }
32 #endif