The Gaudi Framework  v29r0 (ff2e7097)
IInspector Class Referenceabstract

Inspector base class. More...

#include <GaudiKernel/IInspector.h>

Inheritance diagram for IInspector:
Collaboration diagram for IInspector:

Classes

class  _TT
 
class  _V
 
class  IValue
 
struct  Tag
 

Public Types

enum  { Mutable = 1 << 1, Const = 1 << 2 }
 
- Public Types inherited from IInterface
enum  Status { SUCCESS = 1, NO_INTERFACE, VERSMISMATCH, LAST_ERROR }
 Return status. More...
 
using iid = Gaudi::InterfaceId< IInterface, 0, 0 >
 Interface ID. More...
 
using ext_iids = Gaudi::interface_list< iid >
 Extra interfaces. More...
 

Public Member Functions

 DeclareInterfaceID (IInspector, 1, 0)
 InterfaceID. More...
 
template<class T , class O >
StatusCode inspectByRef (const T *pObj, const O *pOwner, const std::string &comment, long flag=Mutable)
 Inspect single item by its reference (mutable and const) More...
 
template<class T , class O >
StatusCode inspectByValue (const T &obj, const O *pOwner, const std::string &comment)
 Inspect single item by its value (const) More...
 
template<class T , class O >
StatusCode inspectContByRef (const T *pObj, const O *pOwner, const std::string &comment, long flag=Mutable)
 Inspect container of object items by its reference (mutable and const) More...
 
template<class T , class O >
StatusCode inspectContByValue (const T &obj, const O *pOwner, const std::string &comment)
 Inspect container of object items by its value (const) More...
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::stringgetInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces. More...
 
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release ()=0
 Release Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance. More...
 
virtual ~IInterface ()=default
 Virtual destructor. More...
 

Protected Member Functions

virtual StatusCode inspectByRef (const void *pObj, const Tag &typ, void *pOwner, const Tag &otag, const std::string &comment, long flag)=0
 Inspect object by Reference. More...
 
virtual StatusCode inspectByValue (IValue *pObj, const Tag &typ, void *pOwner, const Tag &oTag, const std::string &comment)=0
 Inspect object by Value. More...
 
virtual StatusCode inspectContByRef (const void *pObj, const Tag &tag, const Tag &rtag, const Tag &vtag, const void *pOwner, const Tag &otag, const std::string &comment, long flags)=0
 Inspect container of objects by reference. More...
 
virtual StatusCode inspectContByValue (IValue *pObj, const Tag &tag, const Tag &rtag, const Tag &vtag, const void *pOwner, const Tag &otag, const std::string &comment)=0
 Inspect container of objects by value. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 

Detailed Description

Inspector base class.

Definition at line 15 of file IInspector.h.

Member Enumeration Documentation

anonymous enum
Enumerator
Mutable 
Const 

Definition at line 21 of file IInspector.h.

21 { Mutable = 1 << 1, Const = 1 << 2 };

Member Function Documentation

IInspector::DeclareInterfaceID ( IInspector  ,
,
 
)
virtual StatusCode IInspector::inspectByRef ( const void *  pObj,
const Tag typ,
void *  pOwner,
const Tag otag,
const std::string comment,
long  flag 
)
protectedpure virtual

Inspect object by Reference.

template<class T , class O >
StatusCode IInspector::inspectByRef ( const T *  pObj,
const O *  pOwner,
const std::string comment,
long  flag = Mutable 
)
inline

Inspect single item by its reference (mutable and const)

Definition at line 84 of file IInspector.h.

85  {
86  return inspectByRef( pObj, _TT<T>(), (void*)pOwner, _TT<O>(), comment, flag );
87  }
virtual StatusCode inspectByRef(const void *pObj, const Tag &typ, void *pOwner, const Tag &otag, const std::string &comment, long flag)=0
Inspect object by Reference.
virtual StatusCode IInspector::inspectByValue ( IValue pObj,
const Tag typ,
void *  pOwner,
const Tag oTag,
const std::string comment 
)
protectedpure virtual

Inspect object by Value.

template<class T , class O >
StatusCode IInspector::inspectByValue ( const T &  obj,
const O *  pOwner,
const std::string comment 
)
inline

Inspect single item by its value (const)

Definition at line 90 of file IInspector.h.

91  {
92  return inspectByValue( new _V<T>( obj ), _TT<T>(), (void*)pOwner, _TT<O>(), comment );
93  }
virtual StatusCode inspectByValue(IValue *pObj, const Tag &typ, void *pOwner, const Tag &oTag, const std::string &comment)=0
Inspect object by Value.
virtual StatusCode IInspector::inspectContByRef ( const void *  pObj,
const Tag tag,
const Tag rtag,
const Tag vtag,
const void *  pOwner,
const Tag otag,
const std::string comment,
long  flags 
)
protectedpure virtual

Inspect container of objects by reference.

template<class T , class O >
StatusCode IInspector::inspectContByRef ( const T *  pObj,
const O *  pOwner,
const std::string comment,
long  flag = Mutable 
)
inline

Inspect container of object items by its reference (mutable and const)

Definition at line 96 of file IInspector.h.

97  {
98  typedef typename T::value_type _VVV;
99  typedef typename T::value_type _TTT;
100  // Unfortunately this is not implemented on G++:
101  // typedef typename T::allocator_type::value_type _TTT;
102  return inspectContByRef( (void*)pObj, _TT<T>(), _TT<_VVV>(), _TT<_TTT>(), (void*)pOwner, _TT<O>(), comment, flag );
103  }
virtual StatusCode inspectContByRef(const void *pObj, const Tag &tag, const Tag &rtag, const Tag &vtag, const void *pOwner, const Tag &otag, const std::string &comment, long flags)=0
Inspect container of objects by reference.
virtual StatusCode IInspector::inspectContByValue ( IValue pObj,
const Tag tag,
const Tag rtag,
const Tag vtag,
const void *  pOwner,
const Tag otag,
const std::string comment 
)
protectedpure virtual

Inspect container of objects by value.

template<class T , class O >
StatusCode IInspector::inspectContByValue ( const T &  obj,
const O *  pOwner,
const std::string comment 
)
inline

Inspect container of object items by its value (const)

Definition at line 106 of file IInspector.h.

107  {
108  typedef typename T::value_type _VVV;
109  typedef typename T::value_type _TTT;
110  // Unfortunately this is not implemented on G++:
111  // typedef typename T::allocator_type::value_type _TTT;
112  return inspectContByValue( new _V<T>( obj ), _TT<T>(), _TT<_VVV>(), _TT<_TTT>(), (void*)pOwner, _TT<O>(), comment );
113  }
virtual StatusCode inspectContByValue(IValue *pObj, const Tag &tag, const Tag &rtag, const Tag &vtag, const void *pOwner, const Tag &otag, const std::string &comment)=0
Inspect container of objects by value.

The documentation for this class was generated from the following file: