aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCArray.h
blob: 6ee17549a4a17af8e40b44bc236d1c6f91f20b19 (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
#ifndef __MAILCORE_MCARRAY_H_

#define __MAILCORE_MCARRAY_H_

#include <MailCore/MCObject.h>

#include <libetpan/libetpan.h>

#ifdef __cplusplus

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 *, void *, void *), void * context);
		virtual String * componentsJoinedByString(String * delimiter);
        
    public: // subclass behavior
		Array(Array * o);
		virtual String * description();
		virtual Object * copy();
        
	private:
		carray * mArray;
		void init();
	};

}

#endif

#endif