00001
00007 #ifndef ResourceHash_seen
00008 #define ResourceHash_seen
00009 namespace jcpp {
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 class ResourceBucket;
00021
00026 class ResourceHash : public virtual Object {
00027
00028 private:
00029
00030 ResourceBucket **table;
00031 int table_length;
00033 int N;
00034
00035 float loadFactor;
00036 int numberOfKeys;
00037 int rehashLimit;
00038
00039 char **okeys;
00040 char **oelements;
00041
00044 int calculateBucket(register const char *str);
00045
00046 public:
00047
00048 CDELETE ResourceHash() ;
00049
00050 CDELETE ResourceHash(char *filename) ;
00051
00052 ~ResourceHash() ;
00053
00054 int size() ;
00055
00056 boolean isEmpty() ;
00057
00059 StringEnumeration *keys() ;
00060
00062 StringEnumeration *elements() ;
00063
00064 boolean contains(char *value) ;
00065
00066 boolean containsKey(char *key) ;
00067
00071 CFREE char **charKeysToArray(int& ka_length);
00072
00073
00074 char *get(char *key) ;
00075
00077 char *put(const char *key, const char *value);
00078
00079 CFREE char *remove(char *key) ;
00080
00081 void clear() ;
00082
00083 Object *clone() { return 0; }
00084
00085 CFREE char *toString() ;
00086
00087 boolean containsValue(char *s) ;
00088
00089 void rehash(int & RehashError);
00090
00091 };
00092
00093 } ENDSEMI
00094
00095 #endif // ResourceHash_seen