20 #ifndef OBJFWRT_OBJFWRT_H 21 #define OBJFWRT_OBJFWRT_H 23 #ifndef __STDC_LIMIT_MACROS 24 # define __STDC_LIMIT_MACROS 26 #ifndef __STDC_CONSTANT_MACROS 27 # define __STDC_CONSTANT_MACROS 37 # define __has_feature(x) 0 40 #ifndef __has_attribute 41 # define __has_attribute(x) 0 44 #if !__has_feature(nullability) 51 # ifndef _Null_unspecified 52 # define _Null_unspecified 56 #if !__has_feature(objc_arc) && !defined(__unsafe_unretained) 57 # define __unsafe_unretained 63 #define Nil (Class _Null_unspecified)0 68 #define nil (id _Null_unspecified)0 102 typedef const struct objc_selector *
SEL;
109 typedef const struct objc_method *
Method;
114 #if defined(__OBJC__) && !defined(DOXYGEN) 123 typedef const struct objc_ivar *
Ivar;
130 #if !defined(__wii__) && !defined(__amigaos__) 146 typedef id _Nullable (*
IMP)(
id _Nonnull object,
SEL _Nonnull selector, ...);
169 id __unsafe_unretained _Nullable
self;
174 Class _Nonnull class_;
176 Class _Nonnull
class;
213 extern const char *_Nonnull
sel_getName(
SEL _Nonnull selector);
225 extern bool sel_isEqual(
SEL _Nonnull selector1,
SEL _Nonnull selector2);
236 const char *_Nonnull name,
size_t extraBytes);
268 unsigned int *_Nullable length);
284 extern const char *_Nullable
class_getName(Class _Nullable class_);
311 SEL _Nonnull selector);
337 SEL _Nonnull selector);
352 SEL _Nonnull selector);
362 SEL _Nonnull selector);
373 extern bool class_addMethod(Class _Nonnull class_,
SEL _Nonnull selector,
374 IMP _Nonnull implementation,
const char *_Nullable typeEncoding);
387 SEL _Nonnull selector,
IMP _Nonnull implementation,
388 const char *_Nullable typeEncoding);
408 Class _Nonnull class_);
456 unsigned int *_Nullable outCount);
484 unsigned int *_Nullable outCount);
520 Class _Nullable class_,
unsigned int *_Nullable outCount);
568 IMP _Nullable stretForward);
588 void *_Nullable bytes);
678 const void *_Nonnull key,
id _Nullable value,
690 const void *_Nonnull key);
706 extern void __objc_exec_class(
struct _objc_module *_Nonnull module);
707 extern IMP _Nonnull objc_msg_lookup(
id _Nullable
object,
SEL _Nonnull selector);
708 extern IMP _Nonnull objc_msg_lookup_stret(
id _Nullable
object,
709 SEL _Nonnull selector);
710 extern IMP _Nonnull objc_msg_lookup_super(
struct objc_super *_Nonnull super,
711 SEL _Nonnull selector);
712 extern IMP _Nonnull objc_msg_lookup_super_stret(
713 struct objc_super *_Nonnull super,
SEL _Nonnull selector);
714 extern Class _Nullable objc_lookUpClass(
const char *_Nonnull name);
715 extern Class _Nullable objc_getClass(
const char *_Nonnull name);
716 extern Class _Nonnull objc_getRequiredClass(
const char *_Nonnull name);
717 extern Class _Nullable objc_lookup_class(
const char *_Nonnull name);
718 extern Class _Nonnull objc_get_class(
const char *_Nonnull name);
719 extern void objc_exception_throw(
id _Nullable
object);
720 extern int objc_sync_enter(
id _Nullable
object);
721 extern int objc_sync_exit(
id _Nullable
object);
722 extern id _Nullable objc_getProperty(
id _Nonnull
self,
SEL _Nonnull _cmd,
723 ptrdiff_t offset,
bool atomic);
724 extern void objc_setProperty(
id _Nonnull
self,
SEL _Nonnull _cmd,
725 ptrdiff_t offset,
id _Nullable value,
bool atomic,
signed char copy);
726 extern void objc_getPropertyStruct(
void *_Nonnull dest,
727 const void *_Nonnull src, ptrdiff_t size,
bool atomic,
bool strong);
728 extern void objc_setPropertyStruct(
void *_Nonnull dest,
729 const void *_Nonnull src, ptrdiff_t size,
bool atomic,
bool strong);
730 extern void objc_enumerationMutation(
id _Nonnull
object);
731 #ifndef OBJC_NO_PERSONALITY_DECLARATION 736 extern int __gnu_objc_personality_v0(
int version,
int actions,
737 uint64_t exClass,
void *_Nonnull ex,
void *_Nonnull ctx);
738 extern int __gnu_objc_personality_sj0(
int version,
int actions,
739 uint64_t exClass,
void *_Nonnull ex,
void *_Nonnull ctx);
741 extern id _Nullable objc_retain(
id _Nullable
object);
742 extern id _Nullable objc_retainBlock(
id _Nullable block);
743 extern id _Nullable objc_retainAutorelease(
id _Nullable
object);
744 extern void objc_release(
id _Nullable
object);
745 extern id _Nullable objc_autorelease(
id _Nullable
object);
746 extern id _Nullable objc_autoreleaseReturnValue(
id _Nullable
object);
747 extern id _Nullable objc_retainAutoreleaseReturnValue(
id _Nullable
object);
748 extern id _Nullable objc_retainAutoreleasedReturnValue(
id _Nullable
object);
749 extern id _Nullable objc_storeStrong(
id _Nullable *_Nonnull
object,
751 extern id _Nullable objc_storeWeak(
id _Nullable *_Nonnull
object,
753 extern id _Nullable objc_loadWeakRetained(
id _Nullable *_Nonnull
object);
754 extern _Nullable
id objc_initWeak(
id _Nullable *_Nonnull
object,
756 extern void objc_destroyWeak(
id _Nullable *_Nonnull
object);
757 extern id _Nullable objc_loadWeak(
id _Nullable *_Nonnull
object);
758 extern void objc_copyWeak(
id _Nullable *_Nonnull dest,
759 id _Nullable *_Nonnull src);
760 extern void objc_moveWeak(
id _Nullable *_Nonnull dest,
761 id _Nullable *_Nonnull src);
const char * protocol_getName(Protocol *protocol)
Returns the name of the specified protocol.
Definition: protocol.m:31
objc_property_t * class_copyPropertyList(Class class_, unsigned int *outCount)
Copies the property list of the specified class.
Definition: property.m:172
const struct objc_selector * SEL
A selector.
Definition: ObjFWRT.h:102
void objc_setEnumerationMutationHandler(objc_enumeration_mutation_handler handler)
Sets the handler for mutations during enumeration.
Definition: misc.m:56
void * objc_destructInstance(id object)
Destructs the specified object.
Definition: instance.m:83
Class objc_allocateClassPair(Class superclass, const char *name, size_t extraBytes)
Allocates a new class and its metaclass.
Definition: class.m:476
const char * ivar_getTypeEncoding(Ivar ivar)
Returns the type encoding of the specified instance variable.
Definition: ivar.m:72
Class object_getClass(id object)
Returns the object's class.
Definition: class.m:866
void objc_setTaggedPointerSecret(uintptr_t secret)
Sets the tagged pointer secret.
Definition: tagged-pointer.m:32
id objc_constructInstance(Class class_, void *bytes)
Constructs an instance of the specified class in the specified array of bytes.
Definition: instance.m:67
const char * sel_getName(SEL selector)
Returns the name of the specified selector.
Definition: selector.m:119
IMP class_replaceMethod(Class class_, SEL selector, IMP implementation, const char *typeEncoding)
Replaces or adds the specified method of the class.
Definition: class.m:843
void objc_setForwardHandler(IMP forward, IMP stretForward)
Sets the forwarding handler for unimplemented methods.
Definition: lookup.m:119
objc_uncaught_exception_handler objc_setUncaughtExceptionHandler(objc_uncaught_exception_handler handler)
Sets the handler for uncaught exceptions.
Definition: exception.m:779
bool class_addMethod(Class class_, SEL selector, IMP implementation, const char *typeEncoding)
Adds the specified method to the class.
Definition: class.m:824
SEL sel_registerName(const char *name)
Registers a selector with the specified name with the runtime.
Definition: selector.m:75
void objc_setAssociatedObject(id object, const void *key, id value, objc_associationPolicy policy)
Sets an associated object on the specified object for the specified key.
Definition: association.m:116
Associate the object like a retained, nonatomic property.
Definition: ObjFWRT.h:187
const char * method_getTypeEncoding(Method method)
Returns the type encoding of the specified method.
Definition: method.m:81
bool sel_isEqual(SEL selector1, SEL selector2)
Checks two selectors for equality.
Definition: selector.m:131
A pointer to a class.
Definition: private.h:37
uintptr_t object_getTaggedPointerValue(id object)
Returns the value of the specified tagged pointer.
Definition: tagged-pointer.m:80
const struct objc_ivar * Ivar
An instance variable.
Definition: ObjFWRT.h:123
bool class_conformsToProtocol(Class class_, Protocol *protocol)
Returns whether the specified class conforms to the specified protocol.
Definition: protocol.m:60
IMP class_getMethodImplementation(Class class_, SEL selector)
Returns the class's method implementation for the specified selector.
Definition: class.m:697
char * property_copyAttributeValue(objc_property_t property, const char *name)
Copies the specified attribute value.
Definition: property.m:230
bool protocol_isEqual(Protocol *protocol1, Protocol *protocol2)
Returns whether two protocols are equal.
Definition: protocol.m:37
bool class_isMetaClass(Class class_)
Returns whether the specified class is a metaclass.
Definition: class.m:661
Associate the object like an assigned property.
Definition: ObjFWRT.h:185
Associate the object like a copied, nonatomic property.
Definition: ObjFWRT.h:191
Associate the object like a retained property.
Definition: ObjFWRT.h:189
id _objc_rootAutorelease(id object)
Adds the specified object to the topmost autorelease pool.
Definition: autorelease.m:123
void objc_autoreleasePoolPop(void *_Null_unspecified pool)
Drains the specified autorelease pool and all pools on top of it and removes it from the stack of aut...
const char * ivar_getName(Ivar ivar)
Returns the name of the specified instance variable.
Definition: ivar.m:66
const char * class_getName(Class class_)
Returns the name of the specified class.
Definition: class.m:670
Associate the object like a copied property.
Definition: ObjFWRT.h:193
const struct objc_method * Method
A method.
Definition: ObjFWRT.h:109
unsigned int objc_getClassList(Class *buffer, unsigned int count)
Gets the list of all classes known to the runtime.
Definition: class.m:590
IMP class_getMethodImplementation_stret(Class class_, SEL selector)
Returns the class's method implementation for the specified selector.
Definition: class.m:721
bool class_respondsToSelector(Class class_, SEL selector)
Returns whether the specified class responds to the specified selector.
Definition: lookup.m:126
ptrdiff_t ivar_getOffset(Ivar ivar)
Returns the offset of the specified instance variable.
Definition: ivar.m:78
Method * class_copyMethodList(Class class_, unsigned int *outCount)
Copies the method list of the specified class.
Definition: method.m:26
const char * property_getName(objc_property_t property)
Returns the name of the specified property.
Definition: property.m:224
void objc_removeAssociatedObjects(id object)
Removes all associated objects for the specified object.
Definition: association.m:228
void(* objc_uncaught_exception_handler)(id exception)
A handler for uncaught exceptions.
Definition: ObjFWRT.h:153
objc_associationPolicy
A policy for object association, see objc_setAssociatedObject.
Definition: ObjFWRT.h:183
bool BOOL
An Objective-C boolean. Either YES or NO.
Definition: ObjFWRT.h:137
Ivar * class_copyIvarList(Class class_, unsigned int *outCount)
Copies the instance variable list of the specified class.
Definition: ivar.m:26
id objc_createTaggedPointer(int class_, uintptr_t value)
Creates a new tagged pointer.
Definition: tagged-pointer.m:90
A pointer to any object.
Definition: private.h:66
void(* objc_enumeration_mutation_handler)(id object)
A handler for mutation during enumeration.
Definition: ObjFWRT.h:160
SEL method_getName(Method method)
Returns the name of the specified method.
Definition: method.m:75
void objc_registerClassPair(Class class_)
Registers an already allocated class pair.
Definition: class.m:513
Class * objc_copyClassList(unsigned int *length)
Copies the list of all classes known to the runtime.
Definition: class.m:636
void *_Null_unspecified objc_autoreleasePoolPush(void)
Creates a new autorelease pool and puts it on top of the stack of autorelease pools.
Definition: autorelease.m:70
Class object_setClass(id object, Class class_)
Sets the object's class.
Definition: class.m:882
Class class_getSuperclass(Class class_)
Returns the superclass of the specified class.
Definition: class.m:679
int objc_registerTaggedPointerClass(Class class_)
Registers a class for tagged pointers.
Definition: tagged-pointer.m:38
A struct representing a call to super.
Definition: ObjFWRT.h:165
const char * object_getClassName(id object)
Returns the object's class name.
Definition: class.m:899
const struct objc_property * objc_property_t
A property.
Definition: ObjFWRT.h:128
Method class_getInstanceMethod(Class class_, SEL selector)
Returns the class's instance method for the specified selector.
Definition: class.m:798
const struct objc_protocol * Protocol
A protocol.
Definition: ObjFWRT.h:117
id(* IMP)(id object, SEL selector,...)
A method implementation.
Definition: ObjFWRT.h:146
bool protocol_conformsToProtocol(Protocol *protocol1, Protocol *protocol2)
Returns whether the first protocol conforms to the second protocol.
Definition: protocol.m:44
void objc_deinit(void)
Deinitializes the Objective-C runtime.
Definition: init.m:39
id objc_getAssociatedObject(id object, const void *key)
Returns the associated object on the specified object for the specified key.
Definition: association.m:186
bool object_isTaggedPointer(id object)
Returns whether the specified object is a tagged pointer.
Definition: tagged-pointer.m:58
unsigned long class_getInstanceSize(Class class_)
Returns the instance size of the specified class.
Definition: class.m:688