bool HGEMemoizer::digestJSON(JSONValue& json) { bool result = 0; for (JSONMemberIter iter = json.MemberBegin(); iter != json.MemberEnd(); iter++) { const char * job = iter->first.c_str(); JSONValue const * tools = iter->second; if (0 == strcmp("clear", job)) { if (!tools->IsArray()) { continue; } JSONValue const * inputValue = 0; JSONValue const * streamValue = 0; VAPIDJSON_GET_ELEMENTS(*tools, &inputValue, &streamValue); if (!inputValue->IsBool() || !streamValue->IsString()) { continue; } bool input = inputValue->GetBool(); const char * stream = streamValue->GetString(); result = this->clear(input, stream) && result; } else if (0 == strcmp("disable", job)) { if (!tools->IsArray()) { continue; } JSONValue const * inputValue = 0; JSONValue const * streamValue = 0; VAPIDJSON_GET_ELEMENTS(*tools, &inputValue, &streamValue); if (!inputValue->IsBool() || !streamValue->IsString()) { continue; } bool input = inputValue->GetBool(); const char * stream = streamValue->GetString(); result = this->disable(input, stream) && result; } else if (0 == strcmp("enable", job)) { if (!tools->IsArray()) { continue; } JSONValue const * inputValue = 0; JSONValue const * streamValue = 0; JSONValue const * formatValue = 0; VAPIDJSON_GET_ELEMENTS(*tools, &inputValue, &streamValue, &formatValue); if (!inputValue->IsBool() || !streamValue->IsString()) { continue; } bool input = inputValue->GetBool(); const char * stream = streamValue->GetString(); const char * format = formatValue->IsString() ? formatValue->GetString() : 0; result = this->enable(input, stream, format) && result; } else if (0 == strcmp("rename", job)) { if (!tools->IsArray()) { continue; } JSONValue const * inputValue = 0; JSONValue const * streamValue = 0; JSONValue const * nameValue = 0; VAPIDJSON_GET_ELEMENTS(*tools, &inputValue, &streamValue, &nameValue); if (!inputValue->IsBool() || !streamValue->IsString() || !nameValue->IsString()) { continue; } bool input = inputValue->GetBool(); const char * stream = streamValue->GetString(); const char * name = nameValue->GetString(); result = this->rename(input, stream, name) && result; } } return result; }