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

/magnus/back_end/SMApps/include/ACConjecture.h

Go to the documentation of this file.
00001 /*
00002  *   $Id:
00003  */
00004 // Copyright (C) 1998 The New York Group Theory Cooperative
00005 // See magnus/doc/COPYRIGHT for the full notice.
00006 
00007 // Contents: Declarations of classes 
00008 //           ACConjectureARCer, ACConjectureProblem
00009 //
00010 // Principal Author: Alexei Miasnikov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 
00017 
00018 #ifndef _AC_CONJECTURE_H_
00019 #define _AC_CONJECTURE_H_
00020 
00021 
00022 #include "Supervisor.h"
00023 #include "ACGA.h"
00024 #include "ACConfig.h"
00025 #include "SMVectorOfWords.h"
00026 
00027 // --------------------------- ACConjectureARCer ------------------------ //
00028 
00029 
00030 class ACConjectureARCer : public ARCer
00031 {
00032 public:
00033 
00034   /////////////////////////////////////////////////////////////////////////
00035   //                                                                     //
00036   // Constructors:                                                       //
00037   //                                                                     //
00038   /////////////////////////////////////////////////////////////////////////
00039 
00040   ACConjectureARCer( ComputationManager& );
00041 
00042   ~ACConjectureARCer( ) { }
00043 
00044 
00045   /////////////////////////////////////////////////////////////////////////
00046   //                                                                     //
00047   // Accessors:                                                          //
00048   //                                                                     //
00049   /////////////////////////////////////////////////////////////////////////
00050 
00051   void setArguments( FPGroup );
00052 
00053   Chars getComputationFileName() const { return compFile.getFileName();}
00054   Chars getResultFileName() const { return resultFile.getFileName();}
00055   bool getResult() const { return result; }
00056   // Inherited from ARCer:
00057   // bool takeControl( );
00058 
00059 
00060   /////////////////////////////////////////////////////////////////////////
00061   //                                                                     //
00062   // IPC interaction members:                                            //
00063   //                                                                     //
00064   /////////////////////////////////////////////////////////////////////////
00065 
00066   void runComputation( );
00067 
00068   void writeResults( ostream& );
00069 
00070   void readResults( istream& );
00071 
00072   
00073 private:
00074 
00075   /////////////////////////////////////////////////////////////////////////
00076   //                                                                     //
00077   // Private functions:                                                  //
00078   //                                                                     //
00079   /////////////////////////////////////////////////////////////////////////
00080 
00081   /////////////////////////////////////////////////////////////////////////
00082   //                                                                     //
00083   // Data Members:                                                       //
00084   //                                                                     //
00085   /////////////////////////////////////////////////////////////////////////
00086   
00087   FPGroup theGroup;
00088   File compFile;
00089   File resultFile;
00090   bool result;
00091 };
00092 
00093 
00094 
00095 // ------------------- ACConjectureProblem --------------------- //
00096 
00097 
00098 class ACConjectureProblem : public Supervisor
00099 {
00100 public:
00101 
00102   /////////////////////////////////////////////////////////////////////////
00103   //                                                                     //
00104   // Constructors:                                                       //
00105   //                                                                     //
00106   /////////////////////////////////////////////////////////////////////////
00107 
00108   ACConjectureProblem( const class SMVectorOfWords& );
00109 
00110 
00111   /////////////////////////////////////////////////////////////////////////
00112   //                                                                     //
00113   // Accessors:                                                          //
00114   //                                                                     //
00115   /////////////////////////////////////////////////////////////////////////
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   //                                                                     //
00162   // Subordinate Computation Managers:                                   //
00163   //                                                                     //
00164   /////////////////////////////////////////////////////////////////////////
00165 
00166   ACConjectureARCer arcer;
00167 };
00168 
00169 #endif

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