svn-gvsig-desktop / tags / v1_0_2_Build_907 / libraries / libjni-ecw / include / NCSObjectList.h @ 44116
History | View | Annotate | Download (2.08 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: CNCSObjectList.cpp
|
15 |
** CREATED: Wed Oct 18 2000
|
16 |
** AUTHOR: Jeff Pudwell
|
17 |
** PURPOSE: Class to store lists of Objects.
|
18 |
**
|
19 |
** EDITS:
|
20 |
*******************************************************/
|
21 |
|
22 |
|
23 |
#ifndef NCSOBJECTLIST_H_
|
24 |
#define NCSOBJECTLIST_H_
|
25 |
|
26 |
|
27 |
#include "NCSTypes.h" |
28 |
#include "NCSDefs.h" |
29 |
#include "NCSMalloc.h" |
30 |
#include "NCSUtil.h" |
31 |
|
32 |
#ifdef MACINTOSH
|
33 |
#define NCS_OBJECT_BAD_NODE (INT32)-1 |
34 |
#define NCS_OBJECT_FIRST_NODE (INT32)0 |
35 |
#else
|
36 |
#define NCS_OBJECT_BAD_NODE -1 |
37 |
#define NCS_OBJECT_FIRST_NODE 0 |
38 |
#endif
|
39 |
|
40 |
struct NCSObjectListNode
|
41 |
{ |
42 |
INT32 index; |
43 |
char *pStringID;
|
44 |
void *pObject;
|
45 |
NCSObjectListNode *next; |
46 |
NCSObjectListNode *prev; |
47 |
}; |
48 |
|
49 |
|
50 |
class NCS_EXPORT CNCSObjectList |
51 |
{ |
52 |
public:
|
53 |
CNCSObjectList(); |
54 |
virtual ~CNCSObjectList(); |
55 |
|
56 |
protected:
|
57 |
INT32 Add(char *pStringID, void *pObject); |
58 |
void * Remove(char *pString); |
59 |
void * Remove(INT32 nIndex);
|
60 |
void * Remove(void *pObj); |
61 |
void RemoveAllNodes();
|
62 |
BOOLEAN Move(INT32 nSrcIndex, INT32 nDestIndex); |
63 |
BOOLEAN isEmpty(); |
64 |
|
65 |
void * Get(INT32 nIndex);
|
66 |
void * Get(char *pStringID); |
67 |
INT32 GetNumberNodes(); |
68 |
|
69 |
INT32 GetIndex(char *pStringID);
|
70 |
char * GetStringID(INT32 nIndex);
|
71 |
|
72 |
void * GetFirstNode();
|
73 |
void * GetNextNode();
|
74 |
|
75 |
void * RemoveNode(NCSObjectListNode *pNode);
|
76 |
void DeleteNode(NCSObjectListNode *pNode);
|
77 |
NCSObjectListNode * FindNode(INT32 nIndex); |
78 |
NCSObjectListNode * FindNode(char *pStringID);
|
79 |
|
80 |
private:
|
81 |
NCSObjectListNode *m_pList; |
82 |
NCSObjectListNode *m_pCurrNode; |
83 |
NCSObjectListNode *m_pLastNode; |
84 |
INT32 m_nNodes; |
85 |
|
86 |
void AdjustNodeIndexes();
|
87 |
}; |
88 |
|
89 |
|
90 |
#endif //NCSOBJECTLIST_H_ |
91 |
|
92 |
|