aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCArray.h
blob: a0abc243aa6eb8753e355ad7cb31b49e980b40f2 (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_MCARRAY_H_

#define __MAILCORE_MCARRAY_H_

#include <mailcore/MCObject.h>

#include <libetpan/libetpan.h>

namespace mailcore {

	class String;

	class Array : public Object {
	private:
		carray * mArray;
		void init();
	public:
		Array();
		Array(Array * o);
		virtual ~Array();
		
		static Array * array();
		static Array * arrayWithObject(Object * obj);

		//virtual String * className();
		virtual String * description();
		virtual Object * copy();
		
		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);
	};

}

#endif