void JsonValue::getEXTfldvalForValue(tThreadData* pThreadData, EXTfldval &retVal, Json::Value* posPointer) { // Create return value object JsonValue *newObj = createNVObj<JsonValue>(pThreadData); if ( posPointer != 0 ) { // Return pointer to found position newObj->setJsonValue(document, posPointer); // Set value and pointer to source } else { // Create and return new null object shared_ptr<Json::Value> nullObj(new Json::Value()); newObj->setJsonValue(nullObj); } retVal.setObjInst( newObj->getInstance(), qtrue ); }
// Get a pointer to the root of the current object void JsonValue::methodRoot( tThreadData* pThreadData, qshort pParamCount ) { JsonValue *newObj = createNVObj<JsonValue>(pThreadData); newObj->setJsonValue(document); EXTfldval retVal; retVal.setObjInst( newObj->getInstance(), qtrue ); ECOaddParam( pThreadData->mEci, &retVal ); }
// Create a copy of the pointer at the current position. This copied pointer is trimmed above the current position. void JsonValue::methodCopy( tThreadData* pThreadData, qshort pParamCount ) { shared_ptr<Json::Value> copyValue(new Json::Value(*jsonValue)); JsonValue *newObj = createNVObj<JsonValue>(pThreadData); newObj->setJsonValue(copyValue); EXTfldval retVal; retVal.setObjInst( newObj->getInstance(), qtrue ); ECOaddParam( pThreadData->mEci, &retVal ); }