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(const char* sig1, const char* sig2);
26
27
28
29#endif /* PyObjC_INFORMAL_PROTOCOL_H */
30