7#ifndef __PGENERIC_SOCKET_H_IMPL__
8#define __PGENERIC_SOCKET_H_IMPL__
15template<
typename _TBackend,
typename _TMockBackend>
21template<
typename _TBackend,
typename _TMockBackend>
34template<
typename _TBackend,
typename _TMockBackend>
37 b &= mockBackend.createClientSocket(
p_mockSocket, socketParam, mockParam);
38 b &= backend.createClientSocket(
p_socket, socketParam, param);
52template<
typename _TBackend,
typename _TMockBackend>
55 b &= mockBackend.createServerSocket(
p_mockSocket, socketParam, mockParam);
56 b &= backend.createServerSocket(
p_socket, socketParam, param);
65template<
typename _TBackend,
typename _TMockBackend>
76template<
typename _TBackend,
typename _TMockBackend>
82 typename _TMockBackend::Message msgMock;
83 _TBackend::msgToMock(msgMock, msg);
93 sendStatus =
p_socket.sendMsg(msg, flag);
103template<
typename _TBackend,
typename _TMockBackend>
107 recvStatus =
p_socket.recvMsg(msg, flag);
109 typename _TMockBackend::Message msgMock;
111 _TBackend::mockToMsg(msg, msgMock);
113 recvStatus =
p_socket.recvMsg(msg, flag);
115 typename _TMockBackend::Message msgMock;
116 _TBackend::msgToMock(msgMock, msg);
119 typename _TMockBackend::Message emptyMsg;
127template<
typename _TBackend,
typename _TMockBackend>
136template<
typename _TBackend,
typename _TMockBackend>
152template<
typename _TBackend,
typename _TMockBackend>
156 while(!b && counter < nbRetry) {
159 usleep(refreshTimer);
168template<
typename _TBackend,
typename _TMockBackend>
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.
PSendStatus::PSendStatus sendMsg(typename _TBackend::Message &msg, PSendFlag::PSendFlag flag)
Send message on the given socket.
_TBackend::Socket p_socket
Socket to be used with the classical backend.
bool isConnected() const
Say if the Socket is connected.
PRecvStatus::PRecvStatus recvMsg(typename _TBackend::Message &msg, PRecvFlag::PRecvFlag flag)
Receive message from the given socket.
virtual ~PGenericSocket()
Destructor of PGenericSocket.
bool waitUntilConnection(uint64_t refreshTimer, size_t nbRetry) const
Wait until the socket is connected.
bool createClientSocket(_TBackend &backend, _TMockBackend &mockBackend, const PSocketParam &socketParam, const typename _TBackend::Param ¶m, const std::string &mockPrefix, const typename _TMockBackend::Param &mockParam)
Create a client socket.
bool createServerSocket(_TBackend &backend, _TMockBackend &mockBackend, const PSocketParam &socketParam, const typename _TBackend::Param ¶m, const std::string &mockPrefix, const typename _TMockBackend::Param &mockParam)
Create a server socket.
PSocketMode::PSocketMode p_mode
Mode of the Socket (no mock, mock, mock_record)
void initialisationPGenericSocket(PSocketMode::PSocketMode mode)
Initialisation function of the class PGenericSocket.
void setMode(PSocketMode::PSocketMode mode)
Set the mode of the generic socket.
PRecvFlag
describe the receiving flag of the Socket
PRecvStatus
describe the result of the recv
PSendFlag
describe the sending flag of the Socket
PSendStatus
describe the result of the send
PSocketMode
describe the mode of the Socket
Parameters to create a socket.