1#ifndef PyObjC_INFORMAL_PROTOCOL_H 2#define PyObjC_INFORMAL_PROTOCOL_H 3/*! 4 * @header informal-protocol.h 5 * @abstruct Support for informal protocols 6 * @discussion 7 * This module defines functions and types for working with informal 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 PyObjCInformalProtocol_Type; 16#define PyObjCInformalProtocol_Check(obj) PyObject_TypeCheck(obj, &PyObjCInformalProtocol_Type) 17 18int PyObjCInformalProtocol_CheckClass(PyObject*, char*, PyObject*, PyObject*); 19PyObject* PyObjCInformalProtocol_FindSelector(PyObject* obj, SEL selector, int isClassMethod); 20int PyObjCInformalProtocol_Warnings(char* name, PyObject* clsdict, PyObject* protocols); 21PyObject* PyObjCInformalProtocol_FindProtocol(SEL selector); 22 23/* TODO: rename */ 24PyObject* findSelInDict(PyObject* clsdict, SEL selector); 25int signaturesEqual(char* sig1, char* sig2); 26 27 28 29#endif /* PyObjC_INFORMAL_PROTOCOL_H */ 30