methodobject.h revision f70e43a073b36c6f6e9894c01025243a77a452d4
1f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum/***********************************************************
2f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumCopyright 1991 by Stichting Mathematisch Centrum, Amsterdam, The
3f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumNetherlands.
4f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum
5f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum                        All Rights Reserved
6f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum
7f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumPermission to use, copy, modify, and distribute this software and its
8f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumdocumentation for any purpose and without fee is hereby granted,
9f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumprovided that the above copyright notice appear in all copies and that
10f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumboth that copyright notice and this permission notice appear in
11f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumsupporting documentation, and that the names of Stichting Mathematisch
12f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumCentrum or CWI not be used in advertising or publicity pertaining to
13f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossumdistribution of the software without specific, written prior permission.
14f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum
15f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumSTICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
16f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumTHIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
17f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumFITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
18f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumFOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
20f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
21f70e43a073b36c6f6e9894c01025243a77a452d4Guido van RossumOF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum
23f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum******************************************************************/
24f70e43a073b36c6f6e9894c01025243a77a452d4Guido van Rossum
2585a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum/* Method object interface */
2685a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum
2785a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossumextern typeobject Methodtype;
2885a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum
2985a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum#define is_methodobject(op) ((op)->ob_type == &Methodtype)
3085a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum
3185a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossumtypedef object *(*method) FPROTO((object *, object *));
3285a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossum
3385a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossumextern object *newmethodobject PROTO((char *, method, object *));
3485a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossumextern method getmethod PROTO((object *));
3585a5fbbdfea617f6cc8fae82c9e8c2b5c424436dGuido van Rossumextern object *getself PROTO((object *));
363f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossum
373f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossumstruct methodlist {
383f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossum	char *ml_name;
393f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossum	method ml_meth;
403f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossum};
413f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossum
423f5da24ea304e674a9abbdcffc4d671e32aa70f1Guido van Rossumextern object *findmethod PROTO((struct methodlist *, object *, char *));
43