methodobject.h revision bebdc376c3aa584bfb9825758d5cf8d5c09c8692
1a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum#ifndef Py_METHODOBJECT_H 2a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum#define Py_METHODOBJECT_H 3a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum#ifdef __cplusplus 4a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossumextern "C" { 5a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum#endif 6a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum 7f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum/*********************************************************** 85799b520086129ed8aaadeb3b941b3000a42576aGuido van RossumCopyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, 95799b520086129ed8aaadeb3b941b3000a42576aGuido van RossumThe Netherlands. 10f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum 11f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum All Rights Reserved 12f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum 13f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumPermission to use, copy, modify, and distribute this software and its 14f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumdocumentation for any purpose and without fee is hereby granted, 15f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumprovided that the above copyright notice appear in all copies and that 16f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumboth that copyright notice and this permission notice appear in 17f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumsupporting documentation, and that the names of Stichting Mathematisch 18f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumCentrum or CWI not be used in advertising or publicity pertaining to 19f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumdistribution of the software without specific, written prior permission. 20f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum 21f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumSTICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO 22f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumTHIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 23f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumFITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE 24f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumFOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 25f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 26f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 27f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumOF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 28f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum 29f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum******************************************************************/ 30f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum 3185a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum/* Method object interface */ 3285a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum 33051ab123b465685e714668099c0a6dd86de5673bGuido van Rossumextern DL_IMPORT(PyTypeObject) PyCFunction_Type; 3485a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum 35caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossum#define PyCFunction_Check(op) ((op)->ob_type == &PyCFunction_Type) 3685a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum 37caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossumtypedef PyObject *(*PyCFunction) Py_FPROTO((PyObject *, PyObject *)); 38bebdc376c3aa584bfb9825758d5cf8d5c09c8692Guido van Rossumtypedef PyObject *(*PyCFunctionWithKeywords) 39bebdc376c3aa584bfb9825758d5cf8d5c09c8692Guido van Rossum Py_FPROTO((PyObject *, PyObject *, PyObject *)); 4085a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum 41caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossumextern PyCFunction PyCFunction_GetFunction Py_PROTO((PyObject *)); 42caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossumextern PyObject *PyCFunction_GetSelf Py_PROTO((PyObject *)); 43bebdc376c3aa584bfb9825758d5cf8d5c09c8692Guido van Rossumextern int PyCFunction_GetFlags Py_PROTO((PyObject *)); 443f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossum 45caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossumstruct PyMethodDef { 46caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossum char *ml_name; 47caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossum PyCFunction ml_meth; 48caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossum int ml_flags; 49caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossum char *ml_doc; 503f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossum}; 51caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossumtypedef struct PyMethodDef PyMethodDef; 523f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossum 53caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossumextern PyObject *Py_FindMethod 54caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossum Py_PROTO((PyMethodDef[], PyObject *, char *)); 559dc8d0e0a3f9520cfff61c479beea29d593e2e39Guido van Rossum 56caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossumextern PyObject *PyCFunction_New 57caa63808861d4e92d4dc1005fc01de0f2e4a8fd0Guido van Rossum Py_PROTO((PyMethodDef *, PyObject *)); 58a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum 595799b520086129ed8aaadeb3b941b3000a42576aGuido van Rossum/* Flag passed to newmethodobject */ 605799b520086129ed8aaadeb3b941b3000a42576aGuido van Rossum#define METH_VARARGS 0x0001 61bebdc376c3aa584bfb9825758d5cf8d5c09c8692Guido van Rossum#define METH_KEYWORDS 0x0002 625799b520086129ed8aaadeb3b941b3000a42576aGuido van Rossum 6369785032358a007fbcf56e62c0acea59db79431fGuido van Rossumtypedef struct PyMethodChain { 6469785032358a007fbcf56e62c0acea59db79431fGuido van Rossum PyMethodDef *methods; /* Methods of this type */ 6569785032358a007fbcf56e62c0acea59db79431fGuido van Rossum struct PyMethodChain *link; /* NULL or base type */ 6669785032358a007fbcf56e62c0acea59db79431fGuido van Rossum} PyMethodChain; 6769785032358a007fbcf56e62c0acea59db79431fGuido van Rossum 6869785032358a007fbcf56e62c0acea59db79431fGuido van Rossumextern PyObject *Py_FindMethodInChain 6969785032358a007fbcf56e62c0acea59db79431fGuido van Rossum Py_PROTO((PyMethodChain *, PyObject *, char *)); 7069785032358a007fbcf56e62c0acea59db79431fGuido van Rossum 71a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum#ifdef __cplusplus 72a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum} 73a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum#endif 74a3309960a50dbadfd854299e7420223eb8718a56Guido van Rossum#endif /* !Py_METHODOBJECT_H */ 75