1 #ifndef tryH
2 #define tryH
3 
4 #include <memory.h>
5 #include <assert.h>
6 #include "tmplvect.h"
7 
8 #define MATCH_EXACT      0 // �������פΤ�
9 #define MATCH_LONGER     1 // ���ꤷ��ʸ����ǻϤޤ�Ĺ��ʸ����
10 #define MATCH_SHORTER    2 // ���ꤷ��ʸ����˴ޤޤ��û��ʸ����
11 
12 #define STATICS_SIZE    10 // ���פ��륵����
13 extern unsigned int statics[STATICS_SIZE];
14 
15 typedef unsigned short int wchar;
16 
17 /* �ȥ饤 */
18 class PtrTry
19 {
20 public:
21   char _letter;
22   PtrVect<void*> *_list; // ����ʸ���ǽ���ǡ����Υꥹ��
23   PtrVect<PtrTry*> *_next; // ����ʸ���ؤΥꥹ��
24 public:
25   PtrTry(char letter = '\0');
26   ~PtrTry(void);
27   void Add(void*, char* name);
28   int Find(char* key, PtrVect<void*>& result, char cond = MATCH_EXACT) const;
29   void Remove(void*, char* key);
30   void Clear(void);
31   void MakeStatics(void);
32   void QSort(int (*)(const void*, const void*));
33 };
34 
35 /* ��Ū�ȥ饤 */
36 /* Add �� Remove �ϤǤ��ʤ� */
37 class StaticPtrTry
38 {
39 public:
40   char _letter;
41   int _nList;
42   int _nNext;
43   long* _pList;
44   StaticPtrTry** _pNext;
45 public:
46   StaticPtrTry(PtrTry*);
47   int Find(char* key, ObjVect<long>& result, char cond, long base);
48   StaticPtrTry* pack(StaticPtrTry* newaddress, long base);
49   unsigned long packedSize(void);
50   long list(int i, long base);
51   StaticPtrTry* next(int i, long base);
52   int copy(ObjVect<long>&, long base);
53   int hasMember(char* key, long base);
54 };
55 
56 #endif /* tryH */
57