#include <PsMomeController.h>
Inheritance diagram for PsMomeController:


Public Methods | |
| PsMomeController (PsObjectDescriptor &initialObjects, const PsDate &initialDate) | |
| Le constructeur. | |
| virtual | ~PsMomeController () |
| Le destructeur. | |
| virtual void | init () |
| Redéfinition pour gérer les initialisations manquées à cause de la distribution. | |
| virtual void | prepareEventProcessing (list< PsEvent * > &myList) |
| Redefined so as to collect event received by the BroadcastManager {PsnBroadcastManager}. | |
| virtual void | computeNextSimulationStep () |
| Redéfinition pour intégrer la synchronisation de la mémoire, l'extraction des outputs pour la propagation des signaux etc et la synchronisation avec le {PsnBroacastManager}. | |
| virtual void | actOnSystemEvent (PsEvent *evt) |
| Redéfinition pour diffuser les événements système aux controleurs grace au {PsnBroacastManager}. | |
| virtual PsnOutputSharedData * | creerDonneesOutput (const PsName &object, const PsName &name) |
| Création des données d'une output. | |
| virtual void | invalidateOutput (const PsName &object, const PsName &name) |
| A utiliser avec précaution (les multiples références ne sont pas gérées par cette version de la méthode) lors de la destruction d'une output. | |
| virtual PsnMirrorObjectHandle * | newPsnMirrorObjectHandle (PsSimulatedObject &) |
| Redefinition to create a {PsnMomeMirrorObjectHandle}. | |
| virtual PsnReferenceObjectHandle * | newPsnReferenceObjectHandle (PsSimulatedObject &object, PsController &controller, PsnSignalDispatcher *signalDispatcher) |
| Redefinition to create a {PsnMomeReferenceObjectHandle}. | |
| virtual void | syncAttributesAndEvents (void) |
| Synchroniser toutes les outputs, tous les paramètres de controle, tous les messages et tous les événements. | |
| virtual void | createControlledObjects (const PsObjectDescriptor *subTree) |
| redéfinition de createControlledObjects pour installer le gestionnaire de mémoire à cohérance relachée | |
| virtual int | getOutputHistorySize (void) |
| Recuperation de la taille de la file pour une output nécessaire pour le controleur. | |
| virtual void | broadcast (const PsName &nomDestinataire, const PsString &message) |
| redefinition de la méthode de broadcast | |
Static Public Methods | |
| PsnSharedMemoryManager * | whichSharedMemoryManager (void *ptr) |
| Déterminer le gestionnaire de mémoire utilisé pour une adresse donnée. | |
| void | errorMome () |
| Une méthode pour gérer les errors. | |
| void | SigSegvExceptionThrower (void *) |
| Une methode static pour rattrapper les SIGSEGV. | |
Static Public Attributes | |
| PsnSharedMemoryManager * | STLSharedMemoryManager = NULL |
| pointeur sur le gestionnaire de mémoire pour la partie STL partagée avec cohérance forte | |
| PsnRelaxedMemoryManager * | outputDataSharedMemoryManager = NULL |
| pointeur sur le gestionnaire de mémoire pour les données associées aux outputs | |
| PsnCoherantMemoryManager * | controlersDataSharedMemoryManager = NULL |
| pointeur sur les gestionnaire de memoire gérant les données partagées entre les controleurs | |
Protected Attributes | |
| int | numSegCoherenceForte |
| Le numero de segment géré par cohérance forte. | |
| size_t | _tailleAlloueParSegment |
| taille des deux zones de mémoire gérées par Mome | |
| int * | _zoneCoherenceForte |
| Pointeur sur la zone de mémoire dans laquelle est mappé le segment géré par cohérance forte. | |
| PsnOutputOffsetTable * | myOutputOffsetTable |
| La table de correspondance entre une output et son offset dans la mémoire partagée. | |
| PsnUniqueCreator * | _sharedObjectFactory |
| L'usine à fabriquer des objets partagés. | |
| PsNameServer * | ancServeur |
| L'ancien serveur de nom. | |
| PsnBroadcastManager * | _myBroadcastManager |
| le gestionnaire de communication avec les autres controleurs | |
Static Protected Attributes | |
| PsnCoherantMemoryManager * | strictMemoryManager = NULL |
| pointeur sur le gestionnaire de mémoire à cohérance forte. | |
| PsnRelaxedMemoryManager * | weakMemoryManager = NULL |
| pointeur sur le gestionnaire de mémoire à cohérance relachée. | |
| char * | nomExecutable = "none" |
| nom de l'executable, chemin complet compris | |
Definition at line 36 of file PsMomeController.h.
|
||||||||||||
|
Le constructeur. Le constructeur du processus de numero 0 dans la Mome doit être appellé avant les autres Definition at line 51 of file PsMomeController.cxx. References _myBroadcastManager, _sharedObjectFactory, _tailleAlloueParSegment, _zoneCoherenceForte, controlersDataSharedMemoryManager, PsObjectDescriptor::getName(), PsName::getNameServer(), PsSimulatedObject::getObjectDescriptor(), myOutputOffsetTable, PsnUniqueCreator::newPsNameServer(), PsnUniqueCreator::newPsnOutputOffsetTable(), nomExecutable, PsDate, PsName::setNameServer(), STLSharedMemoryManager, and strictMemoryManager.
00051 : 00052 PsDistributedController(initialObjects, initialDate) 00053 { 00054 #ifdef _MOME 00055 chdir(g_dirname(nomExecutable)); 00056 cout<<"I am controler "<<MomeMe<<"(named "<<getObjectDescriptor().getName()<<") of "<<MomeNumberOfProcessors<<" of thread "<<pthread_self()<<endl; 00057 _tailleAlloueParSegment = 4*1024*MomePageSize; 00058 int numSeg = MomeAllocateSharedSegment(2*_tailleAlloueParSegment); 00059 //cout<<"Me suis alloué un segment partagé"<<endl; 00060 void * zone = memalign(4096,2*_tailleAlloueParSegment); 00061 //cout<<"Me suis alloué la mémoire correspondante"<<endl; 00062 void * buffer = MomeMapMemory(zone,2*_tailleAlloueParSegment,MomeWrite,MAP_FIXED,numSeg,0); 00063 00064 _zoneCoherenceForte = (int *) buffer ; 00065 00066 if (MomeMe!=0) { 00067 MomeBarrier(); 00068 cerr<<"passage de la barrière****************************************"<<endl; 00069 } 00070 00071 cerr<<"gestion des adresses depuis "<<buffer<<" et jusqu'à "<<(void *)((unsigned int)buffer+2*_tailleAlloueParSegment)<<endl; 00072 //sleep(3); 00073 00074 strictMemoryManager = new PsnCoherantMemoryManager(buffer,_tailleAlloueParSegment, MomePageSize ); 00075 00076 cerr<<"Mémoire cohérante crée"<<endl; 00077 00078 STLSharedMemoryManager = strictMemoryManager; 00079 controlersDataSharedMemoryManager = strictMemoryManager; 00080 00081 cerr<<"Initialisation des données partagées"<<endl; 00082 _sharedObjectFactory = new PsnUniqueCreator(controlersDataSharedMemoryManager); 00083 00084 //si MomeMe == 0, on sait qu'on est déjà en exclusion 00085 cerr<<"Unique creator créé "<<endl; 00086 00087 /* on initialise le gestionnaire de broadcast avant le gestionnaire de noms pour obtenir un bon verrou */ 00088 cerr<<"initialisation du broadcastManager"<<endl; 00089 00090 _myBroadcastManager = new PsnBroadcastManager(*_sharedObjectFactory); 00091 00092 //Feinte : rendu ici, sur tous les noeuds, le PsNameServer doit être le même, au niveau contenu 00093 //On le recopie donc dans un PsNameServer partagé, et on vérifie 00094 cerr<<"Nouveau serveur de nom a créer "<<endl; 00095 00096 PsMomeNameServer * unAutreServeur = _sharedObjectFactory->newPsNameServer(MomeMe+1); 00097 PsNameServer * oldNameServer = PsName::getNameServer() ; 00098 cerr<<"nouveau serveur de nom créé"<<endl; 00099 PsName::setNameServer ( unAutreServeur ) ; 00100 delete oldNameServer ; 00101 00102 00103 myOutputOffsetTable = _sharedObjectFactory->newPsnOutputOffsetTable(); 00104 00105 assert(myOutputOffsetTable != NULL ) ; 00106 00107 if(MomeMe==0) { 00108 cerr<<"Arrivé à la barrière de fin d'initialisation"<<endl; 00109 MomeBarrier(); 00110 cerr<<"Passage de la barrière****************************************"<<endl; 00111 } 00112 //gestion des SIGSEGV 00113 // MomeSIGSEGVHandler( & PsMomeController::SigSegvExceptionThrower ); 00114 00115 #endif 00116 } |
|
|
Le destructeur. Le destructeur remet en place le contexte, notamment au niveau du serveur de noms Symbolique Definition at line 118 of file PsMomeController.cxx. References PsName::getNameServer(), PsClassicalNameServer, PsName::setNameServer(), and weakMemoryManager.
00118 {
00119 #ifdef _MOME
00120 cout<<"PsMomeController::~PsMomeController()"<<endl;
00121 PsClassicalNameServer * unAutreServeur = new PsClassicalNameServer(PsName::getNameServer()->getCanonicalRepresentation());
00122 PsNameServer * oldNameServer = PsName::getNameServer() ;
00123 PsName::setNameServer(unAutreServeur);
00124 MomeBarrier(); //tout le monde doit avoir sa copie du serveur de nom avant la destruction
00125 if (MomeMe==0) delete oldNameServer ;
00126 cout<<"destruction du Serveur de nom spécifique Mome"<<endl;
00127 destroyControlledObjects();
00128 cout<<"PsMomeController::~PsMomeController() Les objets controlés ont été détruits"<<endl;
00129 MomeBarrier() ;
00130 delete weakMemoryManager ;
00131 //if (MomeMe==0) delete myOutputOffsetTable;
00132 MomeFinalize(0);
00133 #endif
00134 }
|
|
|
Redéfinition pour diffuser les événements système aux controleurs grace au {PsnBroacastManager}.
Reimplemented from PsController. Definition at line 309 of file PsMomeController.cxx. References _myBroadcastManager, PsController::actOnSystemEvent(), PsnBroadcastManager::broadcastEvent(), PsEvent::clone(), controlersDataSharedMemoryManager, PsSimulatedObject::getName(), PsnSharedMemoryManager::globalAddressToLocal(), and PsEvent::receiver.
00309 {
00310 #ifdef _MOME
00311 #ifdef _DEBUGEVT
00312 cerr<<"PsMomeController::actOnSystemEvent"<<evt<<endl;
00313 #endif
00314 if(evt->receiver == getName()) {//il faut diffuser l'évenement
00315 HeapStackTop toto(controlersDataSharedMemoryManager);
00316 _myBroadcastManager->broadcastEvent(controlersDataSharedMemoryManager->globalAddressToLocal(evt->clone()));
00317 }
00318 else {
00319 PsDistributedController::actOnSystemEvent ( evt ) ;
00320 }
00321 #else
00322 PsDistributedController::actOnSystemEvent ( evt ) ;
00323 #endif
00324 }
|
|
||||||||||||
|
redefinition de la méthode de broadcast
Definition at line 352 of file PsMomeController.cxx.
00352 {
00353 assert (false) ; // non implementé
00354 }
|
|
|
Redéfinition pour intégrer la synchronisation de la mémoire, l'extraction des outputs pour la propagation des signaux etc et la synchronisation avec le {PsnBroacastManager}.
Reimplemented from PsController. Definition at line 255 of file PsMomeController.cxx. References PsController::computeNextSimulationStep(), PsnRelaxedMemoryManager::sync(), and weakMemoryManager.
00255 {
00256 #ifdef _MOME
00257 #ifdef _DEBUGEXEC
00258 cerr<<"PsMomeController::computeNextSimulationStep synchronisation de la mémoire "<<endl;
00259 #endif
00260 weakMemoryManager->sync();
00261 #ifdef _DEBUGEXEC
00262 cerr<<"PsMomeController::computeNextSimulationStep synchronisation des messages et des événements "<<endl;
00263 #endif
00264
00265 #ifdef _DEBUGEXEC
00266 cerr<<"PsMomeController::computeNextSimulationStep appel de la méthode ancêtre "<<endl;
00267 #endif
00268 PsDistributedController::computeNextSimulationStep();
00269 #ifdef _DEBUGEXEC
00270 cerr<<"PsMomeController::computeNextSimulationStep fait"<<endl;
00271 #endif
00272 #endif
00273 }
|
|
|
redéfinition de createControlledObjects pour installer le gestionnaire de mémoire à cohérance relachée
Reimplemented from PsDistributedController. Definition at line 335 of file PsMomeController.cxx. References _sharedObjectFactory, _tailleAlloueParSegment, _zoneCoherenceForte, PsDistributedController::createControlledObjects(), getOutputHistorySize(), outputDataSharedMemoryManager, and weakMemoryManager.
00336 {
00337 #ifdef _MOME
00338 cerr<<"PsMomeController::createControlledObjects"<<endl;
00339 weakMemoryManager = new PsnRelaxedMemoryManager((int *)(((int)_zoneCoherenceForte)+_tailleAlloueParSegment),
00340 _tailleAlloueParSegment,
00341 MomePageSize,
00342 _sharedObjectFactory,
00343 getOutputHistorySize() );
00344
00345 outputDataSharedMemoryManager = weakMemoryManager;
00346
00347 cerr<<"PsMomeController::createControlledObjects appel ancetre"<<endl;
00348 PsDistributedController::createControlledObjects( subTree ) ;
00349 cerr<<"PsMomeController::createControlledObjects fait"<<endl;
00350 #endif
00351 }
|
|
||||||||||||
|
Création des données d'une output. Cette méthode permet d'assuer que les données relatives à une output ne sont créées qu'un seule fois à travers le cluster de machine. Le premier appel crée effectivement les données, les suivants ne font que renvoyer des références sur les données créées au préalable. Definition at line 180 of file PsMomeController.cxx. References PsnOutputOffsetTable::declareOutput(), pair< T1, T2 >::first, PsnOutputOffsetTable::getOutputOffset(), PsnSharedMemoryManager::globalAddressToLocal(), PsnSharedMemoryManager::localAddressToGlobal(), PsnOutputOffsetTable::lock(), myOutputOffsetTable, outputDataSharedMemoryManager, pair< T1, T2 >::second, and PsnOutputOffsetTable::unlock(). Referenced by PsMomeOutput< Type >::PsMomeOutput().
00180 {
00181 #ifdef _MOME
00182 PsnOutputSharedData * res;
00183 #ifdef _DEBUGCREATIONOUTPUT
00184 cerr<<"on cherche "<<object<<","<<name<<endl;
00185 #endif
00186 pair<bool,unsigned int> present = myOutputOffsetTable->getOutputOffset(object,name);
00187 if (present.first) {
00188 #ifdef _DEBUGCREATIONOUTPUT
00189 cerr<<"on a retrouvé la output "<<object<<","<<name<<endl;
00190 #endif
00191 res = (PsnOutputSharedData * )outputDataSharedMemoryManager->localAddressToGlobal(present.second);
00192 }
00193 else {
00194 myOutputOffsetTable->lock();
00195 #ifdef _DEBUGCREATIONOUTPUT
00196 cerr<<"On va déclarer la output "<<object<<","<<name<<endl;
00197 #endif
00198 res = new PsnOutputSharedData();
00199 #ifdef _DEBUGCREATIONOUTPUT
00200 cerr<<"On a déclaré la structure de donnée"<<endl;
00201 #endif
00202 myOutputOffsetTable->declareOutput(object,
00203 name,
00204 outputDataSharedMemoryManager->globalAddressToLocal(res));
00205 #ifdef _DEBUGCREATIONOUTPUT
00206 cerr<<"On a déclaré la output "<<object<<","<<name<<endl;
00207 #endif
00208 myOutputOffsetTable->unlock();
00209 }
00210 return res;
00211 #else
00212 return 0 ;
00213 #endif
00214 }
|
|
|
Une méthode pour gérer les errors.
|
|
|
Recuperation de la taille de la file pour une output nécessaire pour le controleur. aligns the défault calculated value so that the same memory pages are used for the same minor frames Reimplemented from PsController. Definition at line 326 of file PsMomeController.cxx. References PsController::_nbStepsByCycle, and PsController::getOutputHistorySize(). Referenced by createControlledObjects().
00326 {
00327 //on aligne sur un multiple de nbMinor
00328 int resul = PsDistributedController::getOutputHistorySize() ;
00329 if (resul % _nbStepsByCycle != 0) {
00330 resul = (resul / _nbStepsByCycle + 1) * _nbStepsByCycle ;
00331 }
00332 return 2 * resul;
00333 }
|
|
|
Redéfinition pour gérer les initialisations manquées à cause de la distribution. à la fin de cette initialisation, une synchronisation forte est faite sur la mémoire Reimplemented from PsController. Definition at line 137 of file PsMomeController.cxx. References PsController::_stepPeriod, _tailleAlloueParSegment, map< PsName, typeObjet * >::begin(), map< PsName, typeObjet * >::clear(), map< PsName, PsnReferenceObjectHandle * >::empty(), map< PsName, typeObjet * >::end(), PsController::init(), PsnRelaxedMemoryManager::strongSync(), PsnRelaxedMemoryManager::strongSynchronizeRegion(), PsDistributedController::tableDesNonInitialises, and weakMemoryManager.
00137 {
00138 #ifdef _MOME
00139 MomeBarrier();
00140 cerr<<"PsMomeController::init() classique tentée "<<_stepPeriod<<endl;
00141 PsDistributedController::init();
00142 cerr<<"PsMomeController::init() : frequency locale : "<<_stepPeriod<<endl;
00143 while (! tableDesNonInitialises.empty ()) {
00144 cerr<<"Nouvelle initialisation des objets dont l'init a échouée"<<endl;
00145 weakMemoryManager->strongSynchronizeRegion(0,_tailleAlloueParSegment);
00146 //syncAttributesAndEvents();
00147 PsNameToPointerMap<PsSimulatedObject> aInitialiser = tableDesNonInitialises ;
00148 tableDesNonInitialises.clear () ;
00149 PsNameToPointerMap<PsSimulatedObject>::iterator pNI ;
00150 //cout<<"*"<<endl;
00151 for (pNI = aInitialiser.begin () ;
00152 pNI != aInitialiser.end () ;
00153 pNI ++) {
00154 cout<<pNI->second->getName()<<" " ;
00155 initObjetReferentiel (pNI->second) ;
00156 cout<<".";
00157 }
00158 cout<<endl;
00159 }
00160 cerr<<"PsMomeController::init Synchronisation ";
00161 weakMemoryManager->strongSync();
00162 cerr<<"efffective"<<endl;
00163 #endif
00164 }
|
|
||||||||||||
|
A utiliser avec précaution (les multiples références ne sont pas gérées par cette version de la méthode) lors de la destruction d'une output.
Definition at line 216 of file PsMomeController.cxx. References PsnOutputOffsetTable::invalidateOutput(), PsnOutputOffsetTable::lock(), myOutputOffsetTable, and PsnOutputOffsetTable::unlock(). Referenced by PsMomeOutput< Type >::~PsMomeOutput().
00216 {
00217 #ifdef _MOME
00218 //cerr<<"PsMomeController::invalidateOutput("<<object<<","<<name<<")"<<endl;
00219 myOutputOffsetTable->lock();
00220 myOutputOffsetTable->invalidateOutput(object,name);
00221 myOutputOffsetTable->unlock();
00222 //cerr<<"PsMomeController::invalidateOutput done"<<endl;
00223 #endif
00224 }
|
|
|
Redefinition to create a {PsnMomeMirrorObjectHandle}.
Implements PsDistributedController. Definition at line 275 of file PsMomeController.cxx. References _myBroadcastManager, and strictMemoryManager.
00275 {
00276 #ifdef _MOME
00277 return new PsnMomeMirrorObjectHandle(obj, *_myBroadcastManager, *strictMemoryManager);
00278 #else
00279 return 0 ;
00280 #endif
00281 }
|
|
||||||||||||||||
|
Redefinition to create a {PsnMomeReferenceObjectHandle}.
Reimplemented from PsController. Definition at line 283 of file PsMomeController.cxx.
00286 {
00287 #ifdef _MOME
00288 return new PsnMomeReferenceObjectHandle(obj, controller, signalDispatcher) ;
00289 #else
00290 return 0 ;
00291 #endif
00292 }
|
|
|
Redefined so as to collect event received by the BroadcastManager {PsnBroadcastManager}.
Reimplemented from PsSimulatedObject. Definition at line 294 of file PsMomeController.cxx. References _myBroadcastManager, PsnBroadcastManager::dispatchEventsOfList(), PsSimulatedObject::getObjectDescriptor(), and syncAttributesAndEvents().
00294 {
00295 #ifdef _MOME
00296 syncAttributesAndEvents();
00297 #ifdef _DEBUGEVT
00298 cerr<<"PsMomeController::prepareEventProcessing de "<<getObjectDescriptor().Processus()<<endl;
00299 #endif
00300 //dispatch events received from the broadcast manager
00301 _myBroadcastManager->dispatchEventsOfList(*this);
00302 #ifdef _DEBUGEVT
00303 cerr<<"PsMomeController::traiterEvt : events dispatched"<<endl;
00304 #endif
00305 #endif
00306 }
|
|
|
Une methode static pour rattrapper les SIGSEGV.
Definition at line 46 of file PsMomeController.cxx.
00046 {
00047 cerr<<"PsMomeController::SigSegvExceptionThrower"<<endl;
00048 exit(0);
00049 }
|
|
|
Synchroniser toutes les outputs, tous les paramètres de controle, tous les messages et tous les événements.
Definition at line 230 of file PsMomeController.cxx. References _myBroadcastManager, and PsnBroadcastManager::sync(). Referenced by prepareEventProcessing().
00231 {
00232 #ifdef _MOME
00233 //Synchroniser les données partagées avec les données locales
00234 // PsNameToPointerMap<PsnMirrorObjectHandle>::iterator i;
00235 // PsNameToPointerMap<PsOutputNT> * tableDesOutputs;
00236 // PsNameToPointerMap<PsOutputNT>::iterator ii;
00237 // PsNameToPointerMap<PsControlParameterNT> * tableDesParametres;
00238 // PsNameToPointerMap<PsControlParameterNT>::iterator iii;
00239 // for(i=_mirrorObjectsMap.begin();i!=_mirrorObjectsMap.end();i++){
00240 // tableDesOutputs=((*i).second)->objetSimul()->TabOutputs();
00241 // for(ii=tableDesOutputs->begin();ii!=tableDesOutputs->end();ii++) {
00242 // (*ii).second->extract();
00243 // //cout<<(*ii).first<<" : "<<*((*ii).second)<<endl;
00244 // }
00245 // tableDesParametres=((*i).second)->objetSimul()->TabParams();
00246 // for(iii=tableDesParametres->begin();iii!=tableDesParametres->end();iii++) {
00247 // (*iii).second->extract();
00248 // //cout<<(*ii).first<<" : "<<*((*ii).second)<<endl;
00249 // }
00250 // }
00251 _myBroadcastManager->sync();
00252 #endif
00253 }
|
|
|
Déterminer le gestionnaire de mémoire utilisé pour une adresse donnée.
Definition at line 166 of file PsMomeController.cxx. References PsnSharedMemoryManager::inAdressSpace(), strictMemoryManager, and weakMemoryManager. Referenced by PsString::alloue().
00166 {
00167 #ifdef _MOME
00168 if(strictMemoryManager!=NULL) {
00169 if(strictMemoryManager->inAdressSpace(ptr)) return strictMemoryManager;
00170 }
00171 if (weakMemoryManager!=NULL) {
00172 if(weakMemoryManager->inAdressSpace(ptr)) return weakMemoryManager;
00173 }
00174 return 0 ;
00175 #else
00176 return 0 ;
00177 #endif
00178 }
|
|
|
le gestionnaire de communication avec les autres controleurs
Definition at line 147 of file PsMomeController.h. Referenced by actOnSystemEvent(), newPsnMirrorObjectHandle(), prepareEventProcessing(), PsMomeController(), and syncAttributesAndEvents(). |
|
|
L'usine à fabriquer des objets partagés.
Definition at line 141 of file PsMomeController.h. Referenced by createControlledObjects(), and PsMomeController(). |
|
|
taille des deux zones de mémoire gérées par Mome
Definition at line 126 of file PsMomeController.h. Referenced by createControlledObjects(), init(), and PsMomeController(). |
|
|
Pointeur sur la zone de mémoire dans laquelle est mappé le segment géré par cohérance forte.
Definition at line 129 of file PsMomeController.h. Referenced by createControlledObjects(), and PsMomeController(). |
|
|
L'ancien serveur de nom.
Definition at line 144 of file PsMomeController.h. |
|
|
pointeur sur les gestionnaire de memoire gérant les données partagées entre les controleurs
Definition at line 22 of file PsMomeController.cxx. Referenced by actOnSystemEvent(), and PsMomeController(). |
|
|
La table de correspondance entre une output et son offset dans la mémoire partagée.
Definition at line 138 of file PsMomeController.h. Referenced by creerDonneesOutput(), invalidateOutput(), and PsMomeController(). |
|
|
nom de l'executable, chemin complet compris
Definition at line 25 of file PsMomeController.cxx. Referenced by PsMomeController(). |
|
|
Le numero de segment géré par cohérance forte.
Definition at line 123 of file PsMomeController.h. |
|
|
pointeur sur le gestionnaire de mémoire pour les données associées aux outputs
Definition at line 21 of file PsMomeController.cxx. Referenced by createControlledObjects(), creerDonneesOutput(), and PsMomeOutput< Type >::PsMomeOutput(). |
|
|
pointeur sur le gestionnaire de mémoire pour la partie STL partagée avec cohérance forte
Definition at line 20 of file PsMomeController.cxx. Referenced by mySharedAllocatorT< T >::allocate(), mySharedAllocator::allocate(), mySharedAllocatorT< T >::deallocate(), mySharedAllocator::deallocate(), and PsMomeController(). |
|
|
pointeur sur le gestionnaire de mémoire à cohérance forte. Donnée de classe car on suppose qu'il n'y a qu'un controleur Mome par processus, et que la méthode de classe whichMomeMemoryManager en a besoin. Definition at line 23 of file PsMomeController.cxx. Referenced by newPsnMirrorObjectHandle(), PsMomeController(), and whichSharedMemoryManager(). |
|
|
pointeur sur le gestionnaire de mémoire à cohérance relachée. Donnée de classe car on suppose qu'il n'y a qu'un controleur Mome par processus, et que la méthode de classe whichMomeMemoryManager en a besoin. Definition at line 24 of file PsMomeController.cxx. Referenced by computeNextSimulationStep(), createControlledObjects(), init(), whichSharedMemoryManager(), and ~PsMomeController(). |
| Documentation generated on Mon Nov 25 15:26:09 2002 |
Generated with doxygen 1.2.12 by Dimitri van Heesch , 1997-2001 |