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

PsnNew.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 PsnNewHEADER
00019 #define PsnNewHEADER
00020 
00021 #include <new>
00022 #include <pthread.h>
00023 
00024 #include "PsName.h"
00025 
00026 class PsnMemoryManager ;
00027 class PsnSharedMemoryManager ;
00028 class PsnSystemMemoryManager ;
00029 
00031 class HeapStackTop {
00032 public:
00034    HeapStackTop(PsnMemoryManager * newTop);
00035 
00037    virtual ~HeapStackTop();
00038  
00040    static pthread_key_t globalMemoryManagerKey;
00041 
00043    static pthread_key_t initialiseGlobalMemoryManagerKey() ;
00044 
00046    static pthread_key_t initialiseFreedKey() ;
00047 
00049    static PsnSystemMemoryManager * getSystemMemoryManager() ;
00050 
00052    void * operator new(size_t);
00053 
00054    /* redefine deallocation for fast allocation - deallocation cycles */
00055    void operator delete(void*, size_t);
00056 protected:
00058    static pthread_key_t freedKey;
00059 
00061    friend class PsController ;
00062 
00064    void * _oldMemoryManager;
00065 };   
00066 
00067 #ifndef _SGI
00068 void *operator new (size_t) throw (bad_alloc);
00069 void *operator new[] (size_t) throw (bad_alloc);
00070 void operator delete (void *) throw();
00071 void operator delete[] (void *) throw();
00072 void *operator new (size_t, const nothrow_t&) throw();
00073 void *operator new[] (size_t, const nothrow_t&) throw();
00074 void operator delete (void *, const nothrow_t&) throw();
00075 void operator delete[] (void *, const nothrow_t&) throw();
00076 #endif
00077 
00078 #endif
00079 
00080 
00081 

logo OpenMask

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

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