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

/magnus/back_end/SMApps/include/GAConjProblemForORGroup.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: GAConjProblemForORGroup.h,v 1.2 2000/10/07 18:38:01 bormotov Exp $
00003  */
00004  
00005 // Contents: Declaration of classes GAConjugacyForORGroup, GAConjugacyForORGroupProblem, GAConjugacyForORGroupARCer
00006 //
00007 // Principal Author: Alexander Ushakov
00008 //
00009 // Status: in progress
00010 //
00011 // Revision History:
00012 //
00013 
00014 #ifndef _GA_CONJ_PROBLEM_FOR_ORGROUP_H_
00015 #define _GA_CONJ_PROBLEM_FOR_ORGROUP_H_
00016 
00017 
00018 #include "Supervisor.h"
00019 #include "SMWord.h"
00020 #include "FreeGroup.h"
00021 #include "File.h"
00022 #include "GACPforORGSolver.h"
00023 
00024 
00025 class ConjugacyProblem;
00026 
00027 
00028 //---------------------------------------------------------------------------//
00029 //---------------------- GAConjugacyForORGroupARCer -------------------------//
00030 //---------------------------------------------------------------------------//
00031 
00032 
00033 class GAConjugacyForORGroupARCer : public ARCer
00034 {
00035 public:
00036 
00037   /////////////////////////////////////////////////////////////////////////
00038   //                                                                     //
00039   // Constructors:                                                       //
00040   //                                                                     //
00041   /////////////////////////////////////////////////////////////////////////
00042 
00043   GAConjugacyForORGroupARCer( class GAConjugacyForORGroup& );
00044 
00045   ~GAConjugacyForORGroupARCer( );
00046 
00047 
00048   /////////////////////////////////////////////////////////////////////////
00049   //                                                                     //
00050   // Accessors:                                                          //
00051   //                                                                     //
00052   /////////////////////////////////////////////////////////////////////////
00053 
00054   void setArguments( const OneRelatorGroup& G, const Word& u, const Word& v );
00055 
00056   Trichotomy answer( ) const { return theAnswer; }
00057 
00058   Chars getFileName( ) const { return solver->getFileName( ); }
00059 
00060 
00061   /////////////////////////////////////////////////////////////////////////
00062   //                                                                     //
00063   // IPC interaction members:                                            //
00064   //                                                                     //
00065   /////////////////////////////////////////////////////////////////////////
00066 
00067   void runComputation( );
00068 
00069   void writeResults( ostream& );
00070 
00071   void readResults( istream& );
00072 
00073   
00074 private:
00075 
00076   /////////////////////////////////////////////////////////////////////////
00077   //                                                                     //
00078   // Data Members:                                                       //
00079   //                                                                     //
00080   /////////////////////////////////////////////////////////////////////////
00081 
00082   OneRelatorGroup theGroup;
00083   Word firstWord, secondWord;
00084 
00085   GAConjProblemForORGroupSolver* solver;
00086 
00087   Trichotomy theAnswer;
00088 };
00089 
00090 
00091 
00092 //---------------------------------------------------------------------------//
00093 //------------------------ GAConjugacyForORGroup ----------------------------//
00094 //---------------------------------------------------------------------------//
00095 
00096 
00097 
00098 class GAConjugacyForORGroup : public ComputationManager
00099 {
00100 public:
00101 
00102   /////////////////////////////////////////////////////////////////////////
00103   //                                                                     //
00104   // Constructors:                                                       //
00105   //                                                                     //
00106   /////////////////////////////////////////////////////////////////////////
00107 
00108   GAConjugacyForORGroup( const ConjugacyProblem& CP);
00109 
00110   /////////////////////////////////////////////////////////////////////////
00111   //                                                                     //
00112   // Accessors:                                                          //
00113   //                                                                     //
00114   /////////////////////////////////////////////////////////////////////////
00115 
00116   Trichotomy answer( ) const { return theAnswer; }
00117   // This not report the result to the FE, but just sits and waits to
00118   // be polled through this member. yes => conjugate, no => not conjugate,
00119   // dontknow => not done yet.
00120 
00121   Chars getFileName( ) const { return arcer.getFileName( ); }
00122 
00123   OneRelatorGroup getGroup( ) const;
00124 
00125   /////////////////////////////////////////////////////////////////////////
00126   //                                                                     //
00127   // Control:                                                            //
00128   //                                                                     //
00129   /////////////////////////////////////////////////////////////////////////
00130 
00131   void takeControl( );         // overrides ComputationManager
00132 
00133   /////////////////////////////////////////////////////////////////////////
00134   //                                                                     //
00135   // State Transitions:                                                  //
00136   //                                                                     //
00137   /////////////////////////////////////////////////////////////////////////
00138 
00139   void start( ) { }              // overrides ComputationManager
00140 
00141   void terminate( ) { }          // overrides ComputationManager
00142 
00143 
00144 private:
00145 
00146   /////////////////////////////////////////////////////////////////////////
00147   //                                                                     //
00148   // Data Members:                                                       //
00149   //                                                                     //
00150   /////////////////////////////////////////////////////////////////////////
00151 
00152   const class ConjugacyProblem& problem;
00153   GAConjugacyForORGroupARCer arcer;
00154   Trichotomy theAnswer;
00155 };
00156 
00157 
00158 #endif
00159 

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