Common.h revision 4532b5553db699d5bed250454f9a45e0f66f4bf8
1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#if __has_feature(objc_arr)
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define NS_AUTOMATED_REFCOUNT_UNAVAILABLE __attribute__((unavailable("not available in automatic reference counting mode")))
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#else
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define NS_AUTOMATED_REFCOUNT_UNAVAILABLE
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CF_CONSUMED __attribute__((cf_consumed))
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define nil ((void*) 0)
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef int BOOL;
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef unsigned NSUInteger;
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef int int32_t;
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef unsigned char uint8_t;
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef int32_t UChar32;
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef unsigned char UChar;
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef struct _NSZone NSZone;
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef const void * CFTypeRef;
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCFTypeRef CFRetain(CFTypeRef cf);
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov@protocol NSObject
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (BOOL)isEqual:(id)object;
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (NSZone *)zone NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (id)retain NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (NSUInteger)retainCount NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (oneway void)release NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (id)autorelease NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov@end
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov@interface NSObject <NSObject> {}
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (id)init;
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov+ (id)new;
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov+ (id)alloc;
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (void)dealloc;
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (void)finalize;
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (id)copy;
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (id)mutableCopy;
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov@end
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovNS_AUTOMATED_REFCOUNT_UNAVAILABLE
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov@interface NSAutoreleasePool : NSObject {
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov@private
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    void    *_token;
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    void    *_reserved3;
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    void    *_reserved2;
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    void    *_reserved;
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov+ (void)addObject:(id)anObject;
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (void)addObject:(id)anObject;
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov- (void)drain;
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov@end
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef const void* objc_objectptr_t;
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovextern __attribute__((ns_returns_retained)) id objc_retainedObject(objc_objectptr_t __attribute__((cf_consumed)) pointer);
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovextern __attribute__((ns_returns_not_retained)) id objc_unretainedObject(objc_objectptr_t pointer);
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovextern objc_objectptr_t objc_unretainedPointer(id object);
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov