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

PsPvmController.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 PsPvmControllerHEADER
00019 #define PsPvmControllerHEADER
00020 
00021 //---------------------------------------------------------------------
00022 
00023 #include <PsDistributedController.h>
00024 #include <PsnSvmLink.h>
00025 
00026 //---------------------------------------------------------------------
00027 
00028 class PsnSvm ;
00029 class PsnMirrorObjectHandle ;
00030 
00031 //---------------------------------------------------------------------
00044 //---------------------------------------------------------------------
00045 
00046 class PsPvmController : public PsDistributedController 
00047 {
00048 public :
00049    
00055    PsPvmController (PsObjectDescriptor & arbre,
00056                     const PsDate & initialSimulationDate,
00057                     int argc,
00058                     char * argv []) ;
00059 
00061    virtual ~PsPvmController () ;
00062 
00063 
00066    virtual void run () ;
00067 
00068 
00072    virtual void advanceSimulatedDate ();
00073 
00074 
00077    virtual void computeNextSimulationStep();
00078    
00079    
00081    virtual void finish() ;
00082 
00083 
00085    virtual const PsName & getProcessName () const ;
00086    
00087 
00089    virtual PsnSvm * getDistributedVirtualMachine () ;
00090    
00091 
00093    virtual void makeSynchronisationMessage (PsNameToPointerMap<PsnReferenceObjectHandle> & referenceObjects) ;
00094 
00095    
00100    virtual void parseSynchronisationMessage (PsnPvmIncomingMessage * message) ;
00101    
00102 
00106    virtual void waitForAnswerToBlockingRequest (PsnPvmMessage::MessageTag tag) ;
00107 
00108 
00110    virtual void sendInitialValuesToMirror (PsnPvmIncomingMessage & message) ;
00111 
00113    virtual void init () ;
00114    
00115 protected :
00117    virtual PsDate getPurgeDate () ;
00118 
00121    virtual PsnMirrorObjectHandle * createMirrorObject (PsObjectDescriptor * objectDescription ) ;
00122    
00123 
00128    PsnDuplicatedObjectHandle * newPsnDuplicatedObjectHandle (PsSimulatedObject & object);
00129 
00130    
00135    PsnMirrorObjectHandle * newPsnMirrorObjectHandle (PsSimulatedObject & obj);
00136 
00137 
00142    virtual PsnReferenceObjectHandle * newPsnReferenceObjectHandle(PsSimulatedObject & object, 
00143                                                                   PsController & controller,
00144                                                                   PsnSignalDispatcher * signalDispatcher);
00145 
00146 
00150    virtual int getOutputHistorySize(void) ;
00151    
00152 
00154    PsnSvm * _distributedVirtualMachine ;
00155 
00156 
00159    virtual PsnObjectHandle * removeObjectFromDataStructures(const PsName & nom);
00160 
00161 
00163    bool _finishing ;
00164 } ; // PsPvmController
00165 
00166 //---------------------------------------------------------------------
00167 
00168 #endif

logo OpenMask

Documentation generated on Mon Nov 25 15:25:02 2002

Generated with doxygen 1.2.12 by Dimitri van Heesch ,   1997-2001