mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
HOMAG patch for OCCT 6.7.0
This commit is contained in:
55
src/NCollection/NCollection_WinHeapAllocator.hxx
Normal file
55
src/NCollection/NCollection_WinHeapAllocator.hxx
Normal file
@@ -0,0 +1,55 @@
|
||||
// File: NCollection_WinHeapAllocator.hxx
|
||||
// Created: 22.07.11
|
||||
// Author: Kirill GAVRILOV
|
||||
// Copyright: Open Cascade 2011
|
||||
|
||||
#ifndef NCollection_WinHeapAllocator_HeaderFile
|
||||
#define NCollection_WinHeapAllocator_HeaderFile
|
||||
|
||||
#include <NCollection_BaseAllocator.hxx>
|
||||
|
||||
//! This memory allocator creates dedicated heap for allocations.
|
||||
//! This technics available only on Windows platform
|
||||
//! (no alternative on Unix systems).
|
||||
//! It may be used to take control over memory fragmentation
|
||||
//! because on destruction ALL allocated memory will be released
|
||||
//! to the system.
|
||||
//!
|
||||
//! This allocator can also be created per each working thread
|
||||
//! hovewer it real multi-threading performance is dubious.
|
||||
//!
|
||||
//! Notice that this also means that existing pointers will be broken
|
||||
//! and you shoould control that allocator is alive along all objects
|
||||
//! allocated with him.
|
||||
class NCollection_WinHeapAllocator : public NCollection_BaseAllocator
|
||||
{
|
||||
public:
|
||||
|
||||
//! Main constructor
|
||||
Standard_EXPORT NCollection_WinHeapAllocator (const size_t theInitSizeBytes = 0x80000);
|
||||
|
||||
Standard_EXPORT virtual ~NCollection_WinHeapAllocator();
|
||||
|
||||
Standard_EXPORT virtual void* Allocate (const Standard_Size theSize);
|
||||
|
||||
Standard_EXPORT virtual void Free (void* theAddress);
|
||||
|
||||
// Declaration of CASCADE RTTI
|
||||
DEFINE_STANDARD_RTTI(NCollection_WinHeapAllocator)
|
||||
|
||||
private:
|
||||
//! Copy constructor - prohibited
|
||||
NCollection_WinHeapAllocator (const NCollection_WinHeapAllocator& );
|
||||
|
||||
private:
|
||||
#if(defined(_WIN32) || defined(__WIN32__))
|
||||
void* myHeapH;
|
||||
#endif
|
||||
Standard_Boolean myToZeroMemory;
|
||||
|
||||
};
|
||||
|
||||
// Definition of HANDLE object using Standard_DefineHandle.hxx
|
||||
DEFINE_STANDARD_HANDLE (NCollection_WinHeapAllocator, NCollection_BaseAllocator)
|
||||
|
||||
#endif //NCollection_WinHeapAllocator_HeaderFile
|
Reference in New Issue
Block a user