IpbusMock  1.0.0
Library which integrates IPbus use in Phoenix
Loading...
Searching...
No Matches
PIpBusBackend.h
Go to the documentation of this file.
1/***************************************
2 Auteur : Jean Jacquemier & Thibaut Oprinsen
3 Mail : jean.jacquemier@lapp.in2p3.fr
4 Licence : CeCILL-C
5****************************************/
6
7#ifndef __PIPBUSBACKEND_H__
8#define __PIPBUSBACKEND_H__
9
10#include "PSocketFlag.h"
11#include "phoenix_generic_mock.h"
12#include "phoenix_data_stream.h"
13#include "uaMessage.h"
14#include "ipbrw.h"
15
19 std::string connectionFilePath;
21 std::string connectionId;
22};
23
24template <typename T>
25std::string statusToStr(T status);
26
29 public:
34
36 virtual ~PIpBusSocket();
37
38 bool createClientSocket(const Param & extraParam);
39 bool createServerSocket(const Param & extraParam);
40
41 template<typename T>
42 PSendStatus::PSendStatus sendData(const T & data, PSendFlag::PSendFlag flag = PSendFlag::BLOCK);
43 PSendStatus::PSendStatus sendMsg(Message & msg, PSendFlag::PSendFlag flag = PSendFlag::BLOCK);
44
45 template<typename T>
46 PRecvStatus::PRecvStatus recvData(T & data, PRecvFlag::PRecvFlag flag = PRecvFlag::BLOCK);
47 PRecvStatus::PRecvStatus recvMsg(Message & msg, PRecvFlag::PRecvFlag flag = PRecvFlag::BLOCK);
48
49 bool isConnected() const;
50 void close();
51
52 private:
55};
56
59 public:
66
68
69 static Param client(std::string &connectionFilePath, std::string &connectionId);
70 static Param server(std::string &connectionFilePath, std::string &connectionId);
71
72 bool createClientSocket(Socket & socket, const PSocketParam & socketParam, const Param & param);
73 bool createServerSocket(Socket & socket, const PSocketParam & socketParam, const Param & param);
74
75 static void msgToMock(DataStreamMsg & mockMsg, const Message & msg);
76 static void mockToMsg(Message & msg, DataStreamMsg & mockMsg);
77};
78
79#include "PIpBusBackend_impl.h"
80
81#endif
std::string statusToStr(T status)
Convert PSendStatus into string.
PIpBusSocket Socket
Define the socket of the backend used by the PAbstractSocketManager.
PIpBusBackend()
Default constructor of PIpBusBackend.
bool createServerSocket(Socket &socket, const PSocketParam &socketParam, const Param &param)
Create parameters for a server socket.
static void msgToMock(DataStreamMsg &mockMsg, const Message &msg)
Copy current backend message data into mock message.
static void mockToMsg(Message &msg, DataStreamMsg &mockMsg)
Copy mock message data into current backend message.
PIpBusParam Param
Define the type of extra parameters which can be used to create a Socket.
static Param client(std::string &connectionFilePath, std::string &connectionId)
Create parameters for a client socket.
bool createClientSocket(Socket &socket, const PSocketParam &socketParam, const Param &param)
Create parameters for a client socket.
static Param server(std::string &connectionFilePath, std::string &connectionId)
Create parameters for a server socket.
UaMessage Message
Define the type of message used by the PAbstractSocketManager.
PhoenixSocket API bridge to IpBus backend.
PIpBusSocket()
Default constructor of PIpBusSocket.
virtual ~PIpBusSocket()
Destructor of PIpBusSocket.
PIpBusParam Param
Define the type of extra parameters which can be used to create a Socket.
bool createServerSocket(const Param &extraParam)
Create a server socket.
bool createClientSocket(const Param &extraParam)
Create a client socket.
void close()
Close the socket.
IpBusImpl * p_uaSocket
UA socket.
PSendStatus::PSendStatus sendMsg(Message &msg, PSendFlag::PSendFlag flag=PSendFlag::BLOCK)
PSendStatus::PSendStatus sendData(const T &data, PSendFlag::PSendFlag flag=PSendFlag::BLOCK)
Send data with the socket.
PRecvStatus::PRecvStatus recvData(T &data, PRecvFlag::PRecvFlag flag=PRecvFlag::BLOCK)
Recieved data with the socket.
PRecvStatus::PRecvStatus recvMsg(Message &msg, PRecvFlag::PRecvFlag flag=PRecvFlag::BLOCK)
Receive a message from the given socket.
bool isConnected() const
UaMessage Message
Define the type of message used by the PAbstractSocketManager.
Set of parameters to be passed as message.
Definition uaMessage.h:10
Set of parameters to be passed to create a socket with mock backend.
std::string connectionFilePath
Connection File Path.
std::string connectionId
Device Id.