Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • CTA-LAPP/PHOENIX_LIBS2/PhoenixSocket
1 result
Show changes
Commits on Source (2)
......@@ -114,7 +114,7 @@ void threadRecievedMessage(PSocketMode::PSocketMode mode, const std::string & ad
data_stream_assert(manager.recvMsg("Bob", msg));
data_stream_assert(Backend::msgSize(msg) == 3lu);
char* data = Backend::msgData(msg);
DataStreamIter data = Backend::msgData(msg);
data_stream_assert(data[0] == (char)i + 1);
data_stream_assert(data[1] == (char)i + 2);
data_stream_assert(data[2] == (char)i + 3);
......
......@@ -113,15 +113,15 @@ size_t PEmptyBackend::msgSize(const PEmptyBackend::Message& msg){
/** @param msg : message to be used
* @return data of the message in bytes
*/
const char* PEmptyBackend::msgData(const PEmptyBackend::Message& msg){
return msg.data();
const DataStreamIter PEmptyBackend::msgData(const PEmptyBackend::Message& msg){
return (const DataStreamIter)msg.data();
}
///Get the data of a message
/** @param msg : message to be used
* @return data of the message in bytes
*/
char* PEmptyBackend::msgData(PEmptyBackend::Message& msg){
DataStreamIter PEmptyBackend::msgData(PEmptyBackend::Message& msg){
return msg.data();
}
......
......@@ -24,7 +24,7 @@ class PEmptyBackend{
///Define the socket of the backend used by the PAbstractSocketManager
typedef int Socket;
///Define the type of message used by the PAbstractSocketManager
typedef std::vector<char> Message;
typedef DataStreamMsg Message;
///Define the type of extra parameters which can be used to create a Socket used by the PAbstractSocketManager
typedef PEmptyParam Param;
......@@ -45,8 +45,8 @@ class PEmptyBackend{
static void msgResize(Message& msg, size_t sizeMsg);
static size_t msgSize(const Message& msg);
static const char* msgData(const Message& msg);
static char* msgData(Message& msg);
static const DataStreamIter msgData(const Message& msg);
static DataStreamIter msgData(Message& msg);
static void close(Socket & socket);
static bool isConnected(const Socket & socket);
......
......@@ -34,8 +34,8 @@ class PGenericSocket{
if(p_mode != PSocketMode::NO_MOCK){
typename _TMockBackend::Message msg;
_TMockBackend::msgResize(msg, dataSize);
char* iter = _TMockBackend::msgData(msg);
if(data_message_save<char*, U>(iter, data)){ //Save the message
DataStreamIter iter = _TMockBackend::msgData(msg);
if(data_message_save<U>(iter, data)){ //Save the message
b &= _TMockBackend::send(p_mockSocket, msg, flag);
}else{
b = false;
......@@ -44,8 +44,8 @@ class PGenericSocket{
if(p_mode != PSocketMode::MOCK){
typename _TBackend::Message msg;
_TBackend::msgResize(msg, dataSize);
char* iter = _TBackend::msgData(msg);
if(data_message_save<char*, U>(iter, data)){ //Save the message
DataStreamIter iter = _TBackend::msgData(msg);
if(data_message_save<U>(iter, data)){ //Save the message
b &= _TBackend::send(p_socket, msg, flag);
}else{
b = false;
......@@ -70,7 +70,7 @@ class PGenericSocket{
//If the message is empty we cannot initialise the given data, so, this is an error
b &= _TBackend::msgSize(msg) != 0lu;
if(b){
char* iter = _TBackend::msgData(msg);
DataStreamIter iter = _TBackend::msgData(msg);
b &= data_message_load<U>(iter, data);
}
}else if(p_mode == PSocketMode::MOCK){ //Mock mode
......@@ -79,7 +79,7 @@ class PGenericSocket{
//If the message is empty we cannot initialise the given data, so, this is an error
b &= _TMockBackend::msgSize(msg) != 0lu;
if(b){
char* iter = _TMockBackend::msgData(msg);
DataStreamIter iter = _TMockBackend::msgData(msg);
b &= data_message_load<U>(iter, data);
}
}else{ //Mock record mode
......@@ -88,7 +88,7 @@ class PGenericSocket{
//If the message is empty we cannot initialise the given data, so, this is an error
b &= _TBackend::msgSize(msg) != 0lu;
if(b){
char* iter = _TBackend::msgData(msg);
DataStreamIter iter = _TBackend::msgData(msg);
b &= data_message_load<U>(iter, data);
if(b){
//Let's convert the message into the mock backend
......
......@@ -130,7 +130,7 @@ bool PMockBackend::recv(PMockBackend::Socket & socket, PMockBackend::Message & m
/** @param[out] msg : message to be resized
* @param sizeMsg : new size of the message
*/
void PMockBackend::msgResize(PMockBackend::Message& msg, size_t sizeMsg){
void PMockBackend::msgResize(PMockBackend::Message & msg, size_t sizeMsg){
msg.resize(sizeMsg);
}
......@@ -138,7 +138,7 @@ void PMockBackend::msgResize(PMockBackend::Message& msg, size_t sizeMsg){
/** @param msg : message to be used
* @return size of the message in bytes
*/
size_t PMockBackend::msgSize(const PMockBackend::Message& msg){
size_t PMockBackend::msgSize(const PMockBackend::Message & msg){
return msg.size();
}
......@@ -146,15 +146,15 @@ size_t PMockBackend::msgSize(const PMockBackend::Message& msg){
/** @param msg : message to be used
* @return data of the message in bytes
*/
const char* PMockBackend::msgData(const PMockBackend::Message& msg){
return msg.data();
const DataStreamIter PMockBackend::msgData(const PMockBackend::Message & msg){
return (const DataStreamIter)msg.data();
}
///Get the data of a message
/** @param msg : message to be used
* @return data of the message in bytes
*/
char* PMockBackend::msgData(PMockBackend::Message& msg){
DataStreamIter PMockBackend::msgData(PMockBackend::Message & msg){
return msg.data();
}
......
......@@ -40,7 +40,7 @@ class PMockBackend{
///Define the socket of the backend used by the PAbstractSocketManager
typedef PMockSocket Socket;
///Define the type of message used by the PAbstractSocketManager
typedef std::vector<char> Message;
typedef DataStreamMsg Message;
///Define the type of extra parameters which can be used to create a Socket used by the PAbstractSocketManager
typedef PMockParam Param;
......@@ -54,11 +54,11 @@ class PMockBackend{
static bool send(Socket & socket, const Message& msg, PSendFlag::PSendFlag flag);
static bool recv(Socket & socket, Message& msg, PRecvFlag::PRecvFlag flag);
static void msgResize(Message& msg, size_t sizeMsg);
static size_t msgSize(const Message& msg);
static const char* msgData(const Message& msg);
static char* msgData(Message& msg);
static const DataStreamIter msgData(const Message& msg);
static DataStreamIter msgData(Message& msg);
static void close(Socket & socket);
static bool isConnected(const Socket & socket);
......
......@@ -29,6 +29,22 @@ bool phoenix_createMockSocket(PVecMockMessage & vecInput, std::string & inputFil
return true;
}
///Read a mock socket
/** @param[out] vecInput : vector of input message to be read
* @param address : host address
* @param port : port to be used
* @return true on success, false otherwise
*/
bool phoenix_readMockSocket(PVecMockMessage & vecInput, const std::string & address, size_t port){
std::stringstream strFileName;
strFileName << address << "_" << port << "_";
std::string baseFileName(strFileName.str());
std::string inputFileName = baseFileName + ".pmocksocket";
return data_load(inputFileName, vecInput);
}
///Close a mock socket
/** @param vecOutput : vector of output messages to be saved
* @param outputFileName : name of the output message file to be written
......
......@@ -12,7 +12,7 @@
#include <data_message.h>
///Vector of messages
typedef std::vector<std::vector<char> > PVecMockMessage;
typedef std::vector<DataStreamMsg > PVecMockMessage;
///Add Data in a sequence of mock messages
/** @param[out] vecOutput : vector of messages (sequence of message)
......@@ -21,8 +21,8 @@ typedef std::vector<std::vector<char> > PVecMockMessage;
*/
template<typename T>
bool phoenix_addMockMessage(PVecMockMessage & vecOutput, const T & data){
std::vector<char> vecData(data_size(data));
char* iter = (char*)vecData.data();
DataStreamMsg vecData(data_size(data));
DataStreamIter iter = (DataStreamIter)vecData.data();
if(data_message_save(iter, data)){
vecOutput.push_back(vecData);
return true;
......@@ -30,6 +30,7 @@ bool phoenix_addMockMessage(PVecMockMessage & vecOutput, const T & data){
return false;
}
bool phoenix_readMockSocket(PVecMockMessage & vecInput, const std::string & address, size_t port);
bool phoenix_createMockSocket(PVecMockMessage & vecInput, std::string & inputFileName, std::string & outputFileName, const std::string & address, size_t port);
......