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