CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes
DDBase< N, C > Class Template Reference

#include <DDBase.h>

Classes

class  iterator
 

Public Types

typedef std::pair< const N
*, bool > 
def_type
 
typedef C pimpl_type
 
typedef DDI::rep_type< N,
pimpl_type > * 
prep_type
 
typedef DDI::Singleton
< DDI::Store< N, C > > 
StoreT
 

Public Member Functions

 DDBase ()
 
const Nddname () const
 
def_type isDefined () const
 
bool isValid () const
 true, if the wrapped pointer is valid More...
 
const Nname () const
 
 operator bool () const
 
bool operator< (const DDBase &b) const
 
bool operator== (const DDBase &b) const
 
bool operator> (const DDBase &b) const
 
const DDI::rep_traits< N, C >
::reference 
rep () const
 
DDI::rep_traits< N, C >::reference rep ()
 
std::string toString () const
 
const DDI::rep_traits< N, C >
::reference 
val () const
 
const DDI::rep_traits< N, C >
::reference 
val ()
 
virtual ~DDBase ()
 

Static Public Member Functions

static auto begin ()
 
static void clear ()
 
static auto end ()
 
static size_t size ()
 

Protected Attributes

prep_type prep_
 

Detailed Description

template<class N, class C>
class DDBase< N, C >

Definition at line 10 of file DDBase.h.

Member Typedef Documentation

template<class N, class C>
typedef std::pair<const N*,bool> DDBase< N, C >::def_type

Definition at line 73 of file DDBase.h.

template<class N, class C>
typedef C DDBase< N, C >::pimpl_type

Definition at line 71 of file DDBase.h.

template<class N, class C>
typedef DDI::rep_type<N,pimpl_type>* DDBase< N, C >::prep_type

Definition at line 72 of file DDBase.h.

template<class N, class C>
typedef DDI::Singleton<DDI::Store<N,C> > DDBase< N, C >::StoreT

Definition at line 70 of file DDBase.h.

Constructor & Destructor Documentation

template<class N, class C>
DDBase< N, C >::DDBase ( )
inline

Definition at line 75 of file DDBase.h.

75 : prep_(0) { }
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
virtual DDBase< N, C >::~DDBase ( )
inlinevirtual

Definition at line 76 of file DDBase.h.

76 { /*never do this here: if (prep_) delete prep_;*/ }

Member Function Documentation

template<class N, class C>
static auto DDBase< N, C >::begin ( void  )
inlinestatic

Definition at line 66 of file DDBase.h.

66 { return StoreT::instance().begin(); }
static value_type & instance()
template<class N, class C>
static void DDBase< N, C >::clear ( void  )
inlinestatic
template<class N, class C>
const N& DDBase< N, C >::ddname ( ) const
inline
template<class N, class C>
static auto DDBase< N, C >::end ( void  )
inlinestatic

Definition at line 65 of file DDBase.h.

65 { return StoreT::instance().end(); }
static value_type & instance()
template<class N, class C>
def_type DDBase< N, C >::isDefined ( ) const
inline

Definition at line 110 of file DDBase.h.

Referenced by DDDividedGeometryObject::checkParametersValidity(), DDCheckMaterial(), and operator<<().

111  {
112  return prep_ ?
113  std::make_pair(&(prep_->name()), bool(prep_->second))
114  :
115  std::make_pair((const N *)0,false);
116  }
const rep_traits< N, I >::name_type & name() const
Definition: rep_type.h:34
#define N
Definition: blowfish.cc:9
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
bool DDBase< N, C >::isValid ( void  ) const
inline

true, if the wrapped pointer is valid

Definition at line 119 of file DDBase.h.

Referenced by DDBase< DDName, DDRotationMatrix * >::operator bool(), XMLIdealGeometryESSource::produce(), core.AutoHandle.AutoHandle::ReallyLoad(), and DDBase< DDName, DDRotationMatrix * >::val().

120  {
121  return prep_ ? bool(prep_->second)
122  : false;
123  }
volatile std::atomic< bool > shutdown_flag false
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
const N& DDBase< N, C >::name ( ) const
inline
template<class N, class C>
DDBase< N, C >::operator bool ( ) const
inline

Definition at line 102 of file DDBase.h.

102 { return isValid(); }
bool isValid() const
true, if the wrapped pointer is valid
Definition: DDBase.h:119
template<class N, class C>
bool DDBase< N, C >::operator< ( const DDBase< N, C > &  b) const
inline

Definition at line 104 of file DDBase.h.

104 { return prep_ < b.prep_; }
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
bool DDBase< N, C >::operator== ( const DDBase< N, C > &  b) const
inline

Definition at line 100 of file DDBase.h.

100 { return prep_ == b.prep_; }
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
bool DDBase< N, C >::operator> ( const DDBase< N, C > &  b) const
inline

Definition at line 105 of file DDBase.h.

105 { return prep_ > b.prep_; }
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
const DDI::rep_traits<N,C>::reference DDBase< N, C >::rep ( ) const
inline

Definition at line 84 of file DDBase.h.

Referenced by operator<<(), and DDBase< DDName, DDRotationMatrix * >::val().

85  { return *(prep_->second); }
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
DDI::rep_traits<N,C>::reference DDBase< N, C >::rep ( )
inline

Definition at line 87 of file DDBase.h.

88  { return *(prep_->second); }
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
static size_t DDBase< N, C >::size ( void  )
inlinestatic

Definition at line 69 of file DDBase.h.

69 { return StoreT::instance().size(); }
static value_type & instance()
template<class N, class C>
std::string DDBase< N, C >::toString ( ) const
inline

Definition at line 82 of file DDBase.h.

Referenced by DDMaterial::addMaterial(), DDDividedGeometryObject::checkParametersValidity(), and GeometryInfoDump::dumpInfo().

82 { return prep_->name().fullname(); }
const rep_traits< N, I >::name_type & name() const
Definition: rep_type.h:34
prep_type prep_
Definition: DDBase.h:126
template<class N, class C>
const DDI::rep_traits<N,C>::reference DDBase< N, C >::val ( ) const
inline

Definition at line 90 of file DDBase.h.

91  { if (!isValid()) throw cms::Exception("DDException") << "undefined: " << name();
92  return rep();
93  };
const DDI::rep_traits< N, C >::reference rep() const
Definition: DDBase.h:84
const N & name() const
Definition: DDBase.h:78
bool isValid() const
true, if the wrapped pointer is valid
Definition: DDBase.h:119
template<class N, class C>
const DDI::rep_traits<N,C>::reference DDBase< N, C >::val ( )
inline

Definition at line 95 of file DDBase.h.

96  { if (!isValid()) throw cms::Exception("DDException") << "undefined: " << name();
97  return rep();
98  };
const DDI::rep_traits< N, C >::reference rep() const
Definition: DDBase.h:84
const N & name() const
Definition: DDBase.h:78
bool isValid() const
true, if the wrapped pointer is valid
Definition: DDBase.h:119

Member Data Documentation

template<class N, class C>
prep_type DDBase< N, C >::prep_
protected