110 size_t dataSize(data_size(msg));
111 mockMsg.resize(dataSize);
112 DataStreamIter iter = (DataStreamIter)mockMsg.data();
113 data_message_save(iter, msg);
127 DataStreamIter iter = (DataStreamIter)mockMsg.data();
128 data_message_load(iter, msg);
138 return PSendStatus::BROKEN_SOCKET;
142 if(msg.
value.get()->size() > 1){
145 else if(msg.
value.get()->size() == 1){
150 return PSendStatus::CANNOT_SERIALIZE_DATA;
153 return success ? PSendStatus::OK : PSendStatus::BROKEN_BACKEND;
155 catch (
const uhal::exception::WriteAccessDenied& e) {
157 return PSendStatus::BROKEN_BACKEND;
159 catch (
const uhal::exception::BulkTransferOnSingleRegister& e) {
161 return PSendStatus::BROKEN_BACKEND;
163 catch (
const uhal::exception::BulkTransferRequestedTooLarge& e) {
165 return PSendStatus::BROKEN_BACKEND;
167 catch (
const uhal::exception::NoBranchFoundWithGivenUID& e) {
169 return PSendStatus::BROKEN_BACKEND;
171 catch (
const std::out_of_range& e) {
173 return PSendStatus::CANNOT_SERIALIZE_DATA;
175 catch (
const std::bad_alloc& e) {
177 return PSendStatus::BROKEN_BACKEND;
181 return PSendStatus::BROKEN_BACKEND;
192 return PRecvStatus::BROKEN_SOCKET;
196 bool success =
false;
201 uint32_t readValue = 0;
204 msg.
value.get()->clear();
205 msg.
value.get()->push_back(readValue);
210 return PRecvStatus::NO_MESSAGE_RECEIVED;
213 return success ? PRecvStatus::OK : PRecvStatus::BROKEN_BACKEND;
215 catch (
const uhal::exception::ReadAccessDenied& e) {
217 return PRecvStatus::BROKEN_BACKEND;
219 catch (
const uhal::exception::BulkTransferOnSingleRegister& e) {
221 return PRecvStatus::BROKEN_BACKEND;
223 catch (
const uhal::exception::BulkTransferRequestedTooLarge& e) {
225 return PRecvStatus::BROKEN_BACKEND;
227 catch (
const uhal::exception::NoBranchFoundWithGivenUID& e) {
229 return PRecvStatus::BROKEN_BACKEND;
231 catch (
const std::out_of_range& e) {
233 return PRecvStatus::CANNOT_DESERIALIZE_DATA;
235 catch (
const std::bad_alloc& e) {
237 return PRecvStatus::BROKEN_BACKEND;
241 return PRecvStatus::BROKEN_BACKEND;
static IpBusImpl * pipbus_createSocket(const std::string &connectionFilePath, const std::string &connectionId)
Creates an IpBusImpl instance.
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 ¶m)
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 ¶m)
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.
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)
PRecvStatus::PRecvStatus recvMsg(Message &msg, PRecvFlag::PRecvFlag flag=PRecvFlag::BLOCK)
Receive a message from the given socket.
UaMessage Message
Define the type of message used by the PAbstractSocketManager.
std::unique_ptr< std::vector< uint32_t > > value
std::string connectionFilePath
Connection File Path.
std::string connectionId
Device Id.