| //===-- Gauge.cpp -----------------------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "Gauge.h" |
| #include "lldb/lldb-forward.h" |
| |
| template <> |
| lldb_perf::Results::ResultSP |
| lldb_perf::GetResult (const char *description, double value) |
| { |
| if (description && description[0]) |
| { |
| std::unique_ptr<Results::Dictionary> value_dict_ap (new Results::Dictionary ()); |
| value_dict_ap->AddString("description", NULL, description); |
| value_dict_ap->AddDouble("value", NULL, value); |
| return Results::ResultSP (value_dict_ap.release()); |
| } |
| return Results::ResultSP (new Results::Double (NULL, NULL, value)); |
| } |
| |
| template <> |
| lldb_perf::Results::ResultSP |
| lldb_perf::GetResult (const char *description, uint64_t value) |
| { |
| if (description && description[0]) |
| { |
| std::unique_ptr<Results::Dictionary> value_dict_ap (new Results::Dictionary ()); |
| value_dict_ap->AddString("description", NULL, description); |
| value_dict_ap->AddUnsigned("value", NULL, value); |
| return Results::ResultSP (value_dict_ap.release()); |
| } |
| return Results::ResultSP (new Results::Unsigned (NULL, NULL, value)); |
| } |
| |
| template <> |
| lldb_perf::Results::ResultSP |
| lldb_perf::GetResult (const char *description, std::string value) |
| { |
| if (description && description[0]) |
| { |
| std::unique_ptr<Results::Dictionary> value_dict_ap (new Results::Dictionary ()); |
| value_dict_ap->AddString("description", NULL, description); |
| value_dict_ap->AddString("value", NULL, value.c_str()); |
| return Results::ResultSP (value_dict_ap.release()); |
| } |
| return Results::ResultSP (new Results::String (NULL, NULL, value.c_str())); |
| } |