Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

/magnus/back_end/SMApps/include/RankOfElt.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: RankOfElt.h,v 1.1 2000/10/07 18:42:32 bormotov Exp $
00003  */
00004  
00005 // Contents: Declaration of classes RankOfElement, RankOfElementProblem, 
00006 //
00007 // Principal Author: Alexander Ushakov
00008 //
00009 // Status: in progress
00010 //
00011 // Revision History:
00012 //
00013 
00014 
00015 #ifndef _RANK_OF_ELT_H_
00016 #define _RANK_OF_ELT_H_
00017 
00018 
00019 #include "FreeGroup.h"
00020 #include "Supervisor.h"
00021 #include "RankOfSubgroup.h"
00022 
00023 
00024 // ------------------------  RankOfElement ------------------------------ //
00025 
00026 
00027 class RankOfElement : public ComputationManager
00028 {
00029 public:
00030 
00031   /////////////////////////////////////////////////////////////////////////
00032   //                                                                     //
00033   // Constructors:                                                       //
00034   //                                                                     //
00035   /////////////////////////////////////////////////////////////////////////
00036 
00037   RankOfElement(class RankOfElementProblem& problemObject );
00038 
00039   ~RankOfElement( );
00040 
00041   /////////////////////////////////////////////////////////////////////////
00042   //                                                                     //
00043   // Accessors:                                                          //
00044   //                                                                     //
00045   /////////////////////////////////////////////////////////////////////////
00046 
00047   Trichotomy getAnswer() const { 
00048        return theARCer.getAnswer();
00049   }
00050 
00051   Chars getFileName( ) { return theARCer.getFileName(); }
00052   // Returns name of the file with computation details
00053 
00054 
00055   /////////////////////////////////////////////////////////////////////////
00056   //                                                                     //
00057   // Control:                                                            //
00058   //                                                                     //
00059   /////////////////////////////////////////////////////////////////////////
00060 
00061   void takeControl( );         // overrides ComputationManager
00062 
00063   /////////////////////////////////////////////////////////////////////////
00064   //                                                                     //
00065   // State Transitions:                                                  //
00066   //                                                                     //
00067   /////////////////////////////////////////////////////////////////////////
00068 
00069   void start( ) { };              // overrides ComputationManager
00070 
00071   void terminate( ) { };          // overrides ComputationManager
00072 
00073 
00074 private:
00075 
00076   VectorOf<Word> constructVector( const Word& word );
00077     
00078   /////////////////////////////////////////////////////////////////////////
00079   //                                                                     //
00080   // Data Members:                                                       //
00081   //                                                                     //
00082   /////////////////////////////////////////////////////////////////////////
00083 
00084   const class SMWord& theWord;
00085 
00086   FreeGroup theGroup;
00087 
00088   RankOfSubgroupARCer theARCer;
00089 
00090 };
00091 
00092 
00093 // -------------------- RankOfElementProblem --------------------------- //
00094 
00095 
00096 class RankOfElementProblem : public Supervisor
00097 {
00098 public:
00099 
00100   /////////////////////////////////////////////////////////////////////////
00101   //                                                                     //
00102   // Constructors:                                                       //
00103   //                                                                     //
00104   /////////////////////////////////////////////////////////////////////////
00105 
00106   RankOfElementProblem(const class SMWord& w);
00107   
00108   /////////////////////////////////////////////////////////////////////////
00109   //                                                                     //
00110   // Accessors:                                                          //
00111   //                                                                     //
00112   /////////////////////////////////////////////////////////////////////////
00113 
00114   const class SMWord& getWord( ) const;
00115 
00116 
00117   /////////////////////////////////////////////////////////////////////////
00118   //                                                                     //
00119   // Front End Interfacing:                                              //
00120   //                                                                     //
00121   /////////////////////////////////////////////////////////////////////////
00122 
00123   void viewStructure(ostream& ostr) const;  // overrides SMObject
00124 
00125 
00126   /////////////////////////////////////////////////////////////////////////
00127   //                                                                     //
00128   // Control:                                                            //
00129   //                                                                     //
00130   /////////////////////////////////////////////////////////////////////////
00131 
00132   void takeControl( );         // overrides ComputationManager
00133 
00134 
00135   /////////////////////////////////////////////////////////////////////////
00136   //                                                                     //
00137   // State Transitions:                                                  //
00138   //                                                                     //
00139   /////////////////////////////////////////////////////////////////////////
00140 
00141   void start( ) { };          // overrides ComputationManager
00142 
00143   void terminate( ) { };      // overrides ComputationManager
00144 
00145 
00146 private:
00147 
00148     
00149   /////////////////////////////////////////////////////////////////////////
00150   //                                                                     //
00151   // Data Members:                                                       //
00152   //                                                                     //
00153   /////////////////////////////////////////////////////////////////////////
00154 
00155   const SMWord& theWord;
00156  
00157   bool linkHasBeenSent;
00158   
00159 
00160   /////////////////////////////////////////////////////////////////////////
00161   //                                                                     //
00162   // Subordinate Computation Managers:                                   //
00163   //                                                                     //
00164   /////////////////////////////////////////////////////////////////////////
00165 
00166   Subordinate<RankOfElementProblem, RankOfElement> rankOfElement;
00167  
00168 };
00169 
00170 
00171 #endif

Generated at Tue Jun 19 09:49:43 2001 for Magnus Classes by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001