#include <PsnMemoryElementDescriptor.h>
Public Methods | |
| PsnMemoryElementDescriptor () | |
| Constructeur vide. | |
| PsnMemoryElementDescriptor (const PsnMemoryElementDescriptor &) | |
| Constructeur par recopie. | |
| bool | inAdressSpace (unsigned int ptr) const |
| is an adress contained in the described memory block | |
| void * | operator new (size_t size, PsnMemoryManager *memoryManager) |
| redefining new for allocation in a myMemoryManager | |
| void * | operator new (size_t size, PsnSharedMemoryManager *memoryManager=0) |
| redefining new for allocation in a shared memory manager (avoid remembering size) | |
| void * | operator new (size_t size, void *here) |
| redefining new for allocation in a free space | |
| void | operator delete (void *, size_t) |
| redefining delete to release use freed a a release buffer for rapid reallocation | |
Public Attributes | |
| unsigned int | base |
| La base, en relatif dans la mémoire. | |
| unsigned int | size |
| size of the memory element described | |
| unsigned int | next |
| l'adresse, dans la mémoire gérée par myMemoryManager, du prochain descripteur d'élément de mémoire | |
Definition at line 33 of file PsnMemoryElementDescriptor.h.
|
|
Constructeur vide.
Definition at line 30 of file PsnMemoryElementDescriptor.cxx.
00031 {
00032 //cerr<<"PsnMemoryElementDescriptor::PsnMemoryElementDescriptor : constructeur vide"<<endl;
00033 }
|
|
|
Constructeur par recopie.
Definition at line 35 of file PsnMemoryElementDescriptor.cxx.
|
|
|
is an adress contained in the described memory block
Definition at line 48 of file PsnMemoryElementDescriptor.h. Referenced by PsnThreadMemoryManager::inAdressSpace(), and PsnDescriptorMemoryManager::inAdressSpace().
|
|
||||||||||||
|
redefining delete to release use freed a a release buffer for rapid reallocation
Definition at line 78 of file PsnMemoryElementDescriptor.cxx. References PsnMemoryManager::freeSizeRemembered(), HeapStackTop::globalMemoryManagerKey, PsnSharedMemoryManager::lockIfNeeded(), PsnSharedMemoryManager::mfree(), size, and PsnSharedMemoryManager::unlockIfNeeded().
00079 {
00080 #ifdef _DEBUGMEMORYMANAGEMENT
00081 cerr<<"PsnMemoryElementDescriptor::operator delete"<<endl;
00082 #endif
00083
00084 PsnMemoryManager * freeFrom = (PsnMemoryManager *) (pthread_getspecific( HeapStackTop::globalMemoryManagerKey ) );
00085
00086 #ifdef _DEBUGMEMORYMANAGEMENT
00087 assert ( freeFrom != NULL ) ;
00088 #endif
00089
00090 PsnSharedMemoryManager * freeFromShared = dynamic_cast<PsnSharedMemoryManager *> (freeFrom) ;
00091
00092 if ( freeFromShared != NULL )
00093 {
00094 #ifdef _MOME
00095 assert(dynamic_cast<PsnRelaxedMemoryManager *>(freeFrom) == NULL) ;
00096 #endif
00097 freeFromShared->lockIfNeeded();
00098
00099 freeFromShared->mfree( addr , size ) ;
00100
00101 freeFromShared->unlockIfNeeded();
00102 }
00103 else
00104 {
00105 freeFrom->freeSizeRemembered ( addr ) ;
00106 }
00107 #ifdef _DEBUGALLOCATIONMOME
00108 cerr<<"PsnMemoryElementDescriptor::operator delete done"<<endl;
00109 #endif
00110 }
|
|
||||||||||||
|
redefining new for allocation in a free space
Definition at line 44 of file PsnMemoryElementDescriptor.cxx.
00044 {
00045 return here ;
00046 }
|
|
||||||||||||
|
redefining new for allocation in a shared memory manager (avoid remembering size) we suppose here that a lock has been acquired for the memory manager Definition at line 60 of file PsnMemoryElementDescriptor.cxx. References PsnSystemMemoryManager::allocateSizeRemembered(), HeapStackTop::getSystemMemoryManager(), PsnSharedMemoryManager::mmalloc(), and size.
00061 {
00063 if (memoryManager != 0)
00064 {
00065 #ifdef _MOME
00066 assert(dynamic_cast<PsnRelaxedMemoryManager *>(memoryManager) == NULL) ;
00067 #endif
00068 return memoryManager->mmalloc(size);
00069 }
00070 else
00071 {
00072 return HeapStackTop::getSystemMemoryManager()->allocateSizeRemembered (size) ;
00073 }
00074 }
|
|
||||||||||||
|
redefining new for allocation in a myMemoryManager
Definition at line 50 of file PsnMemoryElementDescriptor.cxx. References PsnMemoryManager::allocateSizeRemembered(), and size.
00051 {
00052 assert ( memoryManager != NULL) ;
00053 assert ( dynamic_cast<PsnSharedMemoryManager *> (memoryManager) == NULL ) ;
00054
00055 return memoryManager->allocateSizeRemembered (size) ;
00056 }
|
|
|
|
l'adresse, dans la mémoire gérée par myMemoryManager, du prochain descripteur d'élément de mémoire
Definition at line 45 of file PsnMemoryElementDescriptor.h. Referenced by PsnThreadMemoryManager::addInFree(), PsnSecondarySharedMemoryManager::addInThisFree(), PsnThreadMemoryManager::allocateSizeRemembered(), PsnDescriptorMemoryManager::allocateSizeRemembered(), PsnThreadMemoryManager::getFromFree(), PsnSecondarySharedMemoryManager::getFromThisFree(), PsnThreadMemoryManager::inAdressSpace(), PsnDescriptorMemoryManager::inAdressSpace(), PsnDescriptorMemoryManager::PsnDescriptorMemoryManager(), PsnSharedArrayMemoryManager::PsnSharedArrayMemoryManager(), PsnSharedFreeStoreMemoryManager::PsnSharedFreeStoreMemoryManager(), and PsnThreadMemoryManager::PsnThreadMemoryManager(). |
|
| Documentation generated on Mon Nov 25 15:26:08 2002 |
Generated with doxygen 1.2.12 by Dimitri van Heesch , 1997-2001 |