26template <
typename T,
typename... ARGS>
33 char const* dataProcessorName = spec ? spec->
name.c_str() :
"DataProcessorContext";
34 O2_SIGNPOST_START(data_processor_context, dpid,
"callbacks",
"Starting %{public}s::%{public}s", dataProcessorName, callbackName);
35 for (
auto& handle : handles) {
37 O2_SIGNPOST_START(data_processor_context, cid,
"callbacks",
"Starting %{public}s::%{public}s::%{public}s", dataProcessorName, handle.spec.name.c_str(), callbackName);
38 handle.callback(args..., handle.service);
39 O2_SIGNPOST_END(data_processor_context, cid,
"callbacks",
"Ending %{public}s::%{public}s::%{public}s", dataProcessorName, handle.spec.name.c_str(), callbackName);
41 O2_SIGNPOST_END(data_processor_context, dpid,
"callbacks",
"Ending %{public}s::%{public}s", dataProcessorName, callbackName);
113 O2_SIGNPOST_START(data_processor_context, dpid,
"callbacks",
"Starting DataProcessorContext preExitCallbacks");
116 for (
auto handle = handles.rbegin(); handle != handles.rend(); ++handle) {
118 O2_SIGNPOST_START(data_processor_context, cid,
"callbacks",
"Starting DataProcessorContext::preExitCallbacks for service %{public}s", handle->spec.name.c_str());
119 handle->callback(
ref, handle->service);
120 O2_SIGNPOST_END(data_processor_context, cid,
"callbacks",
"Ending DataProcessorContext::preExitCallbacks for service %{public}s", handle->spec.name.c_str());
122 O2_SIGNPOST_END(data_processor_context, dpid,
"callbacks",
"Ending DataProcessorContext preExitCallbacks");
134 O2_SIGNPOST_START(data_processor_context, dpid,
"callbacks",
"Starting DataProcessorContext domainInfoUpdatedCallback");
137 O2_SIGNPOST_START(data_processor_context, cid,
"callbacks",
"Starting DataProcessorContext::domainInfoUpdatedCallback for service %{public}s", handle.spec.name.c_str());
138 handle.callback(
ref, oldestPossibleTimeslice, channelIndex);
139 O2_SIGNPOST_END(data_processor_context, cid,
"callbacks",
"Ending DataProcessorContext::domainInfoUpdatedCallback for service %{public}s", handle.spec.name.c_str());
141 O2_SIGNPOST_END(data_processor_context, dpid,
"callbacks",
"Ending DataProcessorContext domainInfoUpdatedCallback");
147 O2_SIGNPOST_START(data_processor_context, dpid,
"callbacks",
"Starting DataProcessorContext preSendingMessagesCallbacks");
150 O2_SIGNPOST_START(data_processor_context, cid,
"callbacks",
"Starting DataProcessorContext::preSendingMessagesCallbacks for service %{public}s", handle.spec.name.c_str());
151 handle.callback(
ref, parts, channelIndex);
152 O2_SIGNPOST_END(data_processor_context, cid,
"callbacks",
"Ending DataProcessorContext::preSendingMessagesCallbacks for service %{public}s", handle.spec.name.c_str());
154 O2_SIGNPOST_END(data_processor_context, dpid,
"callbacks",
"Ending DataProcessorContext preSendingMessagesCallbacks");
#define O2_DECLARE_DYNAMIC_LOG(name)
#define O2_SIGNPOST_ID_FROM_POINTER(name, log, pointer)
#define O2_SIGNPOST_END(log, id, name, format,...)
#define O2_SIGNPOST_START(log, id, name, format,...)
Defining PrimaryVertex explicitly as messageable.
std::vector< ServicePreSendingMessagesHandle > preSendingMessagesHandles
Callbacks for services to be executed before sending messages.
std::vector< ServiceDanglingHandle > preDanglingHandles
Callbacks for services to be executed before every dangling check.
std::vector< ServiceEOSHandle > postEOSHandles
Callbacks for services to be executed after every EOS user callback invokation.
void preSendingMessagesCallbacks(ServiceRegistryRef, fair::mq::Parts &parts, ChannelIndex channelindex)
Invoke before sending messages parts on a channel channelindex.
std::vector< ServiceEOSHandle > preEOSHandles
Callbacks for services to be executed before every EOS user callback invokation.
void postDispatchingCallbacks(ProcessingContext &)
Invoke callbacks to be executed after every data Dispatching.
std::vector< ServiceDomainInfoHandle > domainInfoHandles
Callbacks for services to be executed on exit.
std::vector< ServiceStartHandle > preStartHandles
Callbacks for services to be executed before Start.
void finaliseOutputsCallbacks(ProcessingContext &)
std::vector< ServicePreLoopHandle > preLoopHandles
Callbacks for services to be executed before we enter the event loop.
void preLoopCallbacks(ServiceRegistryRef)
Invoke callbacks before we enter the event loop.
std::vector< ServiceProcessingHandle > postProcessingHandlers
void postStopCallbacks(ServiceRegistryRef)
Invoke callbacks on stop.
void preEOSCallbacks(EndOfStreamContext &)
Invoke callbacks to be executed before every EOS user callback invokation.
std::vector< ServiceForwardingHandle > postForwardingHandles
Callbacks for services to be executed after every dispatching.
void preProcessingCallbacks(ProcessingContext &)
Invoke callbacks to be executed before every process method invokation.
std::vector< ServiceDispatchingHandle > postDispatchingHandles
Callbacks for services to be executed after every dispatching.
void postEOSCallbacks(EndOfStreamContext &)
Invoke callbacks to be executed after every EOS user callback invokation.
void domainInfoUpdatedCallback(ServiceRegistryRef, size_t oldestPossibleTimeslice, ChannelIndex channelIndex)
Invoke whenever we get a new DomainInfo message.
std::vector< ServiceStopHandle > postStopHandles
Callbacks for services to be executed on the Stop transition.
static void preExitCallbacks(std::vector< ServiceExitHandle >, ServiceRegistryRef)
Invoke callback to be executed on exit, in reverse order.
std::vector< ServiceProcessingHandle > finaliseOutputsHandles
std::vector< ServiceDanglingHandle > postDanglingHandles
Callbacks for services to be executed after every dangling check.
void postProcessingCallbacks(ProcessingContext &)
Invoke callbacks to be executed after every process method invokation.
void preStartCallbacks(ServiceRegistryRef)
Invoke callbacks to be executed in PreRun(), before the User Start callbacks.
std::vector< ServiceProcessingHandle > preProcessingHandlers
void postForwardingCallbacks(ProcessingContext &)
Callback invoked after the late forwarding has been done.
void preDanglingCallbacks(DanglingContext &)
Invoke callbacks to be executed before every dangling check.
void postDanglingCallbacks(DanglingContext &)
Invoke callbacks to be executed after every dangling check.