📄 sipint.h
字号:
/* * This file defines the SIP library internal interfaces. * * Copyright (c) 2006 * Riverbank Computing Limited <info@riverbankcomputing.co.uk> * * This file is part of SIP. * * This copy of SIP is licensed for use under the terms of the SIP License * Agreement. See the file LICENSE for more details. * * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */#ifndef _SIPINT_H#define _SIPINT_H#ifdef __cplusplusextern "C" {#endif#undef TRUE#define TRUE 1#undef FALSE#define FALSE 0/* * This defines a single entry in an object map's hash table. */typedef struct{ void *key; /* The C/C++ address. */ sipWrapper *first; /* The first object at this address. */} sipHashEntry;/* * This defines the interface to a hash table class for mapping C/C++ addresses * to the corresponding wrapped Python object. */typedef struct{ int primeIdx; /* Index into table sizes. */ unsigned long size; /* Size of hash table. */ unsigned long unused; /* Nr. unused in hash table. */ unsigned long stale; /* Nr. stale in hash table. */ sipHashEntry *hash_array; /* Current hash table. */} sipObjectMap;extern PyInterpreterState *sipInterpreter; /* The interpreter. */extern sipQtAPI *sipQtSupport; /* The Qt support API. */extern sipWrapperType *sipQObjectClass; /* The Python QObject class. */void *sip_api_convert_rx(sipWrapper *txSelf, const char *sigargs, PyObject *rxObj, const char *slot, const char **memberp);void *sipGetRx(sipWrapper *txSelf,const char *sigargs,PyObject *rxObj, const char *slot,const char **memberp);int sip_api_emit_signal(PyObject *self,const char *sig,PyObject *sigargs);PyObject *sip_api_get_sender();PyObject *sip_api_connect_rx(PyObject *txObj,const char *sig, PyObject *rxObj,const char *slot, int type);PyObject *sip_api_disconnect_rx(PyObject *txObj,const char *sig, PyObject *rxObj,const char *slot);/* * These are part of the SIP API but are also used within the SIP module. */void *sip_api_malloc(size_t nbytes);void sip_api_free(void *mem);void *sip_api_get_cpp_ptr(sipWrapper *w,sipWrapperType *type);PyObject *sip_api_convert_from_instance(void *cppPtr, sipWrapperType *type, PyObject *transferObj);void sip_api_start_thread(void);void sip_api_end_thread(void);PyObject *sip_api_convert_from_void_ptr(void *val);PyObject *sip_api_convert_from_named_enum(int eval, PyTypeObject *et);int sip_api_wrapper_check(PyObject *o);void sip_api_free_connection(sipSlotConnection *conn);int sip_api_emit_to_slot(sipSlot *slot, PyObject *sigargs);int sip_api_same_connection(sipSlotConnection *conn, void *tx, const char *sig, PyObject *rxObj, const char *slot);/* * These are not part of the SIP API but are used within the SIP module. */void sipFreePySigRx(sipPySigRx *rx);void sipSaveMethod(sipPyMethod *pm,PyObject *meth);void *sipGetPending(sipWrapper **op, int *fp);PyObject *sipWrapSimpleInstance(void *cppPtr, sipWrapperType *type, sipWrapper *owner, int initflags);void sipOMInit(sipObjectMap *om);void sipOMFinalise(sipObjectMap *om);sipWrapper *sipOMFindObject(sipObjectMap *om,void *key,sipWrapperType *type);void sipOMAddObject(sipObjectMap *om,sipWrapper *val);int sipOMRemoveObject(sipObjectMap *om,sipWrapper *val);void sipSetBool(void *ptr,int val);void *sipGetAddress(sipWrapper *w);void sipFindSigArgType(const char *name, size_t len, sipSigArg *at, int indir);#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -