00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <stdarg.h>
00013
00014 #import "OFObject.h"
00015 #import "OFEnumerator.h"
00016
00017 @class OFDataArray;
00018 @class OFString;
00019
00023 @interface OFArray: OFObject <OFCopying, OFMutableCopying, OFFastEnumeration>
00024 {
00025 OFDataArray *array;
00026 }
00027
00031 + array;
00032
00039 + arrayWithObject: (OFObject*)obj;
00040
00047 + arrayWithObjects: (OFObject*)first, ...;
00048
00055 + arrayWithCArray: (OFObject**)objs;
00056
00065 + arrayWithCArray: (OFObject**)objs
00066 length: (size_t)length;
00067
00074 - initWithObject: (OFObject*)obj;
00075
00082 - initWithObjects: (OFObject*)first, ...;
00083
00091 - initWithObject: (OFObject*)first
00092 argList: (va_list)args;
00093
00100 - initWithCArray: (OFObject**)objs;
00101
00110 - initWithCArray: (OFObject**)objs
00111 length: (size_t)len;
00112
00116 - (size_t)count;
00117
00121 - (id*)cArray;
00122
00129 - (id)objectAtIndex: (size_t)index;
00130
00138 - (size_t)indexOfObject: (OFObject*)obj;
00139
00148 - (size_t)indexOfObjectIdenticalTo: (OFObject*)obj;
00149
00153 - (id)firstObject;
00154
00158 - (id)lastObject;
00159
00166 - (OFString*)componentsJoinedByString: (OFString*)separator;
00167
00171 - (OFEnumerator*)enumerator;
00172 @end
00173
00175 @interface OFArrayEnumerator: OFEnumerator
00176 {
00177 OFDataArray *array;
00178 size_t count;
00179 unsigned long mutations;
00180 unsigned long *mutationsPtr;
00181 size_t pos;
00182 }
00183
00184 - initWithDataArray: (OFDataArray*)data
00185 mutationsPointer: (unsigned long*)mutations_ptr;
00186 @end
00188
00189 #import "OFMutableArray.h"