int main(int argc, char **argv) { WJElement doc = NULL; WJElement person = NULL; WJElement cameo = NULL; doc = WJEObject(NULL, NULL, WJE_NEW); WJEString(doc, "name", WJE_SET, "Serenity"); WJEString(doc, "class", WJE_SET, "firefly"); WJEArray(doc, "crew", WJE_SET); WJEObject(doc, "crew[$]", WJE_NEW); WJEString(doc, "crew[-1].name", WJE_SET, "Malcolm Reynolds"); WJEString(doc, "crew[-1].job", WJE_SET, "captain"); WJEInt64(doc, "crew[-1].born", WJE_SET, 2468); WJEObject(doc, "crew[$]", WJE_NEW); WJEString(doc, "crew[-1].name", WJE_SET, "Kaywinnet Lee Fry"); WJEString(doc, "crew[-1].job", WJE_SET, "mechanic"); WJEInt64(doc, "crew[-1].born", WJE_SET, 2494); WJEObject(doc, "crew[$]", WJE_NEW); WJEString(doc, "crew[-1].name", WJE_SET, "Jayne Cobb"); WJEString(doc, "crew[-1].job", WJE_SET, "public relations"); WJEInt64(doc, "crew[-1].born", WJE_SET, 2485); WJEArray(doc, "cameo", WJE_SET); WJEString(doc, "cameo[$]", WJE_NEW, "Battlestar Galactica"); WJEString(doc, "cameo[$]", WJE_NEW, "Star Wars Evasive Action"); WJEString(doc, "cameo[$]", WJE_NEW, "Dr. Horrible's Sing-Along Blog"); WJEString(doc, "cameo[$]", WJE_NEW, "Ready Player One"); WJEBool(doc, "shiny", WJE_SET, TRUE); WJEInt64(doc, "crew[].born == 2468", WJE_SET, 2486); /* note: awesome! */ WJECloseDocument(WJEGet(doc, "shiny", NULL)); while((person = _WJEObject(doc, "crew[]", WJE_GET, &person))) { printf("%s (%s) is %"PRId64"\n", WJEString(person, "name", WJE_GET, ""), WJEString(person, "job", WJE_GET, ""), (2517 - WJEInt64(person, "born", WJE_GET, 0))); } while((cameo = WJEGet(doc, "cameo[]", cameo))) { printf("Cameo: %s\n", WJEString(cameo, NULL, WJE_GET, "")); } WJEDump(doc); WJECloseDocument(doc); return 0; }
void PLCContext::initializeFromJson(WJElement doc) { outputFilename = WJEString(doc, "output_file", WJE_GET, outputFilename); sourceTraceFilename = WJEString(doc, "source_trace", WJE_GET, sourceTraceFilename); qualityFilename = WJEString(doc, "quality_output", WJE_GET, qualityFilename); initializeQualityMethods( WJEArray(doc, "compositors", WJE_GET) ); WJElement input_def = NULL; while( (input_def = _WJEObject(doc, "inputs[]", WJE_GET, &input_def)) ) { // Consume a whole PLCInput definition. PLCInput *input = new PLCInput(inputFiles.size()); input->ConsumeJson(input_def); inputFiles.push_back(input); } }
int main(int argc, char **argv) { WJElement doc = NULL; WJElement person = NULL; doc = WJEObject(NULL, NULL, WJE_NEW); WJEString(doc, "name", WJE_SET, "Serenity"); WJEString(doc, "class", WJE_SET, "firefly"); WJEArray(doc, "crew", WJE_SET); WJEObject(doc, "crew[$]", WJE_NEW); WJEString(doc, "crew[-1].name", WJE_SET, "Malcolm Reynolds"); WJEString(doc, "crew[-1].job", WJE_SET, "captain"); WJEInt64(doc, "crew[-1].born", WJE_SET, 2468); WJEObject(doc, "crew[$]", WJE_NEW); WJEString(doc, "crew[-1].name", WJE_SET, "Kaywinnet Lee Fry"); WJEString(doc, "crew[-1].job", WJE_SET, "mechanic"); WJEInt64(doc, "crew[-1].born", WJE_SET, 2494); WJEObject(doc, "crew[$]", WJE_NEW); WJEString(doc, "crew[-1].name", WJE_SET, "Jayne Cobb"); WJEString(doc, "crew[-1].job", WJE_SET, "public relations"); WJEInt64(doc, "crew[-1].born", WJE_SET, 2485); WJEBool(doc, "shiny", WJE_SET, TRUE); WJEInt64(doc, "crew[].born == 2468", WJE_SET, 2486); /* note: awesome! */ WJECloseDocument(WJEGet(doc, "shiny", NULL)); while((person = _WJEObject(doc, "crew[]", WJE_GET, &person))) { printf("%s (%s) is %d\n", WJEString(person, "name", WJE_GET, ""), WJEString(person, "job", WJE_GET, ""), 2517 - WJEInt64(person, "born", WJE_GET, 0)); } WJEDump(doc); WJECloseDocument(doc); return 0; }
void PLCContext::initializeQualityMethods(WJElement compositors) { // Backward compatability mode if( compositors == NULL ) { QualityMethodBase *method = NULL; CPLDebug("PLC", "initializeQualityMethods() - pre-json mode."); if( getStratParam("cloud_quality") != NULL ) { method = QualityMethodBase::CreateQualityFunction( this, NULL, strategyParams.FetchNameValue("cloud_quality")); CPLAssert( method != NULL ); qualityMethods.push_back(method); } method = QualityMethodBase::CreateQualityFunction( this, NULL, strategyParams.FetchNameValueDef("quality", "darkest")); CPLAssert( method != NULL ); qualityMethods.push_back(method); if(getStratParam("quality_file") != NULL) { method = QualityMethodBase::CreateQualityFunction( this, NULL, "qualityfromfile"); CPLAssert( method != NULL ); qualityMethods.push_back(method); } if( EQUAL(getStratParam("compositor",""),"median") || getStratParam("median_ratio") != NULL || getStratParam("quality_percentile") != NULL ) { method = QualityMethodBase::CreateQualityFunction( this, NULL, "percentile"); CPLAssert( method != NULL ); qualityMethods.push_back(method); } return; } WJElement method_def = NULL; while( (method_def = _WJEObject(compositors, "[]", WJE_GET, &method_def)) ) { CPLString methodClass = WJEString(method_def, "class", WJE_GET, NULL); CPLAssert(strlen(methodClass) > 0); QualityMethodBase *method = QualityMethodBase::CreateQualityFunction( this, method_def, methodClass); CPLAssert( method != NULL ); qualityMethods.push_back(method); } }