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