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

/magnus/back_end/SMApps/include/WhiteheadMinimal.h

Go to the documentation of this file.
00001 /*
00002  *   $Id:
00003  */
00004 // Copyright (C) 1999 The New York Group Theory Cooperative
00005 // See magnus/doc/COPYRIGHT for the full notice.
00006 
00007 // Contents: Declarations of classes 
00008 //           
00009 //
00010 // Principal Author: Alexei Miasnikov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 
00017 
00018 #ifndef _WHITEHEAD_MINIMAL_H_
00019 #define _WHITEHEAD_MINIMAL_H_
00020 
00021 
00022 #include "Supervisor.h"
00023 #include "GAIsPartOfBasis.h"
00024 #include "SMVectorOfWords.h"
00025 
00026 // ----------------------- GAFindWhiteheadMinimalArcer --------------------- //
00027 
00028 
00029 class GAFindWhiteheadMinimalArcer : public ARCer
00030 {
00031 public:
00032 
00033   /////////////////////////////////////////////////////////////////////////
00034   //                                                                     //
00035   // Constructors:                                                       //
00036   //                                                                     //
00037   /////////////////////////////////////////////////////////////////////////
00038 
00039   GAFindWhiteheadMinimalArcer( ComputationManager& );
00040 
00041   ~GAFindWhiteheadMinimalArcer( ) { }
00042 
00043 
00044   /////////////////////////////////////////////////////////////////////////
00045   //                                                                     //
00046   // Accessors:                                                          //
00047   //                                                                     //
00048   /////////////////////////////////////////////////////////////////////////
00049 
00050   void setArguments( FreeGroup f, const VectorOf<Word>& v );
00051 
00052   Chars getComputationFileName() const { return compFile.getFileName();}
00053   Chars getResultFileName() const { return resultFile.getFileName();}
00054   const VectorOf<Word>& getAutomorphism() const { return theAuto;}
00055   // Inherited from ARCer:
00056   // bool takeControl( );
00057 
00058 
00059   /////////////////////////////////////////////////////////////////////////
00060   //                                                                     //
00061   // IPC interaction members:                                            //
00062   //                                                                     //
00063   /////////////////////////////////////////////////////////////////////////
00064 
00065   void runComputation( );
00066 
00067   void writeResults( ostream& );
00068 
00069   void readResults( istream& );
00070 
00071   
00072 private:
00073 
00074   /////////////////////////////////////////////////////////////////////////
00075   //                                                                     //
00076   // Private functions:                                                  //
00077   //                                                                     //
00078   /////////////////////////////////////////////////////////////////////////
00079 
00080   /////////////////////////////////////////////////////////////////////////
00081   //                                                                     //
00082   // Data Members:                                                       //
00083   //                                                                     //
00084   /////////////////////////////////////////////////////////////////////////
00085   
00086   VectorOf<Word> theTuple;
00087   FreeGroup theGroup;
00088   File compFile;
00089   File resultFile;
00090   VectorOf<Word> theAuto;
00091 };
00092 
00093 // ------------------- FindWhiteheadMinimalProblem --------------------------- //
00094 
00095 
00096 class FindWhiteheadMinimalProblem : public Supervisor
00097 {
00098 public:
00099 
00100   /////////////////////////////////////////////////////////////////////////
00101   //                                                                     //
00102   // Constructors:                                                       //
00103   //                                                                     //
00104   /////////////////////////////////////////////////////////////////////////
00105 
00106   FindWhiteheadMinimalProblem(const class SMVectorOfWords& );
00107 
00108 
00109   /////////////////////////////////////////////////////////////////////////
00110   //                                                                     //
00111   // Accessors:                                                          //
00112   //                                                                     //
00113   /////////////////////////////////////////////////////////////////////////
00114     
00115     //  const class SMWord& getWord( ) const { return theWord; }
00116 
00117 
00118   /////////////////////////////////////////////////////////////////////////
00119   //                                                                     //
00120   // Front End Interfacing:                                              //
00121   //                                                                     //
00122   /////////////////////////////////////////////////////////////////////////
00123 
00124   void viewStructure(ostream& ostr) const;  // overrides SMObject
00125 
00126 
00127   /////////////////////////////////////////////////////////////////////////
00128   //                                                                     //
00129   // Control:                                                            //
00130   //                                                                     //
00131   /////////////////////////////////////////////////////////////////////////
00132 
00133   void takeControl( );         // overrides ComputationManager
00134 
00135 
00136   /////////////////////////////////////////////////////////////////////////
00137   //                                                                     //
00138   // State Transitions:                                                  //
00139   //                                                                     //
00140   /////////////////////////////////////////////////////////////////////////
00141 
00142   void start( ) { };          // overrides ComputationManager
00143 
00144   void terminate( );      // overrides ComputationManager
00145 
00146 
00147 private:
00148 
00149   /////////////////////////////////////////////////////////////////////////
00150   //                                                                     //
00151   // Data Members:                                                       //
00152   //                                                                     //
00153   /////////////////////////////////////////////////////////////////////////
00154 
00155   const SMVectorOfWords& theTuple;
00156  
00157   bool linkHasBeenSent;
00158 
00159   /////////////////////////////////////////////////////////////////////////
00160   //                                                                     //
00161   // Subordinate Computation Managers:                                   //
00162   //                                                                     //
00163   /////////////////////////////////////////////////////////////////////////
00164 
00165   GAFindWhiteheadMinimalArcer arcer;
00166 };
00167 
00168 
00169 #endif

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