home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / funcobject.h < prev    next >
C/C++ Source or Header  |  2003-12-30  |  2KB  |  60 lines

  1.  
  2. /* Function object interface */
  3.  
  4. #ifndef Py_FUNCOBJECT_H
  5. #define Py_FUNCOBJECT_H
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9.  
  10. typedef struct {
  11.     PyObject_HEAD
  12.     PyObject *func_code;
  13.     PyObject *func_globals;
  14.     PyObject *func_defaults;
  15.     PyObject *func_closure;
  16.     PyObject *func_doc;
  17.     PyObject *func_name;
  18.     PyObject *func_dict;
  19.     PyObject *func_weakreflist;
  20.     PyObject *func_module;
  21. } PyFunctionObject;
  22.  
  23. PyAPI_DATA(PyTypeObject) PyFunction_Type;
  24.  
  25. #define PyFunction_Check(op) ((op)->ob_type == &PyFunction_Type)
  26.  
  27. PyAPI_FUNC(PyObject *) PyFunction_New(PyObject *, PyObject *);
  28. PyAPI_FUNC(PyObject *) PyFunction_GetCode(PyObject *);
  29. PyAPI_FUNC(PyObject *) PyFunction_GetGlobals(PyObject *);
  30. PyAPI_FUNC(PyObject *) PyFunction_GetModule(PyObject *);
  31. PyAPI_FUNC(PyObject *) PyFunction_GetDefaults(PyObject *);
  32. PyAPI_FUNC(int) PyFunction_SetDefaults(PyObject *, PyObject *);
  33. PyAPI_FUNC(PyObject *) PyFunction_GetClosure(PyObject *);
  34. PyAPI_FUNC(int) PyFunction_SetClosure(PyObject *, PyObject *);
  35.  
  36. /* Macros for direct access to these values. Type checks are *not*
  37.    done, so use with care. */
  38. #define PyFunction_GET_CODE(func) \
  39.         (((PyFunctionObject *)func) -> func_code)
  40. #define PyFunction_GET_GLOBALS(func) \
  41.     (((PyFunctionObject *)func) -> func_globals)
  42. #define PyFunction_GET_MODULE(func) \
  43.     (((PyFunctionObject *)func) -> func_module)
  44. #define PyFunction_GET_DEFAULTS(func) \
  45.     (((PyFunctionObject *)func) -> func_defaults)
  46. #define PyFunction_GET_CLOSURE(func) \
  47.     (((PyFunctionObject *)func) -> func_closure)
  48.  
  49. /* The classmethod and staticmethod types lives here, too */
  50. PyAPI_DATA(PyTypeObject) PyClassMethod_Type;
  51. PyAPI_DATA(PyTypeObject) PyStaticMethod_Type;
  52.  
  53. PyAPI_FUNC(PyObject *) PyClassMethod_New(PyObject *);
  54. PyAPI_FUNC(PyObject *) PyStaticMethod_New(PyObject *);
  55.  
  56. #ifdef __cplusplus
  57. }
  58. #endif
  59. #endif /* !Py_FUNCOBJECT_H */
  60.