Beispiel #1
0
 void SerializeMatch(Writer &writer, const Match &match) {
     writer.StartObject();
     writer.Key("startEA");
     writer.Uint(match.getStartEA().getValue());
     writer.Key("endEA");
     writer.Uint(match.getEndEA().getValue());
     writer.Key("patternName");
     writer.String(match.getPatternName());
     writer.EndObject();
 }
Beispiel #2
0
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();
}
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;
    }
}
Beispiel #4
0
void stringify(Writer& writer, const std::unordered_map<std::string, T>& m) {
    writer.StartObject();
    for (const auto& p : m) {
        writer.Key(p.first.data(), static_cast<unsigned>(p.first.size()));
        stringify(writer, p.second);
    }
    writer.EndObject();
}
Beispiel #5
0
  void serialize(Writer& writer) override {
    writer.StartObject();

    writer.Key("halt");

    if(new_halt_ > old_halt_)
      serialized_halt_ = new_halt_ - old_halt_;

    writer.Uint64(serialized_halt_);

    writer.Key("total");

    if(new_total_ > old_total_)
      serialized_total_ = new_total_ - old_total_;

    writer.Uint64(serialized_total_);

    writer.Key("interval");
    writer.Double(interval_.count());

    writer.EndObject();
  }
Beispiel #6
0
  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();
  }
Beispiel #7
0
    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();
    }
Beispiel #8
0
void stringify(Writer& writer, const PropertyValue<T>& value) {
    if (value) {
        writer.Key(Property::key);
        stringify(writer, value);
    }
}