41 virtual const std::type_info&
type()
const = 0;
57template <
class CallerClass>
76 const std::type_info&
type()
const override {
return typeid( CallerClass ); }
140 template <
class ActualType>
169 template <
class CallerClass>
175 template <
class CallerClass,
class CondType>
178 CondType*& condPtrDest ) {
183 template <
class CallerClass>
192 template <
class CallerClass,
class ObjectClass>
201 template <
class CallerClass>
208 template <
class CallerClass>
216 bool path_to_db =
false ) = 0;
223 bool path_to_db =
false ) = 0;
234 template <
class CallerClass>
236 return i_update(
dynamic_cast<void*
>( instance ) );
Base class of ObjectMemberFunction.
virtual ~BaseObjectMemberFunction()=default
virtual const std::type_info & type() const =0
virtual StatusCode operator()() const =0
virtual BaseObjectMemberFunction * makeCopy() const =0
virtual bool match(BaseObjectMemberFunction *) const =0
virtual DataObject * castToDataObject() const =0
virtual void * castToVoid() const =0
virtual ValidDataObject * castToValidDataObject() const =0
Base class to set the pointer to an object of a class derived from DataObject in a generic way.
virtual bool isNull()=0
tells if the internal pointer is nullptr.
virtual ~BasePtrSetter()=default
virtual void set(DataObject *)=0
sets the internal pointer to the provided data object (with a dynamic_cast).
A DataObject is the base class of any identifiable object on any data store.
Data provider interface definition.
Abstract interface for a DataSvc manipulating condition data (i.e.
Definition of the basic interface.
Templated specialization of BasePtrSetter.
bool isNull() override
tells if the internal pointer is nullptr.
dest_type ** m_storage
pointer to the pointer to fill provided by the user.
PtrSetter(dest_type *&dest)
void set(DataObject *obj) override
sets the internal pointer to the provided data object (with a dynamic_cast).
Helper class implemented in the python dictionary to allow access from python to template member func...
Interface class to the Update Manager service.
virtual void dump()=0
Debug method: it dumps the dependency network through the message service (not very readable,...
virtual bool getValidity(const std::string path, Gaudi::Time &since, Gaudi::Time &until, bool path_to_db=false)=0
Retrieve the interval of validity (in the UpdateManagerSvc) of the given item.
virtual StatusCode newEvent()=0
Start an update loop using the event time given by the detector data service.
virtual void acquireLock()=0
Force the update manager service to wait before entering the newEvent loop.
virtual void purge()=0
Remove all the items referring to objects present in the transient store.
virtual void i_registerCondition(void *obj, BaseObjectMemberFunction *mf)=0
virtual void i_unregister(void *instance)=0
StatusCode update(CallerClass *instance)
Update the given instance.
friend class PythonHelper
void unregister(CallerClass *instance)
Generic objects can be unregistered from the UpdateManagerSvc.
virtual void i_invalidate(void *instance)=0
void registerCondition(CallerClass *instance, const char *condition, typename ObjectMemberFunction< CallerClass >::MemberFunctionType mf=nullptr)
See above. Needed to avoid conflicts with the next one.
virtual StatusCode i_update(void *instance)=0
DeclareInterfaceID(IUpdateManagerSvc, 2, 0)
InterfaceID.
virtual IDetDataSvc * detDataSvc() const =0
Give access to the detector data service interface (usualy of the data provider itself).
void registerCondition(CallerClass *instance, const std::string &condition="", typename ObjectMemberFunction< CallerClass >::MemberFunctionType mf=nullptr)
Register an object (algorithm instance) to the service.
void registerCondition(CallerClass *instance, ObjectClass *obj, typename ObjectMemberFunction< CallerClass >::MemberFunctionType mf=nullptr)
Like the first version of registerCondition, but instead declaring the dependency on a condition of t...
virtual void i_registerCondition(const std::string &condition, BaseObjectMemberFunction *mf, BasePtrSetter *ptr_dest=nullptr)=0
virtual StatusCode newEvent(const Gaudi::Time &)=0
Start an update loop using the give event time.
virtual void releaseLock()=0
Let the update manager service enter the newEvent loop.
void invalidate(CallerClass *instance)
Invalidate the given object in the dependency network.
virtual IDataProviderSvc * dataProvider() const =0
Give access to the data provider.
virtual void setValidity(const std::string path, const Gaudi::Time &since, const Gaudi::Time &until, bool path_to_db=false)=0
Change the interval of validity of the given item to the specified values, updating parents if needed...
void registerCondition(CallerClass *instance, const std::string &condition, typename ObjectMemberFunction< CallerClass >::MemberFunctionType mf, CondType *&condPtrDest)
This class is used by IUpdateManagerSvc to keep pairs made of a member function and a pointer to the ...
const std::type_info & type() const override
Returns the type_info of the CallerClass.
BaseObjectMemberFunction * makeCopy() const override
Clone method to be able to copy an ObjectMemberFunction from the BaseObjectMemberFunction interface.
friend class IUpdateManagerSvc
bool match(BaseObjectMemberFunction *bmf) const override
Comparison between two BaseObjectMemberFunction instances.
void * castToVoid() const override
Cast the object to void with dynamic_cast.
MemberFunctionType m_memberFunction
Pointer to the member function.
StatusCode(CallerClass::* MemberFunctionType)()
MemberFunctionType is the type for a pointer to a member function of class CallerClass.
DataObject * castToDataObject() const override
Cast the object to DataObject.
CallerClass * m_instance
Pointer to the object.
ObjectMemberFunction(CallerClass *instance, const MemberFunctionType &mf)
Standard constructor. Protected so that can be called only by itself or IUpdateManagerSvc.
ValidDataObject * castToValidDataObject() const override
Cast the object to ValidDataObject.
StatusCode operator()() const override
Calls the member function of the object and returns the StatusCode.
This class is used for returning status codes from appropriate routines.
constexpr static const auto SUCCESS
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...