pidl: Keep only a single copy of samba.dcerpc.base.ClientConnection.
[kai/samba-autobuild/.git] / source4 / librpc / rpc / pyrpc.h
index ae622b562c6de5db02a0d3abb7ed2a89e9f21cb3..fb5f35fcf13907306821d543d38cfc638e96e940 100644 (file)
 #define _PYRPC_H_
 
 #include "libcli/util/pyerrors.h"
-#include "librpc/rpc/dcerpc.h"
 
 #define PY_CHECK_TYPE(type, var, fail) \
        if (!PyObject_TypeCheck(var, type)) {\
-               PyErr_Format(PyExc_TypeError, "Expected type %s", (type)->tp_name); \
+               PyErr_Format(PyExc_TypeError, "Expected type %s for %s", (type)->tp_name, #var); \
                fail; \
        }
 
 #define dom_sid2_Check dom_sid_Check
 #define dom_sid28_Check dom_sid_Check
 
-/* This macro is only provided by Python >= 2.3 */
-#ifndef PyAPI_DATA
-#   define PyAPI_DATA(RTYPE) extern RTYPE
-#endif
-
 typedef struct {
        PyObject_HEAD
+       TALLOC_CTX *mem_ctx;
        struct dcerpc_pipe *pipe;
+       struct dcerpc_binding_handle *binding_handle;
 } dcerpc_InterfaceObject;
 
-PyAPI_DATA(PyTypeObject) dcerpc_InterfaceType;
-
-#define PyErr_FromNdrError(err) Py_BuildValue("(is)", err, ndr_map_error2string(err))
-
-#define PyErr_SetNdrError(err) \
-               PyErr_SetObject(PyExc_RuntimeError, PyErr_FromNdrError(err))
-
-void PyErr_SetDCERPCStatus(struct dcerpc_pipe *pipe, NTSTATUS status);
-
-typedef bool (*py_data_pack_fn) (PyObject *args, PyObject *kwargs, void *r);
-typedef PyObject *(*py_data_unpack_fn) (void *r);
-
-struct PyNdrRpcMethodDef {
-       const char *name;
-       const char *doc;
-       dcerpc_call_fn call;
-       py_data_pack_fn pack_in_data;
-       py_data_unpack_fn unpack_out_data;
-       uint32_t opnum;
-       const struct ndr_interface_table *table;
-};
-
-bool PyInterface_AddNdrRpcMethods(PyTypeObject *object, const struct PyNdrRpcMethodDef *mds);
-PyObject *py_dcerpc_interface_init_helper(PyTypeObject *type, PyObject *args, PyObject *kwargs, const struct ndr_interface_table *table);
-
 #endif /* _PYRPC_H_ */