ATLAS Offline Software
Loading...
Searching...
No Matches
ISlimmingHdlr.h
Go to the documentation of this file.
1
2
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
18namespace Athena {
19
26{
27public:
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
This class defines a protocol to slim objects (removing parts of that object)
virtual void rollback()=0
restore object's state as before slimming was applied
virtual const std::type_info & type_id()=0
returns the type-id of the object being slimmed (mostly for debugging purposes)
virtual void commit()=0
apply the slimming: remove parts of the object
virtual void * object()=0
returns a pointer to the object being slimmed
virtual const ::INamedInterface * requester()=0
returns the component who requested the registration of that slimming handler (mostly for debugging p...
virtual ~ISlimmingHdlr()=default
virtual destructor
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....