CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
edm::TypeToGet Class Reference

#include <TypeToGet.h>

Public Member Functions

KindOfType kind () const
 
TypeID const & type () const
 
 TypeToGet (TypeID const &iID, KindOfType iKind)
 

Static Public Member Functions

template<typename T >
static TypeToGet make ()
 

Private Member Functions

 TypeToGet ()=delete
 

Static Private Member Functions

template<typename T >
static KindOfType kindOfTypeFor (T *)
 
template<typename T >
static KindOfType kindOfTypeFor (edm::View< T > *)
 
template<typename T >
static std::type_info const & typeIdFor (T *)
 
template<typename T >
static std::type_info const & typeIdFor (edm::View< T > *)
 

Private Attributes

KindOfType m_kind
 
TypeID m_type
 

Detailed Description

Definition at line 32 of file TypeToGet.h.

Constructor & Destructor Documentation

edm::TypeToGet::TypeToGet ( TypeID const &  iID,
KindOfType  iKind 
)
inline

If the type is is a edm::View<T> then iID should be typeid(T) and iKind should be edm::ELEMENT_TYPE. Else TypeID should be the full type and iKind should be edm::ProductType

Definition at line 38 of file TypeToGet.h.

38 : m_type(iID), m_kind(iKind) {}
KindOfType m_kind
Definition: TypeToGet.h:75
TypeID m_type
Definition: TypeToGet.h:74
edm::TypeToGet::TypeToGet ( )
privatedelete

Referenced by kindOfTypeFor(), and make().

Member Function Documentation

KindOfType edm::TypeToGet::kind ( ) const
inline

Definition at line 42 of file TypeToGet.h.

References m_kind.

Referenced by edm::EDConsumerBase::recordConsumes().

42 { return m_kind; }
KindOfType m_kind
Definition: TypeToGet.h:75
template<typename T >
static KindOfType edm::TypeToGet::kindOfTypeFor ( T )
inlinestaticprivate

Definition at line 62 of file TypeToGet.h.

References edm::PRODUCT_TYPE.

Referenced by make().

62  {
63  return PRODUCT_TYPE;
64  }
template<typename T >
static KindOfType edm::TypeToGet::kindOfTypeFor ( edm::View< T > *  )
inlinestaticprivate

Definition at line 67 of file TypeToGet.h.

References edm::ELEMENT_TYPE, and TypeToGet().

67  {
68  return ELEMENT_TYPE;
69  }
template<typename T >
static TypeToGet edm::TypeToGet::make ( )
inlinestatic

Definition at line 46 of file TypeToGet.h.

References kindOfTypeFor(), typeIdFor(), and TypeToGet().

46  {
47  return TypeToGet(edm::TypeID(typeIdFor(static_cast<T*>(nullptr))), kindOfTypeFor(static_cast<T*>(nullptr)));
48  }
TypeToGet()=delete
static std::type_info const & typeIdFor(T *)
Definition: TypeToGet.h:52
static KindOfType kindOfTypeFor(T *)
Definition: TypeToGet.h:62
TypeID const& edm::TypeToGet::type ( ) const
inline

Definition at line 41 of file TypeToGet.h.

References m_type.

Referenced by edm::EDConsumerBase::recordConsumes(), and edm::EDConsumerBase::throwConsumesCallAfterFrozen().

41 { return m_type; }
TypeID m_type
Definition: TypeToGet.h:74
template<typename T >
static std::type_info const& edm::TypeToGet::typeIdFor ( T )
inlinestaticprivate

Definition at line 52 of file TypeToGet.h.

Referenced by make().

52  {
53  return typeid(T);
54  }
long double T
template<typename T >
static std::type_info const& edm::TypeToGet::typeIdFor ( edm::View< T > *  )
inlinestaticprivate

Definition at line 57 of file TypeToGet.h.

57  {
58  return typeid(T);
59  }
long double T

Member Data Documentation

KindOfType edm::TypeToGet::m_kind
private

Definition at line 75 of file TypeToGet.h.

Referenced by kind().

TypeID edm::TypeToGet::m_type
private

Definition at line 74 of file TypeToGet.h.

Referenced by type().