Class TEMemMap (unit E_MemMap)

Inherits from

TComponent

Map to memory

Constructors


Constructor Create(Aowner : TComponent);



Functions

Function CreateMemMap(Const MapName : String; Const MapSize : Cardinal; Const MapData ) : Boolean;

Create a new memory map

Create a new memory mapping


Function CreateMutex(Const MutexName : String) : Boolean;

Create a mutex for sychronizing access

Destructor Destroy;


Procedure EnterCriticalSection;

Use the mutex

Procedure LeaveCriticalSection;

Release the mutex

Function MapExisting(Const MapName : String; Const MapSize : Cardinal) : Boolean;

Map to existing memory map

map to an existing memory map described by MapName


Procedure RaiseMappingException;

duh?

Function Seek(Const OffSet : Cardinal) : Boolean;

seek to an offset in the memory map

seek to a different position in map (0.


Function SetMapError : Boolean;

Internal flag

Procedure SetMemSize(Size : Cardinal);


Properties

property MapError : Integer

The mapped memory

property MaxSeeks : Cardinal

system returned page size

property MemMap : Pointer


property MemSize : Cardinal


property PageSize : Cardinal

Memory size to allocate

Events

Variables

FhFile : THandle;


FhMap : THandle;

File handle, hMemMap when simple memory

FhMutex : THandle;

Error returned

FInMutex : Boolean;

Mutex handle for sharing

FMap : Pointer;

Mapping handle

FMapError : Integer;

Maximum seeks available,(FMemSize DIV PageSize)-1

FMapSize : Cardinal;

Memory Pointer

FMaxSeeks : Cardinal;

Minimum System allocation size

FMemSize : Cardinal;

Mapping Page Size

FPageSize : Cardinal;

Maximum size allocated, >=FileSize when a file


Constructors


Constructor Create(Aowner : TComponent);


Functions


Function CreateMemMap(Const MapName : String; Const MapSize : Cardinal; Const MapData ) : Boolean;

Create a new memory map

Create a new memory mapping


Function CreateMutex(Const MutexName : String) : Boolean;

Create a mutex for sychronizing access


Destructor Destroy;


Procedure EnterCriticalSection;

Use the mutex


Procedure LeaveCriticalSection;

Release the mutex


Function MapExisting(Const MapName : String; Const MapSize : Cardinal) : Boolean;

Map to existing memory map

map to an existing memory map described by MapName


Procedure RaiseMappingException;

duh?


Function Seek(Const OffSet : Cardinal) : Boolean;

seek to an offset in the memory map

seek to a different position in map (0..MaxSeeks


Function SetMapError : Boolean;

Internal flag


Procedure SetMemSize(Size : Cardinal);


Properties


property MapError : Integer

The mapped memory


property MaxSeeks : Cardinal

system returned page size


property MemMap : Pointer


property MemSize : Cardinal


property PageSize : Cardinal

Memory size to allocate


Events


Variables


FhFile : THandle;


FhMap : THandle;

File handle, hMemMap when simple memory


FhMutex : THandle;

Error returned


FInMutex : Boolean;

Mutex handle for sharing


FMap : Pointer;

Mapping handle


FMapError : Integer;

Maximum seeks available,(FMemSize DIV PageSize)-1


FMapSize : Cardinal;

Memory Pointer


FMaxSeeks : Cardinal;

Minimum System allocation size


FMemSize : Cardinal;

Mapping Page Size


FPageSize : Cardinal;

Maximum size allocated, >=FileSize when a file