comparison extensions/dbg_dict_dump_json/dbg_dict_dump_json.cc @ 1456:8627338e36ab

fix dbg_dict_dump_json build Cast to jsoncpp *Int64 types as they may differ from *int64_t. Don't rely upon C++11 support in compilers.
author Luke Mewburn <luke@mewburn.net>
date Fri, 28 Feb 2020 10:21:52 +1100
parents 159d80986d85
children da5e5b9c9623
comparison
equal deleted inserted replaced
1455:75b6ec7c70b3 1456:8627338e36ab
102 case AVP_TYPE_INTEGER32: 102 case AVP_TYPE_INTEGER32:
103 enumval["Code"] = Json::Value(data->enum_value.i32); 103 enumval["Code"] = Json::Value(data->enum_value.i32);
104 break; 104 break;
105 105
106 case AVP_TYPE_INTEGER64: 106 case AVP_TYPE_INTEGER64:
107 enumval["Code"] = Json::Value(data->enum_value.i64); 107 enumval["Code"] = Json::Value(static_cast<Json::Int64>(data->enum_value.i64));
108 break; 108 break;
109 109
110 case AVP_TYPE_UNSIGNED32: 110 case AVP_TYPE_UNSIGNED32:
111 enumval["Code"] = Json::Value(data->enum_value.u32); 111 enumval["Code"] = Json::Value(data->enum_value.u32);
112 break; 112 break;
113 113
114 case AVP_TYPE_UNSIGNED64: 114 case AVP_TYPE_UNSIGNED64:
115 enumval["Code"] = Json::Value(data->enum_value.u64); 115 enumval["Code"] = Json::Value(static_cast<Json::UInt64>(data->enum_value.u64));
116 break; 116 break;
117 117
118 case AVP_TYPE_FLOAT32: 118 case AVP_TYPE_FLOAT32:
119 enumval["Code"] = Json::Value(data->enum_value.f32); 119 enumval["Code"] = Json::Value(data->enum_value.f32);
120 break; 120 break;
411 return EINVAL; 411 return EINVAL;
412 } 412 }
413 /* remove enumerated types before dumping, they are in AVPs */ 413 /* remove enumerated types before dumping, they are in AVPs */
414 /* convert remaining ones to array */ 414 /* convert remaining ones to array */
415 Json::Value::Members members = main["Types"].getMemberNames(); 415 Json::Value::Members members = main["Types"].getMemberNames();
416 for (auto it = members.begin() ; it != members.end(); ++it) { 416 for (Json::Value::Members::const_iterator it = members.begin() ; it != members.end(); ++it) {
417 if (strncmp("Enumerated", main["Types"][*it]["Name"].asCString(), strlen("Enumerated")) == 0) { 417 if (strncmp("Enumerated", main["Types"][*it]["Name"].asCString(), strlen("Enumerated")) == 0) {
418 main["Types"].removeMember(*it); 418 main["Types"].removeMember(*it);
419 } else { 419 } else {
420 types.append(main["Types"][*it]); 420 types.append(main["Types"][*it]);
421 } 421 }
"Welcome to our mercurial repository"