The Gaudi Framework  master (594c33fa)
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::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 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  ,
,
 
)

◆ 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.