ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
ByteStreamCnvSvc
src
ByteStreamRDP_OutputSvc.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef BYTESTREAMCNVSVC_BYTESTREAMRDP_OUTPUTSVC_H
6
#define BYTESTREAMCNVSVC_BYTESTREAMRDP_OUTPUTSVC_H
7
17
18
#include "
ByteStreamData/RawEvent.h
"
19
#include "
ByteStreamCnvSvcBase/IByteStreamOutputSvc.h
"
20
#include "
AthenaKernel/SlotSpecificObj.h
"
21
#include "
AthenaBaseComps/AthService.h
"
22
#include "GaudiKernel/ServiceHandle.h"
23
24
class
IROBDataProviderSvc
;
25
26
class
ByteStreamRDP_OutputSvc
:
public
extends<AthService, IByteStreamOutputSvc> {
27
public
:
29
ByteStreamRDP_OutputSvc
(
const
std::string& name, ISvcLocator* svcloc);
30
32
virtual
StatusCode
initialize
()
override
;
33
35
virtual
bool
putEvent
(
const
RawEvent
*
re
)
override
;
36
virtual
bool
putEvent
(
const
RawEvent
*
re
,
const
EventContext& ctx)
override
;
37
38
private
:
// data
39
struct
EventCache
{
40
void
releaseEvent
() {
41
this->
rawEvent
.reset();
42
this->
dataBuffer
.reset();
43
}
44
std::unique_ptr<RawEvent>
rawEvent
{
nullptr
};
45
std::unique_ptr<uint32_t[]>
dataBuffer
{
nullptr
};
46
};
47
SG::SlotSpecificObj<EventCache>
m_eventsCache
;
48
49
ServiceHandle<IROBDataProviderSvc>
m_robProvider
{
50
this
,
"ROBDataProviderSvc"
,
"ROBDataProviderSvc"
,
"ROB data provider"
};
51
Gaudi::Property<std::string>
m_bsOutputStreamName
{
52
this
,
"BSOutputStreamName"
,
""
,
"Stream name for multiple output"
};
53
};
54
55
#endif
// BYTESTREAMCNVSVC_BYTESTREAMRDP_OUTPUTSVC_H
re
const std::regex re(r_e)
AthService.h
SlotSpecificObj.h
Maintain a set of objects, one per slot.
IByteStreamOutputSvc.h
This file contains the interface for the ByteStreamOutputSvc classes.
RawEvent.h
RawEvent
OFFLINE_FRAGMENTS_NAMESPACE::FullEventFragment RawEvent
data type for reading raw event
Definition
RawEvent.h:37
ByteStreamRDP_OutputSvc::putEvent
virtual bool putEvent(const RawEvent *re) override
Implementation of the IByteStreamOutputSvc interface methods.
Definition
ByteStreamRDP_OutputSvc.cxx:33
ByteStreamRDP_OutputSvc::initialize
virtual StatusCode initialize() override
Required of all Gaudi Services.
Definition
ByteStreamRDP_OutputSvc.cxx:23
ByteStreamRDP_OutputSvc::m_robProvider
ServiceHandle< IROBDataProviderSvc > m_robProvider
Definition
ByteStreamRDP_OutputSvc.h:49
ByteStreamRDP_OutputSvc::m_bsOutputStreamName
Gaudi::Property< std::string > m_bsOutputStreamName
Definition
ByteStreamRDP_OutputSvc.h:51
ByteStreamRDP_OutputSvc::m_eventsCache
SG::SlotSpecificObj< EventCache > m_eventsCache
Cache of event data for each slot.
Definition
ByteStreamRDP_OutputSvc.h:47
ByteStreamRDP_OutputSvc::ByteStreamRDP_OutputSvc
ByteStreamRDP_OutputSvc(const std::string &name, ISvcLocator *svcloc)
Constructors:
Definition
ByteStreamRDP_OutputSvc.cxx:17
IROBDataProviderSvc
Interface class for managing ROB for both online and offline.
Definition
IROBDataProviderSvc.h:21
SG::SlotSpecificObj
Maintain a set of objects, one per slot.
Definition
AthenaKernel/AthenaKernel/SlotSpecificObj.h:84
ServiceHandle
Definition
ClusterMakerTool.h:36
ByteStreamRDP_OutputSvc::EventCache
Definition
ByteStreamRDP_OutputSvc.h:39
ByteStreamRDP_OutputSvc::EventCache::rawEvent
std::unique_ptr< RawEvent > rawEvent
Current event fragment.
Definition
ByteStreamRDP_OutputSvc.h:44
ByteStreamRDP_OutputSvc::EventCache::dataBuffer
std::unique_ptr< uint32_t[]> dataBuffer
Underlying data structure.
Definition
ByteStreamRDP_OutputSvc.h:45
ByteStreamRDP_OutputSvc::EventCache::releaseEvent
void releaseEvent()
Definition
ByteStreamRDP_OutputSvc.h:40
Generated on
for ATLAS Offline Software by
1.17.0