From 09ea40e37f633c3776775fd20208db4a01cff729 Mon Sep 17 00:00:00 2001 From: winckler Date: Thu, 24 Mar 2016 15:59:33 +0100 Subject: [PATCH] add serialization API --- .../MQ/8-multipart/FairMQExample8Sampler.cxx | 1 - .../MQ/8-multipart/FairMQExample8Sampler.h | 42 +++++++++++++++++ examples/MQ/8-multipart/FairMQExample8Sink.h | 45 +++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) diff --git a/examples/MQ/8-multipart/FairMQExample8Sampler.cxx b/examples/MQ/8-multipart/FairMQExample8Sampler.cxx index 16edda50..45106c20 100644 --- a/examples/MQ/8-multipart/FairMQExample8Sampler.cxx +++ b/examples/MQ/8-multipart/FairMQExample8Sampler.cxx @@ -38,7 +38,6 @@ void FairMQExample8Sampler::Run() Ex8Header* header = new Ex8Header; // Set stopFlag to 1 for the first 4 messages, and to 0 for the 5th. counter < 5 ? header->stopFlag = 0 : header->stopFlag = 1; - LOG(INFO) << "Sending header with stopFlag: " << header->stopFlag; FairMQParts parts; diff --git a/examples/MQ/8-multipart/FairMQExample8Sampler.h b/examples/MQ/8-multipart/FairMQExample8Sampler.h index 479a057e..3712cd8f 100644 --- a/examples/MQ/8-multipart/FairMQExample8Sampler.h +++ b/examples/MQ/8-multipart/FairMQExample8Sampler.h @@ -19,6 +19,48 @@ #include "FairMQDevice.h" + +struct MyPoint +{ + /* data */ + double x=6; + double y=6; + double z=6; +}; + +struct Ex8Header { + int32_t stopFlag; +}; + + + +struct MyPointSerializer +{ + void Serialize(std::unique_ptr& msg, MyPoint* input) + { + int DataSize = sizeof(MyPoint); + msg->Rebuild(DataSize); + MyPoint* digiptr = reinterpret_cast(msg->GetData()); + digiptr->x=input->x; + digiptr->y=input->y; + digiptr->z=input->z; + } + + void Deserialize(std::unique_ptr& msg, MyPoint* input) + { + MyPoint* digiptr = static_cast(msg->GetData()); + input->x=digiptr->x; + input->y=digiptr->y; + input->z=digiptr->z; + } + +}; + + + + + + class FairMQExample8Sampler : public FairMQDevice { public: diff --git a/examples/MQ/8-multipart/FairMQExample8Sink.h b/examples/MQ/8-multipart/FairMQExample8Sink.h index e71851b2..c3a45675 100644 --- a/examples/MQ/8-multipart/FairMQExample8Sink.h +++ b/examples/MQ/8-multipart/FairMQExample8Sink.h @@ -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& msg, MyPoint* input) + { + int DataSize = sizeof(MyPoint); + msg->Rebuild(DataSize); + MyPoint* digiptr = reinterpret_cast(msg->GetData()); + digiptr->x=input->x; + digiptr->y=input->y; + digiptr->z=input->z; + } + + void Deserialize(std::unique_ptr& msg, MyPoint* input) + { + MyPoint* digiptr = static_cast(msg->GetData()); + input->x=digiptr->x; + input->y=digiptr->y; + input->z=digiptr->z; + } + + void Deserialize(FairMQMessage& msg, MyPoint* input) + { + MyPoint* digiptr = static_cast(msg.GetData()); + input->x=digiptr->x; + input->y=digiptr->y; + input->z=digiptr->z; + } + +}; + class FairMQExample8Sink : public FairMQDevice { public: