quakeforge/ruamoko/include/Object.h
Jeff Teunissen ff57b96bc6 Add Runtime header for obj* stuff.
Also, move lots of stuff out of the Object header.
2010-12-16 06:42:28 -05:00

93 lines
1.9 KiB
Objective-C

#ifndef __ruamoko_Object_h
#define __ruamoko_Object_h
#include "Runtime.h"
@class Protocol;
@protocol Object
- (Class) class;
- (Class) superclass;
- (BOOL) isEqual: (id)anObject;
- (BOOL) isKindOfClass: (Class)aClass;
- (BOOL) isMemberOfClass: (Class)aClass;
#if 0
- (BOOL) isProxy;
#endif // proxies
- (unsigned) hash;
- (id) self;
- (string) description;
- (id) performSelector: (SEL)aSelector;
- (id) performSelector: (SEL)aSelector
withObject: (id)anObject;
- (id) performSelector: (SEL)aSelector
withObject: (id)anObject
withObject: (id)anotherObject;
- (BOOL) respondsToSelector: (SEL)aSelector;
- (BOOL) conformsToProtocol: (Protocol)aProtocol;
- (id) retain;
- (id) autorelease;
- (/*oneway*/ void) release;
- (unsigned) retainCount;
@end
@protocol Copying
/**
Returns a copy of the receiver.
*/
- copy;
@end
/**
The Ruamoko root class
*/
@interface Object <Object>
{
Class isa;
unsigned retainCount;
}
+ (id) alloc;
+ (id) new;
+ (Class) class;
+ (string) description;
+ (void) initialize;
+ (IMP) instanceMethodForSelector: (SEL)aSelector;
#if 0
+ (MethodSignature) instanceMethodSignatureForSelector: (SEL)aSelector;
#endif // invocations
+ (BOOL) instancesRespondToSelector: (SEL)aSelector;
+ (BOOL) respondsToSelector: (SEL)aSelector;
+ (BOOL) conformsToProtocol: (Protocol)aProtocol;
+ (BOOL) isKindOfClass: (Class)aClass;
+ (void) poseAsClass: (Class)aClass;
+ (Class) superclass;
- (id) init;
- (void) dealloc;
- (void) doesNotRecognizeSelector: (SEL)aSelector;
#if 0
- (void) forwardInvocation: (Invocation)anInvocation;
#endif // invocations
#if 0
- (BOOL) isProxy;
#endif // proxies
- (IMP) methodForSelector: (SEL)aSelector;
#if 0
- (MethodSignature) methodSignatureForSelector: (SEL)aSelector;
#endif // invocations
- (id) copy;
- (id) mutableCopy;
@end
@interface Object (error)
- (void) error: (string)formatString, ...;
@end
#endif //__ruamoko_Object_h