Differences From Artifact [5767ab8f57]:
- File
src/OFIntrospection.h
— part of check-in
[93a3badbb7]
at
2011-10-16 19:41:42
on branch trunk
— Add introspection for instance variables.
Currently only for the Apple and new GNU runtime. (user: js, size: 3231) [annotate] [blame] [check-ins using]
To Artifact [2a5882e748]:
- File
src/OFIntrospection.h
— part of check-in
[cea0c66392]
at
2011-10-16 21:30:08
on branch trunk
— Add introspection for properties.
Unavailable with the old GNU runtime as of now. Making it work with the
old GNU runtime would require checking the ABI version manually and then
accessing stuff manually that is not available in older ABI versions. (user: js, size: 3757) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | * \brief Returns the type encoding for the instance variable. * * \return The type encoding for the instance variable */ - (const char*)typeEncoding; @end /** * \brief A class for introspecting classes. */ @interface OFIntrospection: OFObject { OFMutableArray *classMethods; OFMutableArray *instanceMethods; OFMutableArray *instanceVariables; } #ifdef OF_HAVE_PROPERTIES @property (readonly, copy) OFArray *classMethods; @property (readonly, copy) OFArray *instanceMethods; @property (readonly, copy) OFArray *instanceVariables; #endif /** * \brief Creates a new introspection for the specified class. * * \return A new, autoreleased introspection for the specified class */ | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | * \brief Returns the type encoding for the instance variable. * * \return The type encoding for the instance variable */ - (const char*)typeEncoding; @end #ifdef OF_HAVE_PROPERTIES /** * \brief A class for describing a property. */ @interface OFProperty: OFObject { OFString *name; const char *attributes; } /// The name of the property. @property (readonly, copy) OFString *name; /// The attributes of the property. @property (readonly) const char *attributes; @end #endif /** * \brief A class for introspecting classes. */ @interface OFIntrospection: OFObject { OFMutableArray *classMethods; OFMutableArray *instanceMethods; OFMutableArray *instanceVariables; #ifdef OF_HAVE_PROPERTIES OFMutableArray *properties; #endif } #ifdef OF_HAVE_PROPERTIES @property (readonly, copy) OFArray *classMethods; @property (readonly, copy) OFArray *instanceMethods; @property (readonly, copy) OFArray *instanceVariables; /** * \brief The properties of the class. * * Only available if OF_HAVE_PROPERTIES is defined. */ @property (readonly, copy) OFArray *properties; #endif /** * \brief Creates a new introspection for the specified class. * * \return A new, autoreleased introspection for the specified class */ |
︙ | ︙ | |||
144 145 146 147 148 149 150 | /** * \brief Returns the instance variables of the class. * * \return An array of OFInstanceVariables */ - (OFArray*)instanceVariables; | | | 171 172 173 174 175 176 177 178 179 | /** * \brief Returns the instance variables of the class. * * \return An array of OFInstanceVariables */ - (OFArray*)instanceVariables; /* TODO: protocols */ @end |