PhoenixSocket
6.4.0
Library which integrates socket use in Phoenix
Toggle main menu visibility
Loading...
Searching...
No Matches
PMockBackendFile_impl.h
Go to the documentation of this file.
1
/***************************************
2
Auteur : Pierre Aubert
3
Mail : pierre.aubert@lapp.in2p3.fr
4
Licence : CeCILL-C
5
****************************************/
6
7
#ifndef __PMOCKBACKENDFILE_IMPL_H__
8
#define __PMOCKBACKENDFILE_IMPL_H__
9
10
#include "
PMockBackendFile.h
"
11
13
17
template
<
typename
T>
18
PSendStatus::PSendStatus
PMockSocketFile::sendData
(
const
T & data,
PSendFlag::PSendFlag
flag){
19
if
(
p_mock
.getIsRecord()){
20
size_t
dataSize(data_size<T>(data));
21
PSendStatus::PSendStatus
sendStatus =
PSendStatus::OK
;
22
PMockSocketFile::Message
msg;
23
msg.resize(dataSize);
24
DataStreamIter iter = (DataStreamIter)msg.data();
25
if
(data_message_save<T>(iter, data)){
//Save the message
26
sendStatus =
sendMsg
(msg, flag);
27
}
else
{
28
sendStatus =
PSendStatus::CANNOT_SERIALIZE_DATA
;
29
}
30
return
sendStatus;
31
}
else
{
32
T referenceData;
33
PMockSocketFile::Message
referenceMsg;
34
p_mock
.getCurrentValue(referenceMsg);
//Let's get the reference message
35
if
(referenceMsg.size() != 0lu){
36
DataStreamIter iter = (DataStreamIter)referenceMsg.data();
37
check_stream_assert(data_message_load<T>(iter, referenceData));
38
std::stringstream index;
39
index <<
p_mock
.getCurrentIndex();
40
check_stream_assert(phoenix_check_stream(
"mock '"
+
p_mock
.getFileName()+
"', [mock index = "
+index.str()+
"]"
, data, referenceData));
41
}
42
return
PSendStatus::OK
;
43
}
44
}
45
47
51
template
<
typename
T>
52
PRecvStatus::PRecvStatus
PMockSocketFile::recvData
(T & data,
PRecvFlag::PRecvFlag
flag){
53
PRecvStatus::PRecvStatus
recvStatus =
PRecvStatus::OK
;
54
PMockSocketFile::Message
msg;
55
recvStatus =
recvMsg
(msg, flag);
56
//If the message is empty we cannot initialise the given data, so, this is an error
57
if
(msg.size() != 0lu){
58
DataStreamIter iter = (DataStreamIter)msg.data();
59
if
(!data_message_load<T>(iter, data)){
60
recvStatus =
PRecvStatus::CANNOT_DESERIALIZE_DATA
;
61
}
62
}
else
{
63
recvStatus =
PRecvStatus::NO_MESSAGE_RECEIVED
;
64
}
65
return
recvStatus;
66
}
67
68
#endif
69
PMockBackendFile.h
PMockSocketFile::sendData
PSendStatus::PSendStatus sendData(const T &data, PSendFlag::PSendFlag flag)
Send data with the socket.
Definition
PMockBackendFile_impl.h:18
PMockSocketFile::recvMsg
PRecvStatus::PRecvStatus recvMsg(Message &msg, PRecvFlag::PRecvFlag flag)
Recieved data with the socket.
Definition
PMockBackendFile.cpp:89
PMockSocketFile::recvData
PRecvStatus::PRecvStatus recvData(T &data, PRecvFlag::PRecvFlag flag)
Recieved data with the socket.
Definition
PMockBackendFile_impl.h:52
PMockSocketFile::sendMsg
PSendStatus::PSendStatus sendMsg(const Message &msg, PSendFlag::PSendFlag flag)
Specialisation to send a Message with the socket.
Definition
PMockBackendFile.cpp:75
PMockSocketFile::p_mock
PGenericFileMock< DataStreamMsg > p_mock
Mock handler.
Definition
PMockBackendFile.h:45
PMockSocketFile::Message
DataStreamMsg Message
Define the type of message used by the PAbstractSocketManager.
Definition
PMockBackendFile.h:20
PRecvFlag::PRecvFlag
PRecvFlag
describe the receiving flag of the Socket
Definition
PSocketFlag.h:35
PRecvStatus::PRecvStatus
PRecvStatus
describe the result of the recv
Definition
PSocketFlag.h:43
PRecvStatus::CANNOT_DESERIALIZE_DATA
@ CANNOT_DESERIALIZE_DATA
Definition
PSocketFlag.h:51
PRecvStatus::NO_MESSAGE_RECEIVED
@ NO_MESSAGE_RECEIVED
Definition
PSocketFlag.h:45
PRecvStatus::OK
@ OK
Definition
PSocketFlag.h:44
PSendFlag::PSendFlag
PSendFlag
describe the sending flag of the Socket
Definition
PSocketFlag.h:14
PSendStatus::PSendStatus
PSendStatus
describe the result of the send
Definition
PSocketFlag.h:22
PSendStatus::CANNOT_SERIALIZE_DATA
@ CANNOT_SERIALIZE_DATA
Definition
PSocketFlag.h:29
PSendStatus::OK
@ OK
Definition
PSocketFlag.h:23
src
PMockBackendFile_impl.h
Generated by
1.17.0