add serialization API

This commit is contained in:
winckler
2016-03-24 15:59:33 +01:00
committed by Alexey Rybalchenko
parent c9388d4837
commit 09ea40e37f
3 changed files with 87 additions and 1 deletions

View File

@@ -17,6 +17,51 @@
#include "FairMQDevice.h"
struct Ex8Header {
int32_t stopFlag;
};
struct MyPoint
{
/* data */
double x=1;
double y=1;
double z=1;
};
struct MyPointSerializer
{
void Serialize(std::unique_ptr<FairMQMessage>& msg, MyPoint* input)
{
int DataSize = sizeof(MyPoint);
msg->Rebuild(DataSize);
MyPoint* digiptr = reinterpret_cast<MyPoint*>(msg->GetData());
digiptr->x=input->x;
digiptr->y=input->y;
digiptr->z=input->z;
}
void Deserialize(std::unique_ptr<FairMQMessage>& msg, MyPoint* input)
{
MyPoint* digiptr = static_cast<MyPoint*>(msg->GetData());
input->x=digiptr->x;
input->y=digiptr->y;
input->z=digiptr->z;
}
void Deserialize(FairMQMessage& msg, MyPoint* input)
{
MyPoint* digiptr = static_cast<MyPoint*>(msg.GetData());
input->x=digiptr->x;
input->y=digiptr->y;
input->z=digiptr->z;
}
};
class FairMQExample8Sink : public FairMQDevice
{
public: