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.
Defining DataPointCompositeObject explicitly as copiable.
static void Serialize(fair::mq::Message &msg, const TObject *input)