OMKPvmSvm.h

Go to the documentation of this file.
00001 /*
00002  * This file is part of openMask © INRIA, CNRS, Universite de Rennes 1 1993-2002, thereinafter the Software
00003  * 
00004  * The Software has been developped within the Siames Project. 
00005  * INRIA, the University of Rennes 1 and CNRS jointly hold intellectual property rights
00006  * 
00007  * The Software has been registered with the Agence pour la Protection des
00008  * Programmes (APP) under registration number IDDN.FR.001.510008.00.S.P.2001.000.41200
00009  *
00010  * This file may be distributed under the terms of the Q Public License
00011  * version 1.0 as defined by Trolltech AS of Norway and appearing in the file
00012  * LICENSE.QPL included in the packaging of this file.
00013  *
00014  * Licensees holding valid specific licenses issued by INRIA, CNRS or Université de Rennes 1 
00015  * for the software may use this file in accordance with that specific license 
00016  *
00017  */
00018 #ifndef OMKPvmSvmHEADER
00019 #define OMKPvmSvmHEADER
00020 
00021 #include <OMKSvm.h>
00022 
00023 namespace OMK
00024 {
00025 class Process;
00026 
00032 class OMKPVM_API PvmSvm : public Svm 
00033 {   
00034 public :
00041    PvmSvm (NameToPointerMap<Process> * tab, const Date & latence, const Date & timeOut, const int deadReckoningInterval, const bool yieldNeeded, int argc, char * argv [] ) ;
00042 
00044    virtual ~PvmSvm () ;
00045 
00046 protected:
00051    virtual void joinSvmGroup (std::string & groupName) ;
00052    
00053       
00058    virtual void groupBarrier (std::string groupName, int numberToJoin) ; 
00059       
00060 
00062    virtual void broadcastToGroup (std::string groupName, PvmMessage::MessageTag tag) ;
00063    
00064 
00070    virtual int nonblockingReceive (PvmMessage::MessageTag tag) ; 
00071    
00073    virtual void initBeforeMessagePacking() ;
00074  
00075    
00080    virtual std::pair<PvmMessage::MessageTag, int> waitForAnyRequests (PvmIncomingMessage & receiveBuffer) ;
00081 
00082 
00085    virtual int getSiteId () ;
00086 
00087 
00091    virtual int getParentSiteId();
00092 
00093 
00095    virtual void addNewWorkstation(const Name & m);
00096 
00097 
00099    virtual void removeWorkstation(const Name & m);
00100 
00101 
00103    virtual int spawnProcess (Process * p) ;
00104 
00105 
00109    virtual SvmLink * createSvmLink (const int & d) ;
00110 
00112    virtual bool testIfSiteRecovered (Process * p) ;
00115 public:
00117    static int pvmDataEncoding ;
00118    
00119 
00121    static int pvmSpawnFlags ;
00122 
00123 
00124 protected:
00126    int _argc ;
00127 
00128 
00130    char ** _argv ;
00131 
00132 } ; // PvmSvm
00133 
00134 } // namespace OMK
00135 #endif

logo OpenMask

Documentation generated on Mon Jun 9 11:45:57 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007