aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCSet.h
blob: 8b82ad338211c0b87225fa4a5dd67183ba2a62fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef __MAILCORE_CSET_H_

#define __MAILCORE_CSET_H_

#include <MailCore/MCObject.h>

#ifdef __cplusplus

namespace mailcore {

	class String;
	class Array;
	class HashMap;

	class Set : public Object {
	public:
		Set();
		Set(Set * o);
		
		static Set * set();
		static Set * setWithArray(Array * objects);

		virtual unsigned int count();
		virtual void addObject(Object * obj);
		virtual void removeObject(Object * obj);
		virtual bool containsObject(Object * obj);
		virtual Object * member(Object * obj);
		
		virtual Array * allObjects();
		virtual void removeAllObjects();
		virtual void addObjectsFromArray(Array * objects);
        
    public: // subclass behavior
		virtual ~Set();
		virtual String * description();
		virtual Object * copy();
        
	private:
		HashMap * mHash;
		void init();
	};

}

#endif

#endif