9 #ifndef FAIRMQSOCKET_H_
10 #define FAIRMQSOCKET_H_
12 #include "FairMQMessage.h"
25 enum class TransferCode : int
41 virtual std::string GetId()
const = 0;
43 virtual bool Bind(
const std::string& address) = 0;
44 virtual bool Connect(
const std::string& address) = 0;
46 virtual int64_t Send(FairMQMessagePtr& msg,
int timeout = -1) = 0;
47 virtual int64_t Receive(FairMQMessagePtr& msg,
int timeout = -1) = 0;
48 virtual int64_t Send(std::vector<std::unique_ptr<FairMQMessage>>& msgVec,
int timeout = -1) = 0;
49 virtual int64_t Receive(std::vector<std::unique_ptr<FairMQMessage>>& msgVec,
int timeout = -1) = 0;
51 virtual void Close() = 0;
53 virtual void SetOption(
const std::string& option,
const void* value,
size_t valueSize) = 0;
54 virtual void GetOption(
const std::string& option,
void* value,
size_t* valueSize) = 0;
59 virtual void Events(uint32_t* events) = 0;
60 virtual void SetLinger(
const int value) = 0;
61 virtual int GetLinger()
const = 0;
62 virtual void SetSndBufSize(
const int value) = 0;
63 virtual int GetSndBufSize()
const = 0;
64 virtual void SetRcvBufSize(
const int value) = 0;
65 virtual int GetRcvBufSize()
const = 0;
66 virtual void SetSndKernelSize(
const int value) = 0;
67 virtual int GetSndKernelSize()
const = 0;
68 virtual void SetRcvKernelSize(
const int value) = 0;
69 virtual int GetRcvKernelSize()
const = 0;
71 virtual unsigned long GetBytesTx()
const = 0;
72 virtual unsigned long GetBytesRx()
const = 0;
73 virtual unsigned long GetMessagesTx()
const = 0;
74 virtual unsigned long GetMessagesRx()
const = 0;
85 using FairMQSocketPtr = std::unique_ptr<FairMQSocket>;
91 using SocketPtr = FairMQSocketPtr;
92 struct SocketError : std::runtime_error {
using std::runtime_error::runtime_error; };