Go to the documentation of this file.
11 #ifndef GAUDIKERNEL_IUPDATEMANAGERSVC_H
12 #define GAUDIKERNEL_IUPDATEMANAGERSVC_H 1
24 class ValidDataObject;
64 template <
class CallerClass>
148 template <
class ActualType>
154 bool isNull()
override {
return *m_storage ==
nullptr; }
177 template <
class CallerClass>
183 template <
class CallerClass,
class CondType>
186 CondType*& condPtrDest ) {
191 template <
class CallerClass>
200 template <
class CallerClass,
class ObjectClass>
209 template <
class CallerClass>
211 i_unregister(
dynamic_cast<void*
>( instance ) );
216 template <
class CallerClass>
218 i_invalidate(
dynamic_cast<void*
>( instance ) );
224 bool path_to_db =
false ) = 0;
231 bool path_to_db =
false ) = 0;
242 template <
class CallerClass>
244 return i_update(
dynamic_cast<void*
>( instance ) );
277 #endif // GAUDIKERNEL_IUPDATEMANAGERSVC_H
virtual StatusCode newEvent(const Gaudi::Time &)=0
Start an update loop using the give event time.
ValidDataObject * castToValidDataObject() const override
Cast the object to ValidDataObject.
virtual ~BasePtrSetter()=default
Empty virtual destructor.
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...
bool match(BaseObjectMemberFunction *bmf) const override
Comparison between two BaseObjectMemberFunction instances.
MemberFunctionType m_memberFunction
Pointer to the member function.
virtual IDataProviderSvc * dataProvider() const =0
Give access to the data provider.
virtual void set(DataObject *)=0
sets the internal pointer to the provided data object (with a dynamic_cast).
StatusCode operator()() const override
Calls the member function of the object and returns the StatusCode.
PtrSetter(dest_type *&dest)
dest_type ** m_storage
pointer to the pointer to fill provided by the user.
virtual void i_invalidate(void *instance)=0
virtual void releaseLock()=0
Let the update manager service enter the newEvent loop.
virtual void dump()=0
Debug method: it dumps the dependency network through the message service (not very readable,...
virtual ~BaseObjectMemberFunction()=default
Virtual destructor.
virtual const std::type_info & type() const =0
CallerClass * m_instance
Pointer to the object.
virtual void i_unregister(void *instance)=0
virtual StatusCode newEvent()=0
Start an update loop using the event time given by the detector data service.
virtual void i_registerCondition(void *obj, BaseObjectMemberFunction *mf)=0
StatusCode(CallerClass::* MemberFunctionType)()
MemberFunctionType is the type for a pointer to a member function of class CallerClass.
virtual DataObject * castToDataObject() const =0
virtual ValidDataObject * castToValidDataObject() const =0
BaseObjectMemberFunction * makeCopy() const override
Clone method to be able to copy an ObjectMemberFunction from the BaseObjectMemberFunction interface.
virtual bool isNull()=0
tells if the internal pointer is nullptr.
void invalidate(CallerClass *instance)
Invalidate the given object in the dependency network.
void registerCondition(CallerClass *instance, const std::string &condition="", typename ObjectMemberFunction< CallerClass >::MemberFunctionType mf=nullptr)
Register an object (algorithm instance) to the service.
StatusCode update(CallerClass *instance)
Update the given instance.
void registerCondition(CallerClass *instance, const std::string &condition, typename ObjectMemberFunction< CallerClass >::MemberFunctionType mf, CondType *&condPtrDest)
virtual StatusCode i_update(void *instance)=0
virtual void purge()=0
Remove all the items referring to objects present in the transient store.
virtual IDetDataSvc * detDataSvc() const =0
Give access to the detector data service interface (usualy of the data provider itself).
void unregister(CallerClass *instance)
Generic objects can be unregistered from the UpdateManagerSvc.
ObjectMemberFunction(CallerClass *instance, const MemberFunctionType &mf)
Standard constructor. Protected so that can be called only by itself or IUpdateManagerSvc.
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
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
constexpr static const auto SUCCESS
DataObject * castToDataObject() const override
Cast the object to DataObject.
DeclareInterfaceID(IUpdateManagerSvc, 2, 0)
InterfaceID.
bool isNull() override
tells if the internal pointer is nullptr.
virtual void * castToVoid() const =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 void acquireLock()=0
Force the update manager service to wait before entering the newEvent loop.
void * castToVoid() const override
Cast the object to void with dynamic_cast.
virtual StatusCode operator()() const =0
void set(DataObject *obj) override
sets the internal pointer to the provided data object (with a dynamic_cast).
const std::type_info & type() const override
Returns the type_info of the CallerClass.
virtual bool match(BaseObjectMemberFunction *) const =0
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 BaseObjectMemberFunction * makeCopy() const =0