aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCArray.h
blob: 392c4afff3b47337191f403f464699b2c6410a24 (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
50
51
52
53
54
55
56
#ifndef __MAILCORE_MCARRAY_H_

#define __MAILCORE_MCARRAY_H_

#include <MailCore/MCObject.h>

#ifdef __cplusplus

typedef struct carray_s carray;

namespace mailcore {

    class String;

    class Array : public Object {
    public:
        Array();
        virtual ~Array();
        
        static Array * array();
        static Array * arrayWithObject(Object * obj);

        virtual unsigned int count();
        virtual void addObject(Object * obj);
        virtual void removeObjectAtIndex(unsigned int idx);
        virtual void removeObject(Object * obj);
        virtual int indexOfObject(Object * obj);
        virtual Object * objectAtIndex(unsigned int idx);
        virtual void replaceObject(unsigned int idx, Object * obj);
        virtual void insertObject(unsigned int idx, Object * obj);
        virtual void removeAllObjects();
        
        virtual void addObjectsFromArray(Array * array);
        virtual Object * lastObject();
        virtual bool containsObject(Object * obj);
        
        virtual Array * sortedArray(int (* compare)(void * a, void * b, void * context), void * context);
        virtual String * componentsJoinedByString(String * delimiter);
        
    public: // subclass behavior
        Array(Array * o);
        virtual String * description();
        virtual Object * copy();
        virtual HashMap * serializable();
        virtual void importSerializable(HashMap * serializable);
        
    private:
        carray * mArray;
        void init();
    };

}

#endif

#endif