ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthenaKernel
AthenaKernel
IRCUSvc.h
Go to the documentation of this file.
1
// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
3
/*
4
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// $Id$
14
15
16
#ifndef ATHENAKERNEL_IRCUSVC_H
17
#define ATHENAKERNEL_IRCUSVC_H
18
19
20
#include "
AthenaKernel/RCUObject.h
"
21
#include "GaudiKernel/IInterface.h"
22
#include <memory>
23
24
25
namespace
Athena
{
26
27
38
class
IRCUSvc
39
:
virtual
public
IInterface
40
{
41
public
:
42
DeclareInterfaceID
(
IRCUSvc
,1,0);
43
44
51
template
<
class
T,
typename
...
Args
>
52
std::unique_ptr<RCUObject<T> >
newrcu
(
Args
&&... args)
53
{
54
return
std::make_unique<RCUObject<T> > (*
this
, std::forward<Args>(args)...);
55
}
56
57
62
virtual
void
add
(
IRCUObject
* obj) = 0;
63
64
69
virtual
StatusCode
remove
(
IRCUObject
* obj) = 0;
70
71
75
virtual
size_t
getNumSlots
()
const
= 0;
76
};
77
78
79
}
// namespace Athena
80
81
82
#endif
// not ATHENAKERNEL_IRCUSVC_H
RCUObject.h
read-copy-update (RCU) style synchronization for Athena.
Athena::IRCUObject
Base object class for RCU-style synchronization for Athena.
Definition
RCUObject.h:147
Athena::IRCUSvc
Interface for RCU service.
Definition
IRCUSvc.h:40
Athena::IRCUSvc::add
virtual void add(IRCUObject *obj)=0
Add a new RCU object to the set being managed.
Athena::IRCUSvc::remove
virtual StatusCode remove(IRCUObject *obj)=0
Remove an object from the service.
Athena::IRCUSvc::getNumSlots
virtual size_t getNumSlots() const =0
Return the number of event slots.
Athena::IRCUSvc::DeclareInterfaceID
DeclareInterfaceID(IRCUSvc, 1, 0)
Athena::IRCUSvc::newrcu
std::unique_ptr< RCUObject< T > > newrcu(Args &&... args)
Make a new RCU object.
Definition
IRCUSvc.h:52
Athena
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....
Definition
AthDsoUtils.h:10
Args
Definition
test_lwtnn_fastgraph.cxx:12
Generated on
for ATLAS Offline Software by
1.17.0