/* * Temporary work-around to avoid the need for method attributes in * the NeXT Runtime Protocol header. */ #ifndef _OBJC_PROTOCOL1_H_ #define _OBJC_PROTOCOL1_H_ # ifndef __NEXT_RUNTIME__ # include # else # include "next-abi.h" # ifndef NEXT_OBJC_USE_NEW_INTERFACE /* We are on a NeXT version without method __attributes__ */ # import # else /* We make our own interface without the deprecation messages * This is essentially without the OBJC2 * flags. * */ # ifndef _OBJC_PROTOCOL_H_ # define _OBJC_PROTOCOL_H_ # import "Object1.h" @interface Protocol : Object { @private char *protocol_name ; struct objc_protocol_list *protocol_list ; struct objc_method_description_list *instance_methods ; struct objc_method_description_list *class_methods ; } /* Obtaining attributes intrinsic to the protocol */ #if (NEXT_OBJC_ABI_VERSION==0) - (const char *)name ; /* Not avail in v2, deprecated in prior */ /* Testing protocol conformance */ - (BOOL) conformsTo: (Protocol *)aProtocolObject ; /* Not avail in v2 */ #endif /* Looking up information specific to a protocol */ /* Deprecated, but available */ - (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel ; - (struct objc_method_description *) descriptionForClassMethod:(SEL)aSel ; @end # endif /* __NEXT_RUNTIME__ */ # endif /* _OBJC_PROTOCOL_H_ */ # endif /* NEXT_OBJC_ABI_VERSION */ #endif /* _OBJC_PROTOCOL1_H_ */