11#ifndef O2_FRAMEWORK_ROOTMESSAGECONTEXT_H_
12#define O2_FRAMEWORK_ROOTMESSAGECONTEXT_H_
30#include <fairmq/Message.h>
31#include <fairmq/Parts.h>
39#include <fairmq/FwdDecls.h>
61 template <
typename ContextType,
typename... Args>
65 mObject = std::make_unique<value_type>(std::forward<Args>(args)...);
66 mPayloadMsg = context->proxy().createOutputMessage(routeIndex);
74 assert(
mParts.Size() == 1);
75 if (mPayloadMsg->GetSize() <
sizeof(
char*)) {
76 mPayloadMsg->Rebuild(4096, {64});
79 mParts.AddPart(std::move(mPayloadMsg));
80 return ContextObject::finalize();
94 std::unique_ptr<value_type> mObject;
95 fair::mq::MessagePtr mPayloadMsg;
104struct root_serializer<T,
std::enable_if_t<has_root_dictionary<T>::value || is_specialization<T, ROOTSerialized>::value == true>> : std::true_type {
Type wrappers for enfording a specific serialization method.
~RootSerializedObject() override=default
RootSerializedObject()=delete
default constructor forbidden, object alwasy has to control messages
RootSerializedObject(ContextType *context, fair::mq::MessagePtr &&headerMsg, RouteIndex routeIndex, Args &&... args)
constructor taking header message by move and creating the object from variadic argument list
fair::mq::Parts finalize() final
Finalize object and return parts by move This retrieves the actual message from the vector object and...
Defining PrimaryVertex explicitly as messageable.
static void Serialize(fair::mq::Message &msg, const TObject *input)