The Gaudi Framework  v37r0 (b608885e)
IInspector Class Referenceabstract

#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 : StatusCode::code_t {
  Status::FAILURE = 0, Status::SUCCESS = 1, Status::NO_INTERFACE, Status::VERSMISMATCH,
  Status::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::string > getInterfaceNames () 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 InterfaceID & interfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 

Detailed Description

Inspector base class

Definition at line 25 of file IInspector.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
Mutable 
Const 

Definition at line 30 of file IInspector.h.

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

Member Function Documentation

◆ DeclareInterfaceID()

IInspector::DeclareInterfaceID ( IInspector  ,
1  ,
0   
)

◆ inspectByRef() [1/2]

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 90 of file IInspector.h.

90  {
91  return inspectByRef( pObj, _TT<T>(), (void*)pOwner, _TT<O>(), comment, flag );
92  }

◆ inspectByRef() [2/2]

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.

◆ inspectByValue() [1/2]

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 95 of file IInspector.h.

95  {
96  return inspectByValue( new _V<T>( obj ), _TT<T>(), (void*)pOwner, _TT<O>(), comment );
97  }

◆ inspectByValue() [2/2]

virtual StatusCode IInspector::inspectByValue ( IValue *  pObj,
const Tag &  typ,
void *  pOwner,
const Tag &  oTag,
const std::string &  comment 
)
protectedpure virtual

Inspect object by Value.

◆ inspectContByRef() [1/2]

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 100 of file IInspector.h.

100  {
101  typedef typename T::value_type _VVV;
102  typedef typename T::value_type _TTT;
103  // Unfortunately this is not implemented on G++:
104  // typedef typename T::allocator_type::value_type _TTT;
105  return inspectContByRef( (void*)pObj, _TT<T>(), _TT<_VVV>(), _TT<_TTT>(), (void*)pOwner, _TT<O>(), comment, flag );
106  }

◆ inspectContByRef() [2/2]

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.

◆ inspectContByValue() [1/2]

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 109 of file IInspector.h.

109  {
110  typedef typename T::value_type _VVV;
111  typedef typename T::value_type _TTT;
112  // Unfortunately this is not implemented on G++:
113  // typedef typename T::allocator_type::value_type _TTT;
114  return inspectContByValue( new _V<T>( obj ), _TT<T>(), _TT<_VVV>(), _TT<_TTT>(), (void*)pOwner, _TT<O>(), comment );
115  }

◆ inspectContByValue() [2/2]

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.


The documentation for this class was generated from the following file:
IInspector::Mutable
@ Mutable
Definition: IInspector.h:30
IInspector::inspectByValue
virtual StatusCode inspectByValue(IValue *pObj, const Tag &typ, void *pOwner, const Tag &oTag, const std::string &comment)=0
Inspect object by Value.
IInspector::inspectByRef
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.
IInspector::inspectContByValue
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.
IInspector::Const
@ Const
Definition: IInspector.h:30
IInspector::inspectContByRef
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.