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