16#ifndef ATHENAKERNEL_IRCUSVC_H
17#define ATHENAKERNEL_IRCUSVC_H
21#include "GaudiKernel/IInterface.h"
39 :
virtual public IInterface
51 template <
class T,
typename...
Args>
54 return std::make_unique<RCUObject<T> > (*
this, std::forward<Args>(args)...);
read-copy-update (RCU) style synchronization for Athena.
Base object class for RCU-style synchronization for Athena.
Interface for RCU service.
virtual void add(IRCUObject *obj)=0
Add a new RCU object to the set being managed.
virtual StatusCode remove(IRCUObject *obj)=0
Remove an object from the service.
virtual size_t getNumSlots() const =0
Return the number of event slots.
DeclareInterfaceID(IRCUSvc, 1, 0)
std::unique_ptr< RCUObject< T > > newrcu(Args &&... args)
Make a new RCU object.
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....