Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JDETECTOR::JLocationRouter Class Reference

Router for direct addressing of location data in detector data structure. More...

#include <JLocationRouter.hh>

Inheritance diagram for JDETECTOR::JLocationRouter:
JLANG::JReference< JClass_t >

Public Types

typedef JDetector::const_iterator const_iterator
 

Public Member Functions

 JLocationRouter (const JDetector &detector)
 Constructor.
 
const JLocationRoutergetLocationRouter () const
 Get location router.
 
const JModuleAddressgetAddress (const JLocation &location) const
 Get address of location.
 
const JModulegetModule (const JLocation &location) const
 Get module parameters.
 
bool hasLocation (const JLocation &location) const
 Has module.
 
const int getIndex (const JLocation &location) const
 Get index of location.
 
const JClass_t & getReference () const
 Get reference to object.
 
JClass_t & getReference ()
 Get reference to object.
 
bool is_valid () const
 Check validity of reference.
 
const JClass_t * operator-> () const
 Smart pointer.
 
JClass_t * operator-> ()
 Smart pointer.
 
const JClass_t & operator* () const
 Dereference operator.
 
JClass_t & operator* ()
 Dereference operator.
 

Protected Attributes

JClass_t & __object
 

Private Types

typedef JReference< const JDetectorJReference_t
 

Private Attributes

JTOOLS::JHashMap< int, JTOOLS::JHashMap< int, JModuleAddress > > router
 

Detailed Description

Router for direct addressing of location data in detector data structure.

Definition at line 28 of file JLocationRouter.hh.

Member Typedef Documentation

◆ JReference_t

◆ const_iterator

JDetector::const_iterator JDETECTOR::JLocationRouter::const_iterator

Definition at line 36 of file JLocationRouter.hh.

Constructor & Destructor Documentation

◆ JLocationRouter()

JDETECTOR::JLocationRouter::JLocationRouter ( const JDetector & detector)
inline

Constructor.

Parameters
detectordetector

Definition at line 44 of file JLocationRouter.hh.

44 :
45 JReference_t(detector)
46 {
47 for (const_iterator module = detector.begin(); module != detector.end(); ++module) {
48 router[module->getString()][module->getFloor()] = JModuleAddress(std::distance(detector.begin(), module));
49 }
50 }
JTOOLS::JHashMap< int, JTOOLS::JHashMap< int, JModuleAddress > > router
JReference< const JDetector > JReference_t
JDetector::const_iterator const_iterator

Member Function Documentation

◆ getLocationRouter()

const JLocationRouter & JDETECTOR::JLocationRouter::getLocationRouter ( ) const
inline

Get location router.

Returns
location router

Definition at line 58 of file JLocationRouter.hh.

59 {
60 return static_cast<const JLocationRouter&>(*this);
61 }
JLocationRouter(const JDetector &detector)
Constructor.

◆ getAddress()

const JModuleAddress & JDETECTOR::JLocationRouter::getAddress ( const JLocation & location) const
inline

Get address of location.

Parameters
locationlocation
Returns
address

Definition at line 70 of file JLocationRouter.hh.

71 {
72 return router[location.getString()][location.getFloor()];
73 }

◆ getModule()

const JModule & JDETECTOR::JLocationRouter::getModule ( const JLocation & location) const
inline

Get module parameters.

Parameters
locationlocation
Returns
module parameters

Definition at line 82 of file JLocationRouter.hh.

83 {
84 return getReference().getModule(this->getAddress(location));
85 }
const JModuleAddress & getAddress(const JLocation &location) const
Get address of location.
const JClass_t & getReference() const
Get reference to object.
Definition JReference.hh:38

◆ hasLocation()

bool JDETECTOR::JLocationRouter::hasLocation ( const JLocation & location) const
inline

Has module.

Parameters
locationlocation
Returns
true if location present; else false

Definition at line 94 of file JLocationRouter.hh.

95 {
96 return router.has(location.getString()) && router[location.getString()].has(location.getFloor());
97 }

◆ getIndex()

const int JDETECTOR::JLocationRouter::getIndex ( const JLocation & location) const
inline

Get index of location.

Parameters
locationlocation
Returns
index

Definition at line 106 of file JLocationRouter.hh.

107 {
108 return getAddress(location).first;
109 }
int first
index of module in detector data structure

◆ getReference() [1/2]

template<class JClass_t >
const JClass_t & JLANG::JReference< JClass_t >::getReference ( ) const
inlineinherited

Get reference to object.

Returns
reference to object

Definition at line 38 of file JReference.hh.

39 {
40 return __object;
41 }
JClass_t & __object

◆ getReference() [2/2]

template<class JClass_t >
JClass_t & JLANG::JReference< JClass_t >::getReference ( )
inlineinherited

Get reference to object.

Returns
reference to object

Definition at line 49 of file JReference.hh.

50 {
51 return __object;
52 }

◆ is_valid()

template<class JClass_t >
bool JLANG::JReference< JClass_t >::is_valid ( ) const
inlineinherited

Check validity of reference.

Returns
true

Definition at line 60 of file JReference.hh.

61 {
62 return true;
63 }

◆ operator->() [1/2]

template<class JClass_t >
const JClass_t * JLANG::JReference< JClass_t >::operator-> ( ) const
inlineinherited

Smart pointer.

Returns
pointer to object

Definition at line 71 of file JReference.hh.

72 {
73 return &__object;
74 }

◆ operator->() [2/2]

template<class JClass_t >
JClass_t * JLANG::JReference< JClass_t >::operator-> ( )
inlineinherited

Smart pointer.

Returns
pointer to object

Definition at line 82 of file JReference.hh.

83 {
84 return &__object;
85 }

◆ operator*() [1/2]

template<class JClass_t >
const JClass_t & JLANG::JReference< JClass_t >::operator* ( ) const
inlineinherited

Dereference operator.

Returns
reference to object

Definition at line 93 of file JReference.hh.

94 {
95 return __object;
96 }

◆ operator*() [2/2]

template<class JClass_t >
JClass_t & JLANG::JReference< JClass_t >::operator* ( )
inlineinherited

Dereference operator.

Returns
reference to object

Definition at line 104 of file JReference.hh.

105 {
106 return __object;
107 }

Member Data Documentation

◆ router

JTOOLS::JHashMap<int, JTOOLS::JHashMap<int, JModuleAddress> > JDETECTOR::JLocationRouter::router
private

Definition at line 112 of file JLocationRouter.hh.

◆ __object

template<class JClass_t >
JClass_t& JLANG::JReference< JClass_t >::__object
protectedinherited

Definition at line 110 of file JReference.hh.


The documentation for this class was generated from the following file: