mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-12-04 01:51:36 +00:00
4bd37e7b64
Doxygen hates the QuakeC-style function prototypes we use, so switch to the C-style prototypes.
155 lines
4.5 KiB
Objective-C
155 lines
4.5 KiB
Objective-C
#ifndef __ruamoko_Object_h
|
|
#define __ruamoko_Object_h
|
|
|
|
/**
|
|
Standard boolean type
|
|
*/
|
|
typedef enum {
|
|
NO, ///< false
|
|
YES, ///< true
|
|
} BOOL;
|
|
|
|
@extern void obj_error (id object, integer code, string fmt, ...);
|
|
@extern void obj_verror (id object, integer code, string fmt, @va_list args);
|
|
//obj_error_handler obj_set_error_handler (objc_error_handler func);
|
|
@extern IMP obj_msg_lookup (id receiver, SEL op);
|
|
@extern IMP obj_msg_lookup_super (Super class, SEL op);
|
|
@extern @param obj_msg_sendv (id receiver, SEL op, @va_list args);
|
|
@extern (void []) obj_malloc (integer size);
|
|
@extern (void []) obj_atomic_malloc (integer size);
|
|
@extern (void []) obj_valloc (integer size);
|
|
@extern (void []) obj_realloc (void [] mem, integer size);
|
|
@extern (void []) obj_calloc (integer nelem, integer size);
|
|
@extern void obj_free (void [] mem);
|
|
//(void []) obj_get_uninstalled_dtable (void);
|
|
|
|
@extern Class obj_get_class (string name);
|
|
@extern Class obj_lookup_class (string name);
|
|
//Class obj_next_class (void [][] enum_stage);
|
|
|
|
@extern string sel_get_name (SEL selector);
|
|
@extern string sel_get_type (SEL selector);
|
|
@extern SEL sel_get_uid (string name);
|
|
//@extern SEL sel_get_any_uid (string name);
|
|
//@extern SEL sel_get_any_typed_uid (string name);
|
|
//@extern SEL sel_get_typed_uid (string name, string type);
|
|
@extern SEL sel_register_name (string name);
|
|
//@extern SEL sel_register_typed_name (string name, string type);
|
|
@extern BOOL sel_is_mapped (SEL aSel);
|
|
|
|
@extern Method class_get_class_method (Class class, SEL aSel);
|
|
@extern Method class_get_instance_method (Class class, SEL aSel);
|
|
@extern Class class_pose_as (Class imposter, Class superclass);
|
|
@extern id class_create_instance (Class class);
|
|
@extern string class_get_class_name (Class class);
|
|
@extern integer class_get_instance_size (Class class);
|
|
@extern Class class_get_meta_class (Class class);
|
|
@extern Class class_get_super_class (Class class);
|
|
@extern integer class_get_version (Class class);
|
|
@extern BOOL class_is_class (Class class);
|
|
@extern BOOL class_is_meta_class (Class class);
|
|
@extern void class_set_version (Class class, integer version);
|
|
@extern (void []) class_get_gc_object_type (Class class);
|
|
@extern void class_ivar_set_gcinvisible (Class class, string ivarname, BOOL gcInvisible);
|
|
|
|
@extern IMP method_get_imp (Method method);
|
|
@extern IMP get_imp (Class class, SEL sel);
|
|
|
|
@extern id object_copy (id object);
|
|
@extern id object_dispose (id object);
|
|
@extern Class object_get_class (id object);
|
|
@extern string object_get_class_name (id object);
|
|
@extern Class object_get_meta_class (id object);
|
|
@extern Class object_get_super_class (id object);
|
|
@extern BOOL object_is_class (id object);
|
|
@extern BOOL object_is_instance (id object);
|
|
@extern BOOL object_is_meta_class (id object);
|
|
|
|
@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
|