change serialization API so that it takes a FairMQMessage reference

This commit is contained in:
winckler 2016-03-28 19:13:49 +02:00
parent 4c50409af5
commit 835c88c6d2
2 changed files with 9 additions and 5 deletions

View File

@ -98,19 +98,20 @@ class FairMQDevice : public FairMQStateMachine, public FairMQConfigurable
}
//*
template<typename Serializer, typename MessageType, typename DataType, typename... Args>
void Serialize(std::unique_ptr<FairMQMessage>& msg, DataType&& data, Args&&... args) const
template<typename Serializer, typename DataType, typename... Args>
void Serialize(FairMQMessage& msg, DataType&& data, Args&&... args) const
{
Serializer().Serialize(msg,std::forward<DataType>(data),std::forward<Args>(args)...);
}
template<typename Deserializer, typename DataType, typename... Args>
void Deserialize(std::unique_ptr<FairMQMessage>& msg, DataType&& data, Args&&... args) const
void Deserialize(FairMQMessage& msg, DataType&& data, Args&&... args) const
{
Deserializer().Deserialize(msg,std::forward<DataType>(data),std::forward<Args>(args)...);
}
// */
/*
// temporary overload to handle the case of a return ref to FairMQMessage
template<typename Serializer, typename MessageType, typename DataType>
void Serialize(MessageType&& msg, DataType&& data) const
@ -124,7 +125,7 @@ class FairMQDevice : public FairMQStateMachine, public FairMQConfigurable
Deserializer().Deserialize(std::forward<MessageType>(msg), std::forward<DataType>(data));
}
// */
/// Shorthand method to receive `msg` on `chan` at index `i`

View File

@ -81,6 +81,9 @@ class FairMQParts
/// @param index container index
inline std::unique_ptr<FairMQMessage>& At(const int index) { return fParts.at(index); }
inline FairMQMessage& At_ref(const int index) { return *(fParts.at(index)); }
template<typename Deserializer, typename DataType>
inline void At(DataType&& data, const int index)
{