void stringify(Writer& writer, const Function<T>& f) { writer.StartObject(); writer.Key("base"); writer.Double(f.getBase()); writer.Key("stops"); writer.StartArray(); for (const auto& stop : f.getStops()) { writer.StartArray(); writer.Double(stop.first); stringify(writer, stop.second); writer.EndArray(); } writer.EndArray(); writer.EndObject(); }
void stringify(Writer& writer, const std::vector<T>& v) { writer.StartArray(); for (const auto& e : v) { stringify(writer, e); } writer.EndArray(); }
static void write_object(Writer<StringBuffer>& writer, object_t* object) { switch (object->type) { case type_nil: writer.Null(); break; case type_bool: writer.Bool(object->b); break; case type_double: writer.Double(object->d); break; case type_int: writer.Int64(object->i); break; case type_uint: writer.Uint64(object->u); break; case type_str: writer.String(object->str, object->l); break; case type_array: writer.StartArray(); for (size_t i = 0; i < object->l; ++i) write_object(writer, object->children + i); writer.EndArray(); break; case type_map: writer.StartObject(); for (size_t i = 0; i < object->l; ++i) { writer.Key(object->children[i * 2].str, object->children[i * 2].l); write_object(writer, object->children + i * 2 + 1); } writer.EndObject(); break; default: assert(0); break; } }
void stringify(Writer& writer, const std::array<float, 4>& v) { writer.StartArray(); writer.Double(v[0]); writer.Double(v[1]); writer.Double(v[2]); writer.Double(v[3]); writer.EndArray(); }
void DrawersBotString::Serialize(Writer &writer) const { writer.StartObject(); writer.String("botStringElements"); writer.StartArray(); for (std::list<BotStringElement>::const_iterator dependentItr = botStringElements.begin(); dependentItr != botStringElements.end(); ++dependentItr) dependentItr->Serialize(writer); writer.EndArray(); writer.EndObject(); }
void HostList::serialize(Writer& w) { w.StartObject(); w.String("HOSTS"); w.StartArray(); pthread_mutex_lock(&mutexHosts); for (HostVector::iterator it = hosts.begin(); it != hosts.end(); it++) { w.String(it->c_str()); } pthread_mutex_unlock(&mutexHosts); w.EndArray(); w.EndObject(); }
bool operator()(Writer<T> & writer) { writer.StartObject(); writer.String("name"); writer.String(name.c_str()); writer.String("domain"); writer.String(domain.c_str()); if (your_location) { writer.String("your_location"); writer.String(your_location.get().c_str()); } writer.String("my_role"); writer.StartArray(); if (roles & OFConstants::POLICY_ELEMENT) writer.String("policy_element"); if (roles & OFConstants::POLICY_REPOSITORY) writer.String("policy_repository"); if (roles & OFConstants::ENDPOINT_REGISTRY) writer.String("endpoint_registry"); if (roles & OFConstants::OBSERVER) writer.String("observer"); writer.EndArray(); writer.String("peers"); writer.StartArray(); BOOST_FOREACH(const MockOpflexServer::peer_t& peer, peers) { writer.StartObject(); writer.String("role"); writer.StartArray(); if (peer.first & OFConstants::POLICY_ELEMENT) writer.String("policy_element"); if (peer.first & OFConstants::POLICY_REPOSITORY) writer.String("policy_repository"); if (peer.first & OFConstants::ENDPOINT_REGISTRY) writer.String("endpoint_registry"); if (peer.first & OFConstants::OBSERVER) writer.String("observer"); writer.EndArray(); writer.String("connectivity_info"); writer.String(peer.second.c_str()); writer.EndObject(); }
void Serialize(Writer& writer) const { writer.StartObject(); Person::Serialize(writer); writer.String("married"); writer.Bool(married_); writer.String(("dependents")); writer.StartArray(); for (std::vector<Dependent>::const_iterator dependentItr = dependents_.begin(); dependentItr != dependents_.end(); ++dependentItr) dependentItr->Serialize(writer); writer.EndArray(); writer.EndObject(); }
void serialize(Writer& writer) override { writer.StartObject(); auto samples = ::StackSampler::results(sample_size_); auto total = ::StackSampler::samples_total(); auto asleep = ::StackSampler::samples_asleep(); writer.Key("active"); double active = total / (double)(total+asleep) * 100.0; writer.Double(active); writer.Key("asleep"); double asleep_perc = asleep / (double)(total+asleep) * 100.0; writer.Double(asleep_perc); writer.Key("samples"); writer.StartArray(); for (auto& sa : samples) { writer.StartObject(); writer.Key("address"); writer.Uint((uintptr_t)sa.addr); writer.Key("name"); writer.String(sa.name); writer.Key("total"); writer.Uint(sa.samp); // percentage of total samples float perc = sa.samp / (float)total * 100.0f; writer.Key("percent"); writer.Double(perc); writer.EndObject(); } writer.EndArray(); writer.EndObject(); }
void SerializeMatchPersistence(Writer &writer, const MatchPersistence &matchPersistence) { writer.StartObject(); writer.Key("executableName"); writer.String(matchPersistence.getExectuableName()); writer.Key("matcherName"); writer.String(matchPersistence.getMatcherName()); writer.Key("executableArchitecture"); writer.String(matchPersistence.getExecutableArchitecture()); writer.Key("realTime"); writer.Double(matchPersistence.getRealTime()); writer.Key("cpuTime"); writer.Double(matchPersistence.getCpuTime()); writer.Key("matches"); writer.StartArray(); for (auto &match : matchPersistence.getMatches()) { SerializeMatch(writer,*match); } writer.EndArray(); writer.EndObject(); }
/* Writes out an array end using rapidJSON functions */ extern "C" int tm_json_write_array_end (tm_json_w_handler_t wh) { Writer<StringBuffer>* w = static_cast<Writer<StringBuffer>*>(wh.writer); w->EndArray(); return 0; }