tossim_wrap.cxx
来自「tinyos-2.0源代码!转载而已!要的尽管拿!」· CXX 代码 · 共 2,186 行 · 第 1/5 页
CXX
2,186 行
(setattrfunc) swig_varlink_setattr, /* Set attr */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_mapping*/ 0, /* tp_hash */};/* Create a variable linking object for use later */SWIGRUNTIME(PyObject *)SWIG_Python_newvarlink(void) { swig_varlinkobject *result = 0; result = PyMem_NEW(swig_varlinkobject,1); varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ result->ob_type = &varlinktype; result->vars = 0; result->ob_refcnt = 0; Py_XINCREF((PyObject *) result); return ((PyObject*) result);}SWIGRUNTIME(void)SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v; swig_globalvar *gv; v= (swig_varlinkobject *) p; gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); gv->name = (char *) malloc(strlen(name)+1); strcpy(gv->name,name); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; v->vars = gv;}/* Convert a pointer value */SWIGRUNTIME(int)SWIG_Python_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) { swig_type_info *tc; char *c = 0; static PyObject *SWIG_this = 0; int newref = 0; PyObject *pyobj = 0; if (!obj) return 0; if (obj == Py_None) { *ptr = 0; return 0; }#ifdef SWIG_COBJECT_TYPES if (!(PyCObject_Check(obj))) { if (!SWIG_this) SWIG_this = PyString_FromString("this"); pyobj = obj; obj = PyObject_GetAttr(obj,SWIG_this); newref = 1; if (!obj) goto type_error; if (!PyCObject_Check(obj)) { Py_DECREF(obj); goto type_error; } } *ptr = PyCObject_AsVoidPtr(obj); c = (char *) PyCObject_GetDesc(obj); if (newref) Py_DECREF(obj); goto cobject;#else if (!(PyString_Check(obj))) { if (!SWIG_this) SWIG_this = PyString_FromString("this"); pyobj = obj; obj = PyObject_GetAttr(obj,SWIG_this); newref = 1; if (!obj) goto type_error; if (!PyString_Check(obj)) { Py_DECREF(obj); goto type_error; } } c = PyString_AsString(obj); /* Pointer values must start with leading underscore */ if (*c != '_') { *ptr = (void *) 0; if (strcmp(c,"NULL") == 0) { if (newref) { Py_DECREF(obj); } return 0; } else { if (newref) { Py_DECREF(obj); } goto type_error; } } c++; c = SWIG_UnpackData(c,ptr,sizeof(void *)); if (newref) { Py_DECREF(obj); }#endif#ifdef SWIG_COBJECT_TYPEScobject:#endif if (ty) { tc = SWIG_TypeCheck(c,ty); if (!tc) goto type_error; *ptr = SWIG_TypeCast(tc,(void*) *ptr); } if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) { PyObject *zero = PyInt_FromLong(0); PyObject_SetAttrString(pyobj,(char*)"thisown",zero); Py_DECREF(zero); } return 0;type_error: if (flags & SWIG_POINTER_EXCEPTION) { if (ty && c) { char *temp = (char *) malloc(64+strlen(ty->name)+strlen(c)); sprintf(temp,"Type error. Got %s, expected %s", c, ty->name); PyErr_SetString(PyExc_TypeError, temp); free((char *) temp); } else { PyErr_SetString(PyExc_TypeError,"Expected a pointer"); } } return -1;}/* Convert a pointer value, signal an exception on a type mismatch */SWIGRUNTIME(void *)SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { void *result; SWIG_Python_ConvertPtr(obj, &result, ty, flags | SWIG_POINTER_EXCEPTION); return result;}/* Convert a packed value value */SWIGRUNTIME(int)SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty, int flags) { swig_type_info *tc; char *c = 0; if ((!obj) || (!PyString_Check(obj))) goto type_error; c = PyString_AsString(obj); /* Pointer values must start with leading underscore */ if (*c != '_') goto type_error; c++; c = SWIG_UnpackData(c,ptr,sz); if (ty) { tc = SWIG_TypeCheck(c,ty); if (!tc) goto type_error; } return 0;type_error: if (flags) { if (ty && c) { char *temp = (char *) malloc(64+strlen(ty->name)+strlen(c)); sprintf(temp,"Type error. Got %s, expected %s", c, ty->name); PyErr_SetString(PyExc_TypeError, temp); free((char *) temp); } else { PyErr_SetString(PyExc_TypeError,"Expected a pointer"); } } return -1;}/* Create a new pointer object */SWIGRUNTIME(PyObject *)SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int own) { PyObject *robj; if (!ptr) { Py_INCREF(Py_None); return Py_None; }#ifdef SWIG_COBJECT_TYPES robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL);#else { char result[1024]; char *r = result; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); strcpy(r,type->name); robj = PyString_FromString(result); }#endif if (!robj || (robj == Py_None)) return robj; if (type->clientdata) { PyObject *inst; PyObject *args = Py_BuildValue((char*)"(O)", robj); Py_DECREF(robj); inst = PyObject_CallObject((PyObject *) type->clientdata, args); Py_DECREF(args); if (inst) { if (own) { PyObject *n = PyInt_FromLong(1); PyObject_SetAttrString(inst,(char*)"thisown",n); Py_DECREF(n); } robj = inst; } } return robj;}SWIGRUNTIME(PyObject *)SWIG_Python_NewPackedObj(void *ptr, int sz, swig_type_info *type) { char result[1024]; char *r = result; if ((2*sz + 1 + strlen(type->name)) > 1000) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); strcpy(r,type->name); return PyString_FromString(result);}/* Install Constants */SWIGRUNTIME(void)SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { int i; PyObject *obj; for (i = 0; constants[i].type; i++) { switch(constants[i].type) { case SWIG_PY_INT: obj = PyInt_FromLong(constants[i].lvalue); break; case SWIG_PY_FLOAT: obj = PyFloat_FromDouble(constants[i].dvalue); break; case SWIG_PY_STRING: obj = PyString_FromString((char *) constants[i].pvalue); break; case SWIG_PY_POINTER: obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d,constants[i].name,obj); Py_DECREF(obj); } }}#endif/* Contract support */#define SWIG_contract_assert(expr, msg) if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else#ifdef __cplusplus}#endif/* -------- TYPES TABLE (BEGIN) -------- */#define SWIGTYPE_p_Radio swig_types[0] #define SWIGTYPE_p_nesc_app_t swig_types[1] #define SWIGTYPE_p_FILE swig_types[2] #define SWIGTYPE_p_MAC swig_types[3] #define SWIGTYPE_p_Packet swig_types[4] #define SWIGTYPE_p_Variable swig_types[5] #define SWIGTYPE_p_Tossim swig_types[6] #define SWIGTYPE_p_variable_string_t swig_types[7] #define SWIGTYPE_p_Mote swig_types[8] #define SWIGTYPE_p_p_char swig_types[9] #define SWIGTYPE_p_int swig_types[10] static swig_type_info *swig_types[12];/* -------- TYPES TABLE (END) -------- *//*----------------------------------------------- @(target):= _TOSSIM.so ------------------------------------------------*/#define SWIG_init init_TOSSIM#define SWIG_name "_TOSSIM"#include <memory.h>#include <tossim.h>enum { PRIMITIVE_INTEGER = 0, PRIMITIVE_FLOAT = 1, PRIMITIVE_UNKNOWN = 2};int lengthOfType(char* type) { if (strcmp(type, "uint8_t") == 0) { return sizeof(uint8_t); } else if (strcmp(type, "uint16_t") == 0) { return sizeof(uint16_t); } else if (strcmp(type, "uint32_t") == 0) { return sizeof(uint32_t); } else if (strcmp(type, "int8_t") == 0) { return sizeof(int8_t); } else if (strcmp(type, "int16_t") == 0) { return sizeof(int16_t); } else if (strcmp(type, "int32_t") == 0) { return sizeof(int32_t); } else if (strcmp(type, "char") == 0) { return sizeof(char); } else if (strcmp(type, "short") == 0) { return sizeof(short); } else if (strcmp(type, "int") == 0) { return sizeof(int); } else if (strcmp(type, "long") == 0) { return sizeof(long); } else if (strcmp(type, "unsigned char") == 0) { return sizeof(unsigned char); } else if (strcmp(type, "unsigned short") == 0) { return sizeof(unsigned short); } else if (strcmp(type, "unsigned int") == 0) { return sizeof(unsigned int); } else if (strcmp(type, "unsigned long") == 0) { return sizeof(unsigned long); } else if (strcmp(type, "float") == 0) { return sizeof(float); } else if (strcmp(type, "double") == 0) { return sizeof(double); } else { return 1; }}int memoryToPrimitive(char* type, char* ptr, long* lval, double* dval) { if (strcmp(type, "uint8_t") == 0) { uint8_t val; memcpy(&val, ptr, sizeof(uint8_t)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "uint16_t") == 0) { uint16_t val; memcpy(&val, ptr, sizeof(uint16_t)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "uint32_t") == 0) { uint32_t val; memcpy(&val, ptr, sizeof(uint32_t)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "int8_t") == 0) { int8_t val; memcpy(&val, ptr, sizeof(int8_t)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "int16_t") == 0) { int16_t val; memcpy(&val, ptr, sizeof(int16_t)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "int32_t") == 0) { int32_t val; memcpy(&val, ptr, sizeof(int32_t)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "char") == 0) { long val; memcpy(&val, ptr, sizeof(char)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "short") == 0) { short val; memcpy(&val, ptr, sizeof(short)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "int") == 0) { int val; memcpy(&val, ptr, sizeof(int)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "long") == 0) { long val; memcpy(&val, ptr, sizeof(long)); *lval = val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "unsigned char") == 0) { unsigned char val; memcpy(&val, ptr, sizeof(unsigned char)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "unsigned short") == 0) { unsigned short val; memcpy(&val, ptr, sizeof(unsigned short)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "unsigned int") == 0) { unsigned int val; memcpy(&val, ptr, sizeof(unsigned int)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "unsigned long") == 0) { unsigned long val; memcpy(&val, ptr, sizeof(unsigned long)); *lval = (long)val; return PRIMITIVE_INTEGER; } else if (strcmp(type, "float") == 0) { float val; memcpy(&val, ptr, sizeof(float));
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?