svn-gvsig-desktop / tags / v1_9_Build_1250 / libraries / libjni-ecwcompress / include / include-sdk / NCSMemPool.h @ 44644
History | View | Annotate | Download (2.16 KB)
1 |
/********************************************************
|
---|---|
2 |
** Copyright 1999 Earth Resource Mapping Ltd.
|
3 |
** This document contains proprietary source code of
|
4 |
** Earth Resource Mapping Ltd, and can only be used under
|
5 |
** one of the three licenses as described in the
|
6 |
** license.txt file supplied with this distribution.
|
7 |
** See separate license.txt file for license details
|
8 |
** and conditions.
|
9 |
**
|
10 |
** This software is covered by US patent #6,442,298,
|
11 |
** #6,102,897 and #6,633,688. Rights to use these patents
|
12 |
** is included in the license agreements.
|
13 |
**
|
14 |
** FILE: NCSMalloc.h
|
15 |
** CREATED: Thu Feb 25 09:19:00 WST 1999
|
16 |
** AUTHOR: Simon Cope
|
17 |
** PURPOSE: NCS Memory Pool types and protos.
|
18 |
** EDITS:
|
19 |
*******************************************************/
|
20 |
|
21 |
#ifndef NCSMEMPOOL_H
|
22 |
#define NCSMEMPOOL_H
|
23 |
|
24 |
#ifdef __cplusplus
|
25 |
extern "C" { |
26 |
#endif
|
27 |
|
28 |
#ifndef NCSDEFS_H
|
29 |
#include "NCSDefs.h" |
30 |
#endif
|
31 |
#ifndef NCSARRAY_H
|
32 |
#include "NCSArray.h" |
33 |
#endif
|
34 |
#ifndef NCSMUTEX_H
|
35 |
#include "NCSMutex.h" |
36 |
#endif
|
37 |
#ifndef NCSTIMESTAMP_H
|
38 |
#include "NCSTimeStamp.h" |
39 |
#endif
|
40 |
#ifndef NCSTYPES_H
|
41 |
#include "NCSTypes.h" |
42 |
#endif
|
43 |
|
44 |
/*
|
45 |
** Typedefs
|
46 |
*/
|
47 |
|
48 |
typedef struct { |
49 |
INT32 nElementsInUse; |
50 |
INT32 iLastFreeElement; |
51 |
void *pElements;
|
52 |
BOOLEAN *pbElementInUse; |
53 |
} NCSPoolNode; |
54 |
|
55 |
typedef struct { |
56 |
UINT32 iElementSize; |
57 |
UINT32 nElementsPerNode; |
58 |
UINT32 nNodes; |
59 |
UINT32 nElementsInUse; |
60 |
|
61 |
UINT32 nAddNodes; |
62 |
NCSTimeStampMs tsAddNodeTime; |
63 |
|
64 |
UINT32 nRemoveNodes; |
65 |
NCSTimeStampMs tsRemoveNodeTime; |
66 |
|
67 |
UINT32 nAllocElements; |
68 |
NCSTimeStampMs tsAllocElementTime; |
69 |
|
70 |
UINT32 nFreeElements; |
71 |
NCSTimeStampMs tsFreeElementTime; |
72 |
|
73 |
NCSMutexStats msPool; |
74 |
} NCSPoolStats; |
75 |
|
76 |
typedef struct { |
77 |
NCSMutex mMutex; |
78 |
NCSPoolStats psStats; |
79 |
UINT32 nMaxElements; |
80 |
BOOLEAN bCollectStats; |
81 |
NCSPoolNode *pNodes; |
82 |
} NCSPool; |
83 |
|
84 |
/*
|
85 |
** Prototypes.
|
86 |
*/
|
87 |
NCSPool *NCSPoolCreate(UINT32 iElementSize, UINT32 nElements); |
88 |
void *NCSPoolAlloc(NCSPool *pPool, BOOLEAN bClear);
|
89 |
void NCSPoolFree(NCSPool *pPool, void *pPtr); |
90 |
void NCSPoolDestroy(NCSPool *pPool);
|
91 |
void NCSPoolSetMaxSize(NCSPool *pPool, UINT32 nMaxElements);
|
92 |
NCSPoolStats NCSPoolGetStats(NCSPool *pPool); |
93 |
void NCSPoolEnableStats(NCSPool *pPool);
|
94 |
void NCSPoolDisableStats(NCSPool *pPool);
|
95 |
|
96 |
#ifdef __cplusplus
|
97 |
} |
98 |
#endif
|
99 |
|
100 |
#endif /* NCSMEMPOOL_H */ |