53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#ifndef MAILCORE_MCHASHMAP_H
|
|
|
|
#define MAILCORE_MCHASHMAP_H
|
|
|
|
#include <MailCore/MCObject.h>
|
|
|
|
#ifdef __cplusplus
|
|
|
|
namespace mailcore {
|
|
|
|
class String;
|
|
class Array;
|
|
struct HashMapCell;
|
|
typedef HashMapCell HashMapIter;
|
|
|
|
class HashMap : public Object {
|
|
public:
|
|
HashMap();
|
|
virtual ~HashMap();
|
|
|
|
static HashMap * hashMap();
|
|
|
|
virtual unsigned int count();
|
|
virtual void setObjectForKey(Object * key, Object * value);
|
|
virtual void removeObjectForKey(Object * key);
|
|
virtual Object * objectForKey(Object * key);
|
|
virtual Array * allKeys();
|
|
virtual Array * allValues();
|
|
virtual void removeAllObjects();
|
|
|
|
public: // subclass behavior
|
|
HashMap(HashMap * o);
|
|
virtual String * description();
|
|
virtual Object * copy();
|
|
virtual HashMap * serializable();
|
|
virtual void importSerializable(HashMap * serializable);
|
|
|
|
private:
|
|
unsigned int mAllocated;
|
|
unsigned int mCount;
|
|
void ** mCells;
|
|
HashMapIter * iteratorBegin();
|
|
HashMapIter * iteratorNext(HashMapIter * iter);
|
|
void allocate(unsigned int size);
|
|
void init();
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|