1#ifndef PyObjC_FORMAL_PROTOCOL_H 2#define PyObjC_FORMAL_PROTOCOL_H 3/*! 4 * @header formal-protocol.h 5 * @abstruct Support for formal protocols (aka @protocol) 6 * @discussion 7 * This module defines functions and types for working with formal 8 * protocols. 9 * 10 * NOTE: We also use these functions when looking for the method signatures 11 * declared in formal protocols, as we don't have specific support for 12 * formal protocols. 13 */ 14 15extern PyTypeObject PyObjCFormalProtocol_Type; 16#define PyObjCFormalProtocol_Check(obj) PyObject_TypeCheck(obj, &PyObjCFormalProtocol_Type) 17 18int PyObjCFormalProtocol_CheckClass(PyObject*, char*, PyObject*, PyObject*, PyObject*); 19const char* PyObjCFormalProtocol_FindSelectorSignature(PyObject* obj, SEL selector, int isClassMethod); 20PyObject* PyObjCFormalProtocol_ForProtocol(Protocol* protocol); 21Protocol* PyObjCFormalProtocol_GetProtocol(PyObject* protocol); 22 23#endif /* PyObjC_FORMAL_PROTOCOL_H */ 24