Skip to content
Snippets Groups Projects
Commit 4b355bcc authored by Pierre Aubert's avatar Pierre Aubert
Browse files

Add conversion of flags type between backends

parent 987eb4d6
No related branches found
No related tags found
No related merge requests found
Pipeline #374706 passed
......@@ -26,6 +26,10 @@ class PEmptyBackend{
typedef std::vector<char> Message;
///Define the type of extra parameters which can be used to create a Socket used by the PAbstractSocketManager
typedef PEmptyParam Param;
///Type of the send flag
typedef int SendFlag;
///Type of the recv flag
typedef int RecvFlag;
///Default send flags of the PZmqBackend used by the PAbstractSocketManager
static const int defaultSendFlag = 0;
......
......@@ -35,7 +35,7 @@ class PGenericSocket{
_TMockBackend::msgResize(msg, dataSize);
char* iter = _TMockBackend::msgData(msg);
if(data_message_save<char*, U>(iter, data)){ //Save the message
b &= _TMockBackend::send(p_mockSocket, msg, flags);
b &= _TMockBackend::send(p_mockSocket, msg, (typename _TMockBackend::SendFlag)flags);
}else{
b = false;
}
......@@ -45,7 +45,7 @@ class PGenericSocket{
_TBackend::msgResize(msg, dataSize);
char* iter = _TBackend::msgData(msg);
if(data_message_save<char*, U>(iter, data)){ //Save the message
b &= _TBackend::send(p_socket, msg, flags);
b &= _TBackend::send(p_socket, msg, (typename _TBackend::SendFlag)flags);
}else{
b = false;
}
......@@ -66,10 +66,10 @@ class PGenericSocket{
typename _TMockBackend::Message vecTmp;
_TMockBackend::msgResize(vecTmp, dataSize);
memcpy(_TMockBackend::msgData(vecTmp), _TBackend::msgData(msg), dataSize);
b &= _TMockBackend::send(p_mockSocket, vecTmp, flags);
b &= _TMockBackend::send(p_mockSocket, vecTmp, (typename _TMockBackend::SendFlag)flags);
}
if(p_mode != PSocketMode::MOCK){
b &= _TBackend::send(p_socket, msg, flags);
b &= _TBackend::send(p_socket, msg, (typename _TBackend::SendFlag)flags);
}
return b;
}
......@@ -84,7 +84,7 @@ class PGenericSocket{
bool b(true);
if(p_mode == PSocketMode::NO_MOCK){ //Normal mode
typename _TBackend::Message msg;
b &= _TBackend::recv(p_socket, msg, flags);
b &= _TBackend::recv(p_socket, msg, (typename _TBackend::RecvFlag)flags);
//If the message is empty we cannot initialise the given data, so, this is an error
b &= _TBackend::msgSize(msg) != 0lu;
if(b){
......@@ -93,7 +93,7 @@ class PGenericSocket{
}
}else if(p_mode == PSocketMode::MOCK){ //Mock mode
typename _TMockBackend::Message msg;
b &= _TMockBackend::recv(p_mockSocket, msg, flags);
b &= _TMockBackend::recv(p_mockSocket, msg, (typename _TMockBackend::RecvFlag)flags);
//If the message is empty we cannot initialise the given data, so, this is an error
b &= _TMockBackend::msgSize(msg) != 0lu;
if(b){
......@@ -102,7 +102,7 @@ class PGenericSocket{
}
}else{ //Mock record mode
typename _TBackend::Message msg;
b &= _TBackend::recv(p_socket, msg, flags);
b &= _TBackend::recv(p_socket, msg, (typename _TBackend::RecvFlag)flags);
//If the message is empty we cannot initialise the given data, so, this is an error
b &= _TBackend::msgSize(msg) != 0lu;
if(b){
......@@ -114,7 +114,7 @@ class PGenericSocket{
size_t dataSize(_TBackend::msgSize(msg));
_TMockBackend::msgResize(msgMock, dataSize);
memcpy(_TMockBackend::msgData(msgMock), _TBackend::msgData(msg), dataSize);
b &= _TMockBackend::recv(p_mockSocket, msgMock, flags);
b &= _TMockBackend::recv(p_mockSocket, msgMock, (typename _TMockBackend::RecvFlag)flags);
}
}
}
......@@ -130,23 +130,23 @@ class PGenericSocket{
bool recvMsg(typename _TBackend::Message & msg, _TFlag flags){
bool b(true);
if(p_mode == PSocketMode::NO_MOCK){ //Normal mode
b &= _TBackend::recv(p_socket, msg, flags);
b &= _TBackend::recv(p_socket, msg, (typename _TBackend::RecvFlag)flags);
}else if(p_mode == PSocketMode::MOCK){ //Mock mode
typename _TMockBackend::Message msgMock;
b &= _TMockBackend::recv(p_mockSocket, msgMock, flags);
b &= _TMockBackend::recv(p_mockSocket, msgMock, (typename _TMockBackend::RecvFlag)flags);
if(b){
size_t dataSize(_TMockBackend::msgSize(msgMock));
_TBackend::msgResize(msg, dataSize);
memcpy(_TBackend::msgData(msg), _TMockBackend::msgData(msgMock), dataSize);
}
}else{ //Mock record mode
b &= _TBackend::recv(p_socket, msg, flags);
b &= _TBackend::recv(p_socket, msg, (typename _TBackend::RecvFlag)flags);
if(b){
typename _TMockBackend::Message msgMock;
size_t dataSize(_TBackend::msgSize(msg));
_TMockBackend::msgResize(msgMock, dataSize);
memcpy(_TMockBackend::msgData(msgMock), _TBackend::msgData(msg), dataSize);
b &= _TMockBackend::recv(p_mockSocket, msgMock, flags);
b &= _TMockBackend::recv(p_mockSocket, msgMock, (typename _TMockBackend::RecvFlag)flags);
}
}
return b;
......
......@@ -42,6 +42,10 @@ class PMockBackend{
typedef std::vector<char> Message;
///Define the type of extra parameters which can be used to create a Socket used by the PAbstractSocketManager
typedef PMockParam Param;
///Type of the send flag
typedef int SendFlag;
///Type of the recv flag
typedef int RecvFlag;
///Default send flags of the PZmqBackend used by the PAbstractSocketManager
static const int defaultSendFlag = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment