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) {