7#ifndef __PGENERIC_SOCKET_H__
8#define __PGENERIC_SOCKET_H__
15template<
typename _TBackend,
typename _TMockBackend>
21 bool createClientSocket(
const typename _TBackend::Param & param,
const typename _TMockBackend::Param & mockParam);
22 bool createServerSocket(
const typename _TBackend::Param & param,
const typename _TMockBackend::Param & mockParam);
25 bool createClientSocket(
const std::string & host,
size_t port,
const typename _TBackend::Param & param,
const std::string & mockPrefix,
const typename _TMockBackend::Param & mockParam);
26 bool createServerSocket(
const std::string & host,
size_t port,
const typename _TBackend::Param & param,
const std::string & mockPrefix,
const typename _TMockBackend::Param & mockParam);
37 size_t dataSize(data_size<U>(data));
41 typename _TMockBackend::Message msg;
42 _TMockBackend::msgResize(msg, dataSize);
43 DataStreamIter iter = _TMockBackend::msgData(msg);
44 if(data_message_save<U>(iter, data)){
57 typename _TBackend::Message msg;
58 _TBackend::msgResize(msg, dataSize);
59 DataStreamIter iter = _TBackend::msgData(msg);
60 if(data_message_save<U>(iter, data)){
61 b &= _TBackend::send(
p_socket, msg, flag);
80 typename _TBackend::Message msg;
81 b &= _TBackend::recv(
p_socket, msg, flag);
83 b &= _TBackend::msgSize(msg) != 0lu;
85 DataStreamIter iter = _TBackend::msgData(msg);
86 b &= data_message_load<U>(iter, data);
89 typename _TMockBackend::Message msg;
92 b &= _TMockBackend::msgSize(msg) != 0lu;
94 DataStreamIter iter = _TMockBackend::msgData(msg);
95 b &= data_message_load<U>(iter, data);
98 typename _TBackend::Message msg;
99 b &= _TBackend::recv(
p_socket, msg, flag);
101 b &= _TBackend::msgSize(msg) != 0lu;
103 DataStreamIter iter = _TBackend::msgData(msg);
104 b &= data_message_load<U>(iter, data);
106 typename _TMockBackend::Message msgMock;
107 _TBackend::msgToMock(msgMock, msg);
111 typename _TMockBackend::Message empty_msg;
112 b &= _TMockBackend::recv(
p_mockSocket, empty_msg, flag);
PGenericSocket(PSocketMode::PSocketMode mode)
Default constructor of PGenericSocket.
void close()
Close the socket.
_TMockBackend::Socket p_mockSocket
Socket to be used with the mock backend.
bool recvMsg(typename _TBackend::Message &msg, PRecvFlag::PRecvFlag flag)
Recieve message from the given socket.
bool recvData(U &data, PRecvFlag::PRecvFlag flag)
Recieve message from the given socket.
_TBackend::Socket p_socket
Socket to be used with the classical backend.
bool isConnected() const
Say if the Socket is connected.
virtual ~PGenericSocket()
Destructor of PGenericSocket.
bool sendData(const U &data, PSendFlag::PSendFlag flag)
Send message on the given socket.
PSocketMode::PSocketMode p_mode
Mode of the Socket (no mock, mock, mock_record)
bool sendMsg(typename _TBackend::Message &msg, PSendFlag::PSendFlag flag)
Send message on the given socket.
bool createClientSocket(const typename _TBackend::Param ¶m, const typename _TMockBackend::Param &mockParam)
Create a client socket.
void initialisationPGenericSocket(PSocketMode::PSocketMode mode)
Initialisation function of the class PGenericSocket.
bool createServerSocket(const typename _TBackend::Param ¶m, const typename _TMockBackend::Param &mockParam)
Create a server socket.
void setMode(PSocketMode::PSocketMode mode)
Set the mode of the generic socket.
PRecvFlag
describe the recieving flag of the Socket
PSendFlag
describe the sending flag of the Socket
PSocketMode
describe the mode of the Socket