这篇教程C++ GET_TC函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GET_TC函数的典型用法代码示例。如果您正苦于以下问题:C++ GET_TC函数的具体用法?C++ GET_TC怎么用?C++ GET_TC使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GET_TC函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: Iter_iterBegin//=============================================================================// Iterator iteration functions// itemValue is borrowed reference, no ref counting//=============================================================================void Iter_iterBegin(JSOBJ obj, JSONTypeContext *tc){ GET_TC(tc)->itemValue = NULL; GET_TC(tc)->iterator = PyObject_GetIter(obj);}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:9,
示例2: PyStringToUTF8static void *NewObjPyStringToUTF8(JSOBJ _obj, JSONTypeContext *tc, void *outValue, size_t *_outLen){ return PyStringToUTF8(GET_TC(tc)->newObj, tc, outValue, _outLen);}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:4,
示例3: Tuple_iterBegin//=============================================================================// Tuple iteration functions// itemValue is borrowed reference, no ref counting//=============================================================================void Tuple_iterBegin(JSOBJ obj, JSONTypeContext *tc){ GET_TC(tc)->index = 0; GET_TC(tc)->size = PyTuple_GET_SIZE( (PyObject *) obj); GET_TC(tc)->itemValue = NULL;}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:10,
示例4: PyString_AS_STRINGchar *Dict_iterGetName(JSOBJ obj, JSONTypeContext *tc, size_t *outLen){ *outLen = PyString_GET_SIZE(GET_TC(tc)->itemName); return PyString_AS_STRING(GET_TC(tc)->itemName);}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:5,
示例5: Dict_iterNextstatic int Dict_iterNext(JSOBJ obj, JSONTypeContext *tc){#if PY_MAJOR_VERSION >= 3 PyObject* itemNameTmp;#endif if (GET_TC(tc)->itemName) { Py_DECREF(GET_TC(tc)->itemName); GET_TC(tc)->itemName = NULL; } if (!(GET_TC(tc)->itemName = PyIter_Next(GET_TC(tc)->iterator))) { PRINTMARK(); return 0; } if (!(GET_TC(tc)->itemValue = PyObject_GetItem(GET_TC(tc)->dictObj, GET_TC(tc)->itemName))) { PRINTMARK(); return 0; } if (PyUnicode_Check(GET_TC(tc)->itemName)) { GET_TC(tc)->itemName = PyUnicode_AsUTF8String (GET_TC(tc)->itemName); } else if (!PyString_Check(GET_TC(tc)->itemName)) { if (UNLIKELY(GET_TC(tc)->itemName == Py_None)) { GET_TC(tc)->itemName = PyString_FromString("null"); return 1; } GET_TC(tc)->itemName = PyObject_Str(GET_TC(tc)->itemName);#if PY_MAJOR_VERSION >= 3 itemNameTmp = GET_TC(tc)->itemName; GET_TC(tc)->itemName = PyUnicode_AsUTF8String (GET_TC(tc)->itemName); Py_DECREF(itemNameTmp);#endif } else { Py_INCREF(GET_TC(tc)->itemName); } PRINTMARK(); return 1;}
开发者ID:esnme,项目名称:ultrajson,代码行数:51,
示例6: List_iterBegin//=============================================================================// List iteration functions// itemValue is borrowed from object (which is list). No refcounting//=============================================================================void List_iterBegin(JSOBJ obj, JSONTypeContext *tc){ GET_TC(tc)->index = 0; GET_TC(tc)->size = PyList_GET_SIZE( (PyObject *) obj);}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:9,
示例7: Dict_iterNextint Dict_iterNext(JSOBJ obj, JSONTypeContext *tc){#if PY_MAJOR_VERSION >= 3 PyObject* itemNameTmp;#endif if (GET_TC(tc)->itemName) { Py_DECREF(GET_TC(tc)->itemName); GET_TC(tc)->itemName = NULL; } if (!PyDict_Next ( (PyObject *)GET_TC(tc)->dictObj, &GET_TC(tc)->index, &GET_TC(tc)->itemName, &GET_TC(tc)->itemValue)) { PRINTMARK(); return 0; } if (PyUnicode_Check(GET_TC(tc)->itemName)) { GET_TC(tc)->itemName = PyUnicode_AsUTF8String (GET_TC(tc)->itemName); } else if (!PyString_Check(GET_TC(tc)->itemName)) { GET_TC(tc)->itemName = PyObject_Str(GET_TC(tc)->itemName);#if PY_MAJOR_VERSION >= 3 itemNameTmp = GET_TC(tc)->itemName; GET_TC(tc)->itemName = PyUnicode_AsUTF8String (GET_TC(tc)->itemName); Py_DECREF(itemNameTmp);#endif } else { Py_INCREF(GET_TC(tc)->itemName); } PRINTMARK(); return 1;}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:40,
示例8: Object_getDoubleValuedouble Object_getDoubleValue(JSOBJ obj, JSONTypeContext *tc){ double ret; GET_TC(tc)->PyTypeToJSON (obj, tc, &ret, NULL); return ret;}
开发者ID:Annigilator,项目名称:ultrajson,代码行数:6,
示例9: Object_iterNextint Object_iterNext(JSOBJ obj, JSONTypeContext *tc){ return GET_TC(tc)->iterNext(obj, tc);}
开发者ID:Annigilator,项目名称:ultrajson,代码行数:4,
示例10: Object_getUnsignedLongValueJSUINT64 Object_getUnsignedLongValue(JSOBJ obj, JSONTypeContext *tc){ JSUINT64 ret; GET_TC(tc)->PyTypeToJSON (obj, tc, &ret, NULL); return ret;}
开发者ID:Annigilator,项目名称:ultrajson,代码行数:6,
示例11: Object_getIntValueJSINT32 Object_getIntValue(JSOBJ obj, JSONTypeContext *tc){ JSINT32 ret; GET_TC(tc)->PyTypeToJSON (obj, tc, &ret, NULL); return ret;}
开发者ID:Annigilator,项目名称:ultrajson,代码行数:6,
示例12: GET_TCconst char *Object_getStringValue(JSOBJ obj, JSONTypeContext *tc, size_t *_outLen){ return GET_TC(tc)->PyTypeToJSON (obj, tc, NULL, _outLen);}
开发者ID:Annigilator,项目名称:ultrajson,代码行数:4,
示例13: SortedDict_iterNextint SortedDict_iterNext(JSOBJ obj, JSONTypeContext *tc){ PyObject *items = NULL, *item = NULL, *key = NULL, *value = NULL; Py_ssize_t i, nitems;#if PY_MAJOR_VERSION >= 3 PyObject* keyTmp;#endif // Upon first call, obtain a list of the keys and sort them. This follows the same logic as the // stanard library's _json.c sort_keys handler. if (GET_TC(tc)->newObj == NULL) { // Obtain the list of keys from the dictionary. items = PyMapping_Keys(GET_TC(tc)->dictObj); if (items == NULL) { goto error; } else if (!PyList_Check(items)) { PyErr_SetString(PyExc_ValueError, "keys must return list"); goto error; } // Sort the list. if (PyList_Sort(items) < 0) { goto error; } // Obtain the value for each key, and pack a list of (key, value) 2-tuples. nitems = PyList_GET_SIZE(items); for (i = 0; i < nitems; i++) { key = PyList_GET_ITEM(items, i); value = PyDict_GetItem(GET_TC(tc)->dictObj, key); // Subject the key to the same type restrictions and conversions as in Dict_iterGetValue. if (PyUnicode_Check(key)) { key = PyUnicode_AsUTF8String(key); } else if (!PyString_Check(key)) { key = PyObject_Str(key);#if PY_MAJOR_VERSION >= 3 keyTmp = key; key = PyUnicode_AsUTF8String(key); Py_DECREF(keyTmp);#endif } else { Py_INCREF(key); } item = PyTuple_Pack(2, key, value); if (item == NULL) { goto error; } PyList_SET_ITEM(items, i, item); Py_DECREF(key); } // Store the sorted list of tuples in the newObj slot. GET_TC(tc)->newObj = items; GET_TC(tc)->size = nitems; } if (GET_TC(tc)->index >= GET_TC(tc)->size) { PRINTMARK(); return 0; } item = PyList_GET_ITEM(GET_TC(tc)->newObj, GET_TC(tc)->index); GET_TC(tc)->itemName = PyTuple_GET_ITEM(item, 0); GET_TC(tc)->itemValue = PyTuple_GET_ITEM(item, 1); GET_TC(tc)->index++; return 1;error: Py_XDECREF(item); Py_XDECREF(key); Py_XDECREF(value); Py_XDECREF(items); return -1;}
开发者ID:Annigilator,项目名称:ultrajson,代码行数:89,
示例14: Object_beginTypeContextstatic void Object_beginTypeContext (JSOBJ _obj, JSONTypeContext *tc, JSONObjectEncoder *enc){ PyObject *obj, *objRepr, *exc; TypeContext *pc; PRINTMARK(); if (!_obj) { tc->type = JT_INVALID; return; } obj = (PyObject*) _obj; tc->prv = PyObject_Malloc(sizeof(TypeContext)); pc = (TypeContext *) tc->prv; if (!pc) { tc->type = JT_INVALID; PyErr_NoMemory(); return; } pc->newObj = NULL; pc->dictObj = NULL; pc->itemValue = NULL; pc->itemName = NULL; pc->iterator = NULL; pc->attrList = NULL; pc->index = 0; pc->size = 0; pc->longValue = 0; pc->rawJSONValue = NULL; if (PyIter_Check(obj)) { PRINTMARK(); goto ISITERABLE; } if (PyBool_Check(obj)) { PRINTMARK(); tc->type = (obj == Py_True) ? JT_TRUE : JT_FALSE; return; } else if (PyLong_Check(obj)) { PRINTMARK(); pc->PyTypeToJSON = PyLongToINT64; tc->type = JT_LONG; GET_TC(tc)->longValue = PyLong_AsLongLong(obj); exc = PyErr_Occurred(); if (!exc) { return; } if (exc && PyErr_ExceptionMatches(PyExc_OverflowError)) { PyErr_Clear(); pc->PyTypeToJSON = PyLongToUINT64; tc->type = JT_ULONG; GET_TC(tc)->unsignedLongValue = PyLong_AsUnsignedLongLong(obj); exc = PyErr_Occurred(); if (exc && PyErr_ExceptionMatches(PyExc_OverflowError)) { PRINTMARK(); goto INVALID; } } return; } else if (PyInt_Check(obj)) { PRINTMARK();#ifdef _LP64 pc->PyTypeToJSON = PyIntToINT64; tc->type = JT_LONG;#else pc->PyTypeToJSON = PyIntToINT32; tc->type = JT_INT;#endif return; } else if (PyString_Check(obj)) { PRINTMARK(); pc->PyTypeToJSON = PyStringToUTF8; tc->type = JT_UTF8; return; } else if (PyUnicode_Check(obj)) { PRINTMARK(); pc->PyTypeToJSON = PyUnicodeToUTF8; tc->type = JT_UTF8; return; }//.........这里部分代码省略.........
开发者ID:esnme,项目名称:ultrajson,代码行数:101,
示例15: Dir_iterNextint Dir_iterNext(JSOBJ _obj, JSONTypeContext *tc){ PyObject *obj = (PyObject *) _obj; PyObject *itemValue = GET_TC(tc)->itemValue; PyObject *itemName = GET_TC(tc)->itemName; PyObject* attr; PyObject* attrName; char* attrStr; if (itemValue) { Py_DECREF(GET_TC(tc)->itemValue); GET_TC(tc)->itemValue = itemValue = NULL; } if (itemName) { Py_DECREF(GET_TC(tc)->itemName); GET_TC(tc)->itemName = itemName = NULL; } for (; GET_TC(tc)->index < GET_TC(tc)->size; GET_TC(tc)->index ++) { attrName = PyList_GET_ITEM(GET_TC(tc)->attrList, GET_TC(tc)->index);#if PY_MAJOR_VERSION >= 3 attr = PyUnicode_AsUTF8String(attrName);#else attr = attrName; Py_INCREF(attr);#endif attrStr = PyString_AS_STRING(attr); if (attrStr[0] == '_') { PRINTMARK(); Py_DECREF(attr); continue; } itemValue = PyObject_GetAttr(obj, attrName); if (itemValue == NULL) { PyErr_Clear(); Py_DECREF(attr); PRINTMARK(); continue; } if (PyCallable_Check(itemValue)) { Py_DECREF(itemValue); Py_DECREF(attr); PRINTMARK(); continue; } PRINTMARK(); itemName = attr; break; } if (itemName == NULL) { GET_TC(tc)->index = GET_TC(tc)->size; GET_TC(tc)->itemValue = NULL; return 0; } GET_TC(tc)->itemName = itemName; GET_TC(tc)->itemValue = itemValue; GET_TC(tc)->index ++; PRINTMARK(); return 1;}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:75,
示例16: Object_iterEndvoid Object_iterEnd(JSOBJ obj, JSONTypeContext *tc){ GET_TC(tc)->iterEnd(obj, tc);}
开发者ID:Annigilator,项目名称:ultrajson,代码行数:4,
示例17: Dir_iterGetValueJSOBJ Dir_iterGetValue(JSOBJ obj, JSONTypeContext *tc){ PRINTMARK(); return GET_TC(tc)->itemValue;}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:5,
示例18: Object_iterGetValueJSOBJ Object_iterGetValue(JSOBJ obj, JSONTypeContext *tc){ return GET_TC(tc)->iterGetValue(obj, tc);}
开发者ID:Annigilator,项目名称:ultrajson,代码行数:4,
示例19: Dict_iterBegin//=============================================================================// Dict iteration functions// itemName might converted to string (Python_Str). Do refCounting// itemValue is borrowed from object (which is dict). No refCounting//=============================================================================void Dict_iterBegin(JSOBJ obj, JSONTypeContext *tc){ GET_TC(tc)->index = 0; PRINTMARK();}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:10,
示例20: Dict_iterGetValueJSOBJ Dict_iterGetValue(JSOBJ obj, JSONTypeContext *tc){ return GET_TC(tc)->itemValue;}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:4,
示例21: static void *PyLongToINT64(JSOBJ _obj, JSONTypeContext *tc, void *outValue, size_t *_outLen){ *((JSINT64 *) outValue) = GET_TC(tc)->longValue; return NULL;}
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:5,
示例22: Object_beginTypeContextvoid Object_beginTypeContext (JSOBJ _obj, JSONTypeContext *tc){ PyObject *obj, *exc, *toFunc; TypeContext *pc; PRINTMARK(); if (!_obj) { tc->type = JT_INVALID; return; } obj = (PyObject*) _obj; tc->prv = PyObject_Malloc(sizeof(TypeContext)); pc = (TypeContext *) tc->prv; if (!pc) { tc->type = JT_INVALID; PyErr_NoMemory(); return; } pc->newObj = NULL; pc->dictObj = NULL; pc->itemValue = NULL; pc->itemName = NULL; pc->attrList = NULL; pc->index = 0; pc->size = 0; pc->longValue = 0; if (PyIter_Check(obj)) { PRINTMARK(); goto ISITERABLE; } if (PyBool_Check(obj)) { PRINTMARK(); tc->type = (obj == Py_True) ? JT_TRUE : JT_FALSE; return; } else if (PyLong_Check(obj)) { PRINTMARK(); pc->PyTypeToJSON = PyLongToINT64; tc->type = JT_LONG; GET_TC(tc)->longValue = PyLong_AsLongLong(obj); exc = PyErr_Occurred(); if (exc && PyErr_ExceptionMatches(PyExc_OverflowError)) { PRINTMARK(); goto INVALID; } return; } else if (PyInt_Check(obj)) { PRINTMARK();#ifdef _LP64 pc->PyTypeToJSON = PyIntToINT64; tc->type = JT_LONG;#else pc->PyTypeToJSON = PyIntToINT32; tc->type = JT_INT;#endif return; } else if (PyString_Check(obj)) { PRINTMARK(); pc->PyTypeToJSON = PyStringToUTF8; tc->type = JT_UTF8; return; } else if (PyUnicode_Check(obj)) { PRINTMARK(); pc->PyTypeToJSON = PyUnicodeToUTF8; tc->type = JT_UTF8; return; } else if (PyFloat_Check(obj) || (type_decimal && PyObject_IsInstance(obj, type_decimal))) { PRINTMARK(); pc->PyTypeToJSON = PyFloatToDOUBLE; tc->type = JT_DOUBLE; return; } else if (PyDateTime_Check(obj)) { PRINTMARK(); pc->PyTypeToJSON = PyDateTimeToINT64; tc->type = JT_LONG; return; } else if (PyDate_Check(obj))//.........这里部分代码省略.........
开发者ID:jmooreoliva,项目名称:ultrajson,代码行数:101,
示例23: Tuple_iterGetValuestatic JSOBJ Tuple_iterGetValue(JSOBJ obj, JSONTypeContext *tc){ return GET_TC(tc)->itemValue;}
开发者ID:esnme,项目名称:ultrajson,代码行数:4,
注:本文中的GET_TC函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GET_TEAM函数代码示例 C++ GET_SWZ函数代码示例 |