BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Calibration/facilities/include/facilities/Commissioner.h
Go to the documentation of this file.
1// ## begin module.cm preserve=no
2// %X% %Q% %Z% %W%
3// ## end module.cm
4
5// ## Module: Commissioner; Package specification
6// Implementation of the Commissioner class
7// ## Subsystem: utilities
8// ## Source file: d:\code\glastsim\utilities\Commissioner.h
9
10#ifndef Commissioner_h
11#define Commissioner_h 1
12
13#include "Adapter.h"
14// ## begin module.declarations preserve=no
15// ## end module.declarations
16
17// ## Class: Commissioner; Parameterized Class
18// Class used to select other classes based on some
19// specific attribute within those classes. This is
20// implemented by setting some parameter within this class
21// of type _Ty and creating an Action object, of return
22// type _Ty and encapsulated within the Subject class which
23// gives access to that object.
24// ## Category: utilities
25// ## Subsystem: utilities
26// ## Persistence: Transient
27// ## Cardinality/Multiplicity: n
28
29template <class Commissionee, class Criteria> class Commissioner {
30 // ## begin Commissioner.initialDeclarations preserve=yes
31 // ## end Commissioner.initialDeclarations
32
33public:
34 // ## Constructors (specified)
35 // ## Operation: Commissioner%894312587
36 // constructor
38 // ## begin Commissioner::Commissioner%894312587.hasinit preserve=no
39 // ## end Commissioner::Commissioner%894312587.hasinit
40 // ## begin Commissioner::Commissioner%894312587.initialization preserve=yes
41 : itsSelector( aSelector )
42 , itsCriteria( aCriteria )
43 // ## end Commissioner::Commissioner%894312587.initialization
44 {
45 // ## begin Commissioner::Commissioner%894312587.body preserve=yes
46 // ## end Commissioner::Commissioner%894312587.body
47 }
48
49 // ## Other Operations (specified)
50 // ## Operation: select%894312588
51 // executes its selection criteria on the object passed to
52 // it.
53 bool select( Commissionee* aCommissionee ) {
54 // ## begin Commissioner::select%894312588.body preserve=yes
55 return ( itsCriteria == itsSelector.execute( aCommissionee ) );
56 // ## end Commissioner::select%894312588.body
57 }
58
59 // ## Operation: select%894312589
60 // performs its selection using the criteria passed in to
61 // the funciton
62 bool select( Commissionee* aCommissionee, Criteria aCriteria ) const {
63 // ## begin Commissioner::select%894312589.body preserve=yes
64 return ( aCriteria == itsSelector.execute( aCommissionee ) );
65 // ## end Commissioner::select%894312589.body
66 }
67
68 // Additional Public Declarations
69 // ## begin Commissioner.public preserve=yes
70 // ## end Commissioner.public
71
72protected:
73 // Additional Protected Declarations
74 // ## begin Commissioner.protected preserve=yes
75 // ## end Commissioner.protected
76
77private:
78 // Additional Private Declarations
79 // ## begin Commissioner.private preserve=yes
80 // ## end Commissioner.private
81
82private: // ## implementation
83 // Data Members for Associations
84 // ## Association: utilities::<unnamed>%3550EE700380
85 // ## Role: Commissioner::itsSelector
86 // action function used to select Subjects
87 // ## begin Commissioner::itsSelector.role preserve=no private: Action { -> VHN}
89 // ## end Commissioner::itsSelector.role
90
91 // ## Association: utilities::<unnamed>%3550F03B007D
92 // ## Role: Commissioner::<the_Command>
93 // ## begin Commissioner::<the_Command>.role preserve=no public: Command {0..1 -> RHG}
94 // ## end Commissioner::<the_Command>.role
95
96 // Additional Implementation Declarations
97 // ## begin Commissioner.implementation preserve=yes
98 Criteria itsCriteria;
99 // ## end Commissioner.implementation
100};
101
102// ## begin Commissioner.postscript preserve=yes
103// ## end Commissioner.postscript
104
105#endif
bool select(Commissionee *aCommissionee, Criteria aCriteria) const
Commissioner(Action< Commissionee, Criteria > aSelector, Criteria aCriteria)