aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCSet.h
blob: 8b477cc1142f39e39907219abeb0a407536407b9 (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
48
49
#ifndef MAILCORE_CSET_H

#define MAILCORE_CSET_H

#include <MailCore/MCObject.h>

#ifdef __cplusplus

namespace mailcore {
    
    class String;
    class Array;
    class HashMap;
    
    class MAILCORE_EXPORT 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();
        virtual HashMap * serializable();
        virtual void importSerializable(HashMap * serializable);
        
    private:
        HashMap * mHash;
        void init();
    };

}

#endif

#endif