7 #ifndef __PGENERIC_SOCKET_H__
8 #define __PGENERIC_SOCKET_H__
15 template<
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);
31 size_t dataSize(data_size<U>(data));
35 typename _TMockBackend::Message msg;
36 _TMockBackend::msgResize(msg, dataSize);
38 if(data_message_save<U>(iter, data)){
51 typename _TBackend::Message msg;
52 _TBackend::msgResize(msg, dataSize);
54 if(data_message_save<U>(iter, data)){
55 b &= _TBackend::send(
p_socket, msg, flag);
74 typename _TBackend::Message msg;
75 b &= _TBackend::recv(
p_socket, msg, flag);
77 b &= _TBackend::msgSize(msg) != 0lu;
80 b &= data_message_load<U>(iter, data);
83 typename _TMockBackend::Message msg;
86 b &= _TMockBackend::msgSize(msg) != 0lu;
89 b &= data_message_load<U>(iter, data);
92 typename _TBackend::Message msg;
93 b &= _TBackend::recv(
p_socket, msg, flag);
95 b &= _TBackend::msgSize(msg) != 0lu;
98 b &= data_message_load<U>(iter, data);
100 typename _TMockBackend::Message msgMock;
101 _TBackend::msgToMock(msgMock, msg);
105 typename _TMockBackend::Message empty_msg;
106 b &= _TMockBackend::recv(
p_mockSocket, empty_msg, flag);
Abstract socket which has a mock mode to avoid heavy socket backend for unit tests.
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.
DataStreamType * DataStreamIter
PRecvFlag
describe the recieving flag of the Socket
PSendFlag
describe the sending flag of the Socket
PSocketMode
describe the mode of the Socket