ATLAS Offline Software
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
D3PD::SGTileModuleBitsGetterTool Class Referenceabstract

#include <SGTileModuleBitsGetterTool.h>

Inheritance diagram for D3PD::SGTileModuleBitsGetterTool:
Collaboration diagram for D3PD::SGTileModuleBitsGetterTool:

Public Types

typedef D3PD::SGCollectionGetterTool< TileRawChannelContainerBase
 

Public Member Functions

 SGTileModuleBitsGetterTool (const std::string &type, const std::string &name, const IInterface *parent)
 Standard Gaudi tool constructor. More...
 
virtual ~SGTileModuleBitsGetterTool ()
 
StatusCode initialize ()
 Standard Gaudi initialize method. More...
 
size_t sizeHint (bool allowMissing=false)
 Return an estimate of the number of elements in the iteration. More...
 
StatusCode reset (bool allowMissing=false)
 Reset the iteration to the start of the collection. More...
 
const void * nextUntyped ()
 Return a pointer to the next element in the collection. More...
 
const std::type_info & typeinfo () const
 Return the type of object retrieved by this tool. More...
 
const std::type_info & elementTypeinfo () const
 
virtual const std::type_info & typeinfo () const
 Return the type of object retrieved by this tool. More...
 
virtual const void * getUntyped (bool allowMissing=false)
 Return the target object. More...
 
virtual const TileRawChannelContainerget (bool allowMissing=false)
 Type-safe wrapper for get. More...
 
CLID clid () const
 Return the class ID being read by this tool. More...
 
 DeclareInterfaceID (IObjGetterTool, 1, 0)
 Gaudi interface definition. More...
 
virtual void releaseObjectUntyped (const void *p)
 Release an object retrieved from the getter. More...
 
virtual void releaseObjectUntyped (const void *p)
 Release an object retrieved from the getter. More...
 
template<class T >
void releaseObject (const T *p)
 Type-safe wrapper for releaseObjectUntyped. More...
 
virtual void releaseObject (const TileRawChannelContainer *p)
 Release an object retrieved from the getter. More...
 
template<class T >
StatusCode configureD3PD ()
 Test type compatibility. More...
 
virtual const void * getTypeinfo (const std::type_info &ti, bool allowMissing=false)=0
 Return the target object cast to a different pointer type. More...
 
void releaseObjectTypeinfo (const void *p, const std::type_info &ti)
 Release an object retrieved from the getter. More...
 
virtual StatusCode configureTypeinfo (const std::type_info &ti)=0
 Test type compatibility. More...
 
virtual const std::type_info & elementTypeinfo () const
 Return the element type of the collection. More...
 
const void * nextTypeinfo (const std::type_info &ti)
 Return the next object cast to a different pointer type. More...
 
StatusCode configureElementTypeinfo (const std::type_info &ti)
 Test type compatibility. More...
 
void releaseElementTypeinfo (const void *p, const std::type_info &ti)
 Release an element retrieved from the getter. More...
 

Protected Member Functions

StatusCode initializeImpl ()
 Initialize this mixin class. More...
 

Protected Attributes

std::string m_typename
 Property: Name of the type of the object being retrieved. More...
 
std::string m_sgkey
 Property: StoreGate key of the object being retrieved. More...
 
ServiceHandle< IClassIDSvc > m_clidsvc
 Property: Instance of the ClassIDSvc to use. More...
 
SGKeyResolver m_resolver
 Helper: Resolve the SG key to use. More...
 

Private Attributes

TileRawChannelContainer::const_iterator m_evtItr
 
TileRawChannelContainer::const_iterator m_evtEnd
 
CLID m_clid
 CLID for the object being retrieved. More...
 
ServiceHandle< StoreGateSvc > & m_sg
 The event storage service. More...
 
CONT::const_iterator m_it
 The current iterator. More...
 
CONT::const_iterator m_end
 The iterator at the end of the container. More...
 
std::string m_label
 Property: label to assign to this getter (or null). More...
 
ToolHandle< ICollectionGetterRegistryToolm_registry
 The collection getter registry tool. More...
 
TypeConverter m_converter
 Helper to convert pointers. More...
 
TypeConverter m_backConverter
 Helper to convert pointers back, for releaseElement. More...
 

Detailed Description

Definition at line 21 of file SGTileModuleBitsGetterTool.h.

Member Typedef Documentation

◆ Base

Definition at line 24 of file SGTileModuleBitsGetterTool.h.

Constructor & Destructor Documentation

◆ SGTileModuleBitsGetterTool()

D3PD::SGTileModuleBitsGetterTool::SGTileModuleBitsGetterTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 15 of file SGTileModuleBitsGetterTool.cxx.

17  :
18  Base(type,name,parent) {
19  }

◆ ~SGTileModuleBitsGetterTool()

D3PD::SGTileModuleBitsGetterTool::~SGTileModuleBitsGetterTool ( )
virtual

Definition at line 22 of file SGTileModuleBitsGetterTool.cxx.

22  {
23  }

Member Function Documentation

◆ clid()

CLID D3PD::SGGetterImpl::clid ( ) const
inherited

Return the class ID being read by this tool.

Definition at line 54 of file SGGetterImpl.cxx.

55 {
56  return m_clid;
57 }

◆ configureD3PD()

template<class T >
StatusCode D3PD::IObjGetterTool::configureD3PD ( )
inherited

Test type compatibility.

Test to see if the object being returned by the tool can be converted to a pointer to T. This can be used to perform type checks during job initialization.

This is implemented in terms of configureTypeinfo.

◆ configureElementTypeinfo()

StatusCode D3PD::CollectionGetterToolImpl::configureElementTypeinfo ( const std::type_info &  ti)
inherited

Test type compatibility.

Parameters
tiThe desired type.

Test to see if the object being returned by the tool can be converted to a pointer to T. This can be used to perform type checks during job initialization.

Definition at line 146 of file CollectionGetterToolImpl.cxx.

148 {
149  return this->m_converter.init(this->elementTypeinfo(), ti);
150 }

◆ configureTypeinfo()

virtual StatusCode D3PD::IObjGetterTool::configureTypeinfo ( const std::type_info &  ti)
pure virtualinherited

Test type compatibility.

Parameters
tiThe desired type.

Test to see if the object being returned by the tool can be converted to a pointer to T. This can be used to perform type checks during job initialization.

◆ DeclareInterfaceID()

D3PD::IObjGetterTool::DeclareInterfaceID ( IObjGetterTool  ,
,
 
)
inherited

Gaudi interface definition.

◆ elementTypeinfo() [1/2]

const std::type_info & D3PD::SGTileModuleBitsGetterTool::elementTypeinfo ( ) const

Definition at line 36 of file SGTileModuleBitsGetterTool.cxx.

36  {
37  return typeid(TileRawChannelCollection);
38  }

◆ elementTypeinfo() [2/2]

virtual const std::type_info& D3PD::CollectionGetterTool< TileRawChannelContainer >::elementTypeinfo
virtualinherited

Return the element type of the collection.

I.e., nextUntyped returns a pointer to this type.

◆ get()

virtual const TileRawChannelContainer * D3PD::SGCollectionGetterTool< TileRawChannelContainer >::get ( bool  allowMissing = false)
virtualinherited

Type-safe wrapper for get.

Parameters
allowMissingIf true, then we should not generate errors if the requested object is missing.

Return the object as a pointer to T. Return 0 if the get fails or if the pointer can't be converted.

Implements D3PD::CollectionGetterTool< TileRawChannelContainer >.

◆ getTypeinfo()

virtual const void* D3PD::IObjGetterTool::getTypeinfo ( const std::type_info &  ti,
bool  allowMissing = false 
)
pure virtualinherited

Return the target object cast to a different pointer type.

Parameters
tiThe desired type.
allowMissingIf true, then we should not generate errors if the requested object is missing.

Return the object as a pointer to the ti type. Return 0 if the get fails or if the pointer can't be converted.

◆ getUntyped()

virtual const void* D3PD::SGCollectionGetterTool< TileRawChannelContainer >::getUntyped ( bool  allowMissing = false)
virtualinherited

Return the target object.

Parameters
allowMissingIf true, then we should not generate errors if the requested object is missing.

Should be of the type given by typeinfo. Return 0 on failure.

Reimplemented from D3PD::SGGetterImpl.

◆ initialize()

StatusCode D3PD::SGTileModuleBitsGetterTool::initialize ( )
virtual

Standard Gaudi initialize method.

Reimplemented from D3PD::SGCollectionGetterTool< TileRawChannelContainer >.

Definition at line 25 of file SGTileModuleBitsGetterTool.cxx.

25  {
26  MsgStream log(msgSvc(), name());
27  log << MSG::INFO << " in SGTileModuleBitsGetterTool::initialize()" << endmsg;
29  return StatusCode::SUCCESS;
30  }

◆ initializeImpl()

StatusCode D3PD::SGGetterImpl::initializeImpl ( )
protectedinherited

Initialize this mixin class.

Call this from initialize.

Definition at line 105 of file SGGetterImpl.cxx.

106 {
107  CHECK( m_clidsvc.retrieve() );
108 
110 
112 
113  return StatusCode::SUCCESS;
114 }

◆ nextTypeinfo()

const void * D3PD::CollectionGetterToolImpl::nextTypeinfo ( const std::type_info &  ti)
inherited

Return the next object cast to a different pointer type.

Return the next element from the collection as a pointer to the ti type. Return 0 if the pointer can't be converted or at the end of the iteration.

Definition at line 68 of file CollectionGetterToolImpl.cxx.

69 {
70  // Configure the converter.
71  if (!this->m_converter.isValid() ||
72  this->m_converter.dstTypeinfo() != ti)
73  {
74  if (this->configureElementTypeinfo(ti).isFailure())
75  return 0;
76  }
77 
78  // Get the next object. If the conversion fails, loop until we get
79  // a good one.
80  while (true) {
81  const void* p = this->nextUntyped();
82  if (!p) return 0;
83  const void* pconv = this->m_converter.convertUntyped (p);
84  if (pconv) return pconv;
85  this->releaseElementUntyped (p);
86  REPORT_MESSAGE (MSG::WARNING)
87  << "Pointer conversion from " << m_converter.srcName() << " to "
88  << m_converter.dstName() << "failed.";
89  }
90 }

◆ nextUntyped()

const void * D3PD::SGTileModuleBitsGetterTool::nextUntyped ( )
virtual

Return a pointer to the next element in the collection.

Return 0 when the collection has been exhausted.

Reimplemented from D3PD::CollectionGetterTool< TileRawChannelContainer >.

Definition at line 66 of file SGTileModuleBitsGetterTool.cxx.

66  {
68  do{
69  if(m_evtItr==m_evtEnd)return 0;
70  col=*m_evtItr;
71  ++m_evtItr;
72  }while(!col);
73 
74  return col;
75  }

◆ releaseElementTypeinfo()

void D3PD::CollectionGetterToolImpl::releaseElementTypeinfo ( const void *  p,
const std::type_info &  ti 
)
inherited

Release an element retrieved from the getter.

Parameters
pThe element to release.
tiThe type of p.

Call this when you are done with the element returned by nextUntyped(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

Definition at line 104 of file CollectionGetterToolImpl.cxx.

106 {
107  if (!p)
108  return;
109 
110  // Configure the converter if needed.
111  if (!this->m_backConverter.isValid() ||
112  this->m_backConverter.srcTypeinfo() != ti)
113  {
114  if (this->m_backConverter.init (ti, this->typeinfo()).isFailure()) {
115  REPORT_MESSAGE (MSG::WARNING)
116  << "Can't configure pointer conversion from "
117  << System::typeinfoName (ti) << " to "
118  << System::typeinfoName (this->typeinfo());
119  return;
120  }
121  }
122 
123  // Convert to the desired type.
124  p = this->m_backConverter.convertUntyped (p);
125 
126  // Release.
127  if (p)
128  this->releaseElementUntyped (p);
129  else {
130  REPORT_MESSAGE (MSG::WARNING)
131  << "Pointer conversion from " << m_backConverter.srcName() << " to "
132  << m_backConverter.dstName() << "failed.";
133  }
134 }

◆ releaseObject() [1/2]

template<class T >
void D3PD::IObjGetterTool::releaseObject ( const T *  p)
inherited

Type-safe wrapper for releaseObjectUntyped.

Parameters
pThe object to release.

Call this when you are done with the object returned by get(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

This is implemented in terms of releaseObjectTypeinfo().

◆ releaseObject() [2/2]

virtual void D3PD::CollectionGetterTool< TileRawChannelContainer >::releaseObject ( const TileRawChannelContainer p)
virtualinherited

Release an object retrieved from the getter.

Parameters
pThe object to release.

Call this when you are done with the object returned by get(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

◆ releaseObjectTypeinfo()

void D3PD::IObjGetterTool::releaseObjectTypeinfo ( const void *  p,
const std::type_info &  ti 
)
inherited

Release an object retrieved from the getter.

Parameters
pThe object to release.
tiThe type of p.

Call this when you are done with the object returned by getUntyped(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

◆ releaseObjectUntyped() [1/2]

virtual void D3PD::IObjGetterTool::releaseObjectUntyped ( const void *  p)
virtualinherited

Release an object retrieved from the getter.

Parameters
pThe object to release.

Call this when you are done with the object returned by getUntyped(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

◆ releaseObjectUntyped() [2/2]

virtual void D3PD::CollectionGetterTool< TileRawChannelContainer >::releaseObjectUntyped ( const void *  p)
virtualinherited

Release an object retrieved from the getter.

Parameters
pThe object to release.

Call this when you are done with the object returned by getUntyped(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

◆ reset()

StatusCode D3PD::SGTileModuleBitsGetterTool::reset ( bool  allowMissing = false)
virtual

Reset the iteration to the start of the collection.

Parameters
allowMissingIf true, then we should not generate errors if the requested object is missing.

Return failure if the container cannot be retrieved.

Reimplemented from D3PD::CollectionGetterTool< TileRawChannelContainer >.

Definition at line 51 of file SGTileModuleBitsGetterTool.cxx.

51  {
52  const TileRawChannelContainer* tdc=get(allowMissing);
53  if(!tdc){
55  return StatusCode::FAILURE;
56  }
57  m_evtItr=tdc->begin();
58  m_evtEnd=tdc->end();
59  if(m_evtItr==m_evtEnd){
60  return StatusCode::SUCCESS;
61  }
62 
63  return StatusCode::SUCCESS;
64  }

◆ sizeHint()

size_t D3PD::SGTileModuleBitsGetterTool::sizeHint ( bool  allowMissing = false)
virtual

Return an estimate of the number of elements in the iteration.

Parameters
allowMissingIf true, then we should not generate errors if the requested object is missing.

This can be used to pre-allocate memory. (It's possible that this isn't known in advance of iterating over the entire collection, for example if a selection is being applied, so this is only a hint.)

Reimplemented from D3PD::CollectionGetterTool< TileRawChannelContainer >.

Definition at line 40 of file SGTileModuleBitsGetterTool.cxx.

40  {
41  const TileRawChannelContainer* tdc=get(allowMissing);
42  if(!tdc)return 0;
43  const TileRawChannelCollection* col=*(tdc->begin());
44  size_t rval=0;
45  size_t digSize=sizeof(TileRawChannel);
47  for(it=col->begin();it<col->end();++it)++rval;
48  return rval*digSize;
49  }

◆ typeinfo() [1/2]

const std::type_info & D3PD::SGTileModuleBitsGetterTool::typeinfo ( ) const
virtual

Return the type of object retrieved by this tool.

Reimplemented from D3PD::SGGetterImpl.

Definition at line 32 of file SGTileModuleBitsGetterTool.cxx.

32  {
33  return typeid(TileRawChannelContainer);
34  }

◆ typeinfo() [2/2]

virtual const std::type_info& D3PD::SGCollectionGetterTool< TileRawChannelContainer >::typeinfo
virtualinherited

Return the type of object retrieved by this tool.

Reimplemented from D3PD::CollectionGetterTool< TileRawChannelContainer >.

Member Data Documentation

◆ m_backConverter

TypeConverter D3PD::CollectionGetterToolImpl::m_backConverter
privateinherited

Helper to convert pointers back, for releaseElement.

Definition at line 106 of file CollectionGetterToolImpl.h.

◆ m_clid

CLID D3PD::SGGetterImpl::m_clid
privateinherited

CLID for the object being retrieved.

Definition at line 126 of file SGGetterImpl.h.

◆ m_clidsvc

ServiceHandle<IClassIDSvc> D3PD::SGGetterImpl::m_clidsvc
protectedinherited

Property: Instance of the ClassIDSvc to use.

Definition at line 119 of file SGGetterImpl.h.

◆ m_converter

TypeConverter D3PD::CollectionGetterToolImpl::m_converter
privateinherited

Helper to convert pointers.

Definition at line 103 of file CollectionGetterToolImpl.h.

◆ m_end

CONT::const_iterator D3PD::CollectionGetterTool< TileRawChannelContainer >::m_end
privateinherited

The iterator at the end of the container.

Definition at line 148 of file CollectionGetterTool.h.

◆ m_evtEnd

TileRawChannelContainer::const_iterator D3PD::SGTileModuleBitsGetterTool::m_evtEnd
private

Definition at line 44 of file SGTileModuleBitsGetterTool.h.

◆ m_evtItr

TileRawChannelContainer::const_iterator D3PD::SGTileModuleBitsGetterTool::m_evtItr
private

Definition at line 44 of file SGTileModuleBitsGetterTool.h.

◆ m_it

CONT::const_iterator D3PD::CollectionGetterTool< TileRawChannelContainer >::m_it
privateinherited

The current iterator.

Definition at line 145 of file CollectionGetterTool.h.

◆ m_label

std::string D3PD::CollectionGetterToolImpl::m_label
privateinherited

Property: label to assign to this getter (or null).

Definition at line 97 of file CollectionGetterToolImpl.h.

◆ m_registry

ToolHandle<ICollectionGetterRegistryTool> D3PD::CollectionGetterToolImpl::m_registry
privateinherited

The collection getter registry tool.

Definition at line 100 of file CollectionGetterToolImpl.h.

◆ m_resolver

SGKeyResolver D3PD::SGGetterImpl::m_resolver
protectedinherited

Helper: Resolve the SG key to use.

Definition at line 122 of file SGGetterImpl.h.

◆ m_sg

ServiceHandle<StoreGateSvc>& D3PD::SGGetterImpl::m_sg
privateinherited

The event storage service.

Definition at line 129 of file SGGetterImpl.h.

◆ m_sgkey

std::string D3PD::SGGetterImpl::m_sgkey
protectedinherited

Property: StoreGate key of the object being retrieved.

Definition at line 116 of file SGGetterImpl.h.

◆ m_typename

std::string D3PD::SGGetterImpl::m_typename
protectedinherited

Property: Name of the type of the object being retrieved.

Definition at line 113 of file SGGetterImpl.h.


The documentation for this class was generated from the following files:
TileRawChannelContainer
Definition: TileRawChannelContainer.h:13
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
D3PD::TypeConverter::dstName
std::string dstName() const
Return the name of the destination type, or an empty string.
Definition: TypeConverter.cxx:151
D3PD::SGKeyResolver::initialize
StatusCode initialize(CLID clid, const std::string &typname)
Initialize.
Definition: SGKeyResolver.cxx:44
skel.it
it
Definition: skel.GENtoEVGEN.py:423
D3PD::CollectionGetterToolImpl::m_converter
TypeConverter m_converter
Helper to convert pointers.
Definition: CollectionGetterToolImpl.h:103
D3PD::TypeConverter::init
StatusCode init(const std::type_info &src_ti, const std::type_info &dst_ti)
Initialize the converter.
Definition: TypeConverter.cxx:51
D3PD::TypeConverter::srcName
std::string srcName() const
Return the name of the source type, or an empty string.
Definition: TypeConverter.cxx:141
D3PD::SGTileModuleBitsGetterTool::m_evtItr
TileRawChannelContainer::const_iterator m_evtItr
Definition: SGTileModuleBitsGetterTool.h:44
D3PD::TypeConverter::convertUntyped
const void * convertUntyped(const void *p) const
Convert pointer.
Definition: TypeConverter.cxx:116
D3PD::CollectionGetterToolImpl::m_backConverter
TypeConverter m_backConverter
Helper to convert pointers back, for releaseElement.
Definition: CollectionGetterToolImpl.h:106
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
D3PD::nameToCLID
StatusCode nameToCLID(const std::string &name, CLID &clid, const std::string &context, ServiceHandle< IClassIDSvc > clidsvc=ServiceHandle< IClassIDSvc >("ClassIDSvc", "TypeNameConversions"))
Convert from a class name to a CLID.
Definition: TypeNameConversions.cxx:72
TileRawChannel
Definition: TileRawChannel.h:35
test_pyathena.parent
parent
Definition: test_pyathena.py:15
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition: IdentifiableContainerMT.h:242
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
D3PD::SGCollectionGetterTool< TileRawChannelContainer >::initialize
virtual StatusCode initialize()
Standard Gaudi initialize method.
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition: IdentifiableContainerMT.h:236
D3PD::SGTileModuleBitsGetterTool::Base
D3PD::SGCollectionGetterTool< TileRawChannelContainer > Base
Definition: SGTileModuleBitsGetterTool.h:24
D3PD::SGTileModuleBitsGetterTool::m_evtEnd
TileRawChannelContainer::const_iterator m_evtEnd
Definition: SGTileModuleBitsGetterTool.h:44
D3PD::SGGetterImpl::m_clid
CLID m_clid
CLID for the object being retrieved.
Definition: SGGetterImpl.h:126
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TileRawChannelCollection
Definition: TileRawChannelCollection.h:12
D3PD::TypeConverter::isValid
bool isValid() const
Test to see if this converter has been properly initialized.
query_example.col
col
Definition: query_example.py:7
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:365
D3PD::SGGetterImpl::m_typename
std::string m_typename
Property: Name of the type of the object being retrieved.
Definition: SGGetterImpl.h:113
TileRawChannelContainer
Athena::TPCnvVers::Old Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Old Athena::TPCnvVers::Current TileRawChannelContainer
Definition: TileTPCnv.cxx:127
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
D3PD::SGGetterImpl::m_resolver
SGKeyResolver m_resolver
Helper: Resolve the SG key to use.
Definition: SGGetterImpl.h:122
D3PD::CollectionGetterToolImpl::configureElementTypeinfo
StatusCode configureElementTypeinfo(const std::type_info &ti)
Test type compatibility.
Definition: CollectionGetterToolImpl.cxx:147
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
D3PD::SGGetterImpl::m_clidsvc
ServiceHandle< IClassIDSvc > m_clidsvc
Property: Instance of the ClassIDSvc to use.
Definition: SGGetterImpl.h:119
D3PD::SGCollectionGetterTool< TileRawChannelContainer >::get
virtual const TileRawChannelContainer * get(bool allowMissing=false)
Type-safe wrapper for get.