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

PsnUniqueCreator.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 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

logo OpenMask

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

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