ATLAS Offline Software
ISlimmingHdlr.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef ATHENAKERNEL_ISLIMMINGHDLR_H
8 #define ATHENAKERNEL_ISLIMMINGHDLR_H 1
9 
10 // STL includes
11 #include <typeinfo>
12 
13 // FrameWork includes
14 #include "GaudiKernel/INamedInterface.h"
15 
16 // Forward declaration
17 
18 namespace Athena {
19 
26 {
27 public:
30  virtual ~ISlimmingHdlr() = default;
31 
34  virtual void *object() =0;
35 
39  virtual
40  const std::type_info& type_id() =0;
41 
46  virtual
47  const ::INamedInterface* requester() =0;
48 
51  virtual void commit() =0;
52 
55  virtual void rollback() =0;
56 };
57 
58 } //> namespace Athena
59 
60 #endif //> ATHENAKERNEL_ISLIMMINGHDLR_H
Athena::ISlimmingHdlr::commit
virtual void commit()=0
apply the slimming: remove parts of the object
Athena::ISlimmingHdlr::object
virtual void * object()=0
returns a pointer to the object being slimmed
Athena
Some weak symbol referencing magic...
Definition: AthLegacySequence.h:21
Athena::ISlimmingHdlr::rollback
virtual void rollback()=0
restore object's state as before slimming was applied
Athena::ISlimmingHdlr::~ISlimmingHdlr
virtual ~ISlimmingHdlr()=default
virtual destructor
Athena::ISlimmingHdlr::requester
virtual const ::INamedInterface * requester()=0
returns the component who requested the registration of that slimming handler (mostly for debugging p...
Athena::ISlimmingHdlr
This class defines a protocol to slim objects (removing parts of that object)
Definition: ISlimmingHdlr.h:26
Athena::ISlimmingHdlr::type_id
virtual const std::type_info & type_id()=0
returns the type-id of the object being slimmed (mostly for debugging purposes)