/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Calibration/facilities/facilities-00-00-04/facilities/Commissioner.h

Go to the documentation of this file.
00001 //## begin module.cm preserve=no
00002 //        %X% %Q% %Z% %W%
00003 //## end module.cm
00004 
00005 //## Module: Commissioner; Package specification
00006 //      Implementation of the Commissioner class
00007 //## Subsystem: utilities
00008 //## Source file: d:\code\glastsim\utilities\Commissioner.h
00009 
00010 #ifndef Commissioner_h
00011 #define Commissioner_h 1
00012 
00013 #include "Adapter.h"
00014 //## begin module.declarations preserve=no
00015 //## end module.declarations
00016 
00017 
00018 //## Class: Commissioner; Parameterized Class
00019 //      Class used to select other classes based on some
00020 //      specific attribute within those classes. This is
00021 //      implemented by setting some parameter within this class
00022 //      of type _Ty and creating an Action object, of return
00023 //      type _Ty and encapsulated within the Subject class which
00024 //      gives access to that object.
00025 //## Category: utilities
00026 //## Subsystem: utilities
00027 //## Persistence: Transient
00028 //## Cardinality/Multiplicity: n
00029 
00030 template <class Commissionee, class Criteria>
00031 class Commissioner 
00032 {
00033   //## begin Commissioner.initialDeclarations preserve=yes
00034   //## end Commissioner.initialDeclarations
00035 
00036   public:
00037     //## Constructors (specified)
00038       //## Operation: Commissioner%894312587
00039       //        constructor
00040       Commissioner (Action<Commissionee, Criteria> aSelector, Criteria aCriteria)
00041         //## begin Commissioner::Commissioner%894312587.hasinit preserve=no
00042         //## end Commissioner::Commissioner%894312587.hasinit
00043         //## begin Commissioner::Commissioner%894312587.initialization preserve=yes
00044         : itsSelector(aSelector), itsCriteria(aCriteria)
00045         //## end Commissioner::Commissioner%894312587.initialization
00046       {
00047         //## begin Commissioner::Commissioner%894312587.body preserve=yes
00048         //## end Commissioner::Commissioner%894312587.body
00049       }
00050 
00051 
00052     //## Other Operations (specified)
00053       //## Operation: select%894312588
00054       //        executes its selection criteria on the object passed to
00055       //        it.
00056       bool select (Commissionee* aCommissionee)
00057       {
00058         //## begin Commissioner::select%894312588.body preserve=yes
00059           return (itsCriteria == itsSelector.execute(aCommissionee));
00060         //## end Commissioner::select%894312588.body
00061       }
00062 
00063       //## Operation: select%894312589
00064       //        performs its selection using the criteria passed in to
00065       //        the funciton
00066       bool select (Commissionee* aCommissionee, Criteria aCriteria) const
00067       {
00068         //## begin Commissioner::select%894312589.body preserve=yes
00069           return (aCriteria == itsSelector.execute(aCommissionee));
00070         //## end Commissioner::select%894312589.body
00071       }
00072 
00073     // Additional Public Declarations
00074       //## begin Commissioner.public preserve=yes
00075       //## end Commissioner.public
00076 
00077   protected:
00078     // Additional Protected Declarations
00079       //## begin Commissioner.protected preserve=yes
00080       //## end Commissioner.protected
00081 
00082   private:
00083     // Additional Private Declarations
00084       //## begin Commissioner.private preserve=yes
00085       //## end Commissioner.private
00086 
00087   private:  //## implementation
00088     // Data Members for Associations
00089 
00090       //## Association: utilities::<unnamed>%3550EE700380
00091       //## Role: Commissioner::itsSelector
00092       //        action function used to select Subjects
00093       //## begin Commissioner::itsSelector.role preserve=no  private: Action { -> VHN}
00094       Action<Commissionee, Criteria> itsSelector;
00095       //## end Commissioner::itsSelector.role
00096 
00097       //## Association: utilities::<unnamed>%3550F03B007D
00098       //## Role: Commissioner::<the_Command>
00099       //## begin Commissioner::<the_Command>.role preserve=no  public: Command {0..1 -> RHG}
00100       //## end Commissioner::<the_Command>.role
00101 
00102     // Additional Implementation Declarations
00103       //## begin Commissioner.implementation preserve=yes
00104       Criteria  itsCriteria;
00105       //## end Commissioner.implementation
00106 
00107 };
00108 
00109 //## begin Commissioner.postscript preserve=yes
00110 //## end Commissioner.postscript
00111 
00112 
00113 
00114 #endif

Generated on Tue Nov 29 22:57:55 2016 for BOSS_7.0.2 by  doxygen 1.4.7