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 PsnUniqueCreatorHEADER 00019 #define PsnUniqueCreatorHEADER 00020 00021 class PsnUniqueCreatorData; 00022 class PsnMomeMemoryManager; 00023 class PsnOutputOffsetTable; 00024 00025 #include <PsnBroadcastManager.h> 00026 #include <PsnCoherantMemoryManager.h> 00027 #include <PsnRelaxedMemoryManager.h> 00028 #include <PsMomeNameServer.h> 00029 00030 #ifdef _SGI 00031 #include <stddef.h> 00032 #else 00033 #include <cstddef> 00034 #endif 00035 00040 class PsnUniqueCreator { 00041 public: 00042 //idée : on ne stocke dans la memoire que des offsets d'adresses, on stocke l'adresse de base pour chaque processus (de manière distribuée) et on gère de cette manière la création. 00044 PsnUniqueCreator(PsnCoherantMemoryManager *); 00047 PsMomeNameServer * newPsNameServer(int i); 00050 PsnUniqueCreatorData * newPsnUniqueCreatorData(); 00052 PsnOutputOffsetTable * newPsnOutputOffsetTable(); 00057 PsnBroadcastManager::_myTypeOfTable * newbroadcastManagerTable(int i); 00058 00059 // /** Creation de la table des coherance pour la mémoire à cohérance relachée */ 00060 // PsnMomeWeakMemoryManager::coheranceType * newcoheranceType(int size); 00061 00063 PsnRelaxedMemoryManager::PageState * newPageStateTable ( int size ) ; 00064 00066 void deletePageStateTable ( int size ) ; 00067 00069 int * newWhenSyncedTable ( int size ) ; 00070 00072 void deleteWhenSyncedTable ( int size ) ; 00073 00074 protected: 00076 PsnCoherantMemoryManager * _myDataMemoryManager; 00078 PsnUniqueCreatorData * _mySharedData; 00079 }; 00080 00083 class PsnUniqueCreatorData { 00084 public: 00086 void * operator new(size_t size, const PsnCoherantMemoryManager * aMemoryManager); 00088 unsigned int myNameServer; 00090 unsigned int _myOutputServer; 00092 unsigned int _broadcastManagerTables[6]; 00094 unsigned int _coheranceTable; 00096 unsigned int _pageStateTable ; 00098 int _numberOfPageStateTable ; 00100 unsigned int _whenSyncedTable ; 00102 int _numberOfWhenSyncedTable ; 00103 }; 00104 #endif
| Documentation generated on Mon Nov 25 15:25:01 2002 |
Generated with doxygen 1.2.12 by Dimitri van Heesch , 1997-2001 |