From 835c88c6d234fb0e59bed51d4b7abb8cf7cca1f4 Mon Sep 17 00:00:00 2001 From: winckler Date: Mon, 28 Mar 2016 19:13:49 +0200 Subject: [PATCH] change serialization API so that it takes a FairMQMessage reference --- fairmq/FairMQDevice.h | 11 ++++++----- fairmq/FairMQParts.h | 3 +++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/fairmq/FairMQDevice.h b/fairmq/FairMQDevice.h index 7a85e358..93098f39 100644 --- a/fairmq/FairMQDevice.h +++ b/fairmq/FairMQDevice.h @@ -98,19 +98,20 @@ class FairMQDevice : public FairMQStateMachine, public FairMQConfigurable } //* - template - void Serialize(std::unique_ptr& msg, DataType&& data, Args&&... args) const + template + void Serialize(FairMQMessage& msg, DataType&& data, Args&&... args) const { Serializer().Serialize(msg,std::forward(data),std::forward(args)...); } template - void Deserialize(std::unique_ptr& msg, DataType&& data, Args&&... args) const + void Deserialize(FairMQMessage& msg, DataType&& data, Args&&... args) const { Deserializer().Deserialize(msg,std::forward(data),std::forward(args)...); } -// */ + +/* // temporary overload to handle the case of a return ref to FairMQMessage template void Serialize(MessageType&& msg, DataType&& data) const @@ -124,7 +125,7 @@ class FairMQDevice : public FairMQStateMachine, public FairMQConfigurable Deserializer().Deserialize(std::forward(msg), std::forward(data)); } - +// */ /// Shorthand method to receive `msg` on `chan` at index `i` diff --git a/fairmq/FairMQParts.h b/fairmq/FairMQParts.h index dc2ad793..453427a1 100644 --- a/fairmq/FairMQParts.h +++ b/fairmq/FairMQParts.h @@ -81,6 +81,9 @@ class FairMQParts /// @param index container index inline std::unique_ptr& At(const int index) { return fParts.at(index); } + + inline FairMQMessage& At_ref(const int index) { return *(fParts.at(index)); } + template inline void At(DataType&& data, const int index) {