aboutsummaryrefslogtreecommitdiff
path: root/lldb/tools/lldb-perf/lib/Results.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-perf/lib/Results.h')
-rw-r--r--lldb/tools/lldb-perf/lib/Results.h461
1 files changed, 177 insertions, 284 deletions
diff --git a/lldb/tools/lldb-perf/lib/Results.h b/lldb/tools/lldb-perf/lib/Results.h
index 388077e..a3d467ff 100644
--- a/lldb/tools/lldb-perf/lib/Results.h
+++ b/lldb/tools/lldb-perf/lib/Results.h
@@ -17,296 +17,189 @@
namespace lldb_perf {
-class Results
-{
+class Results {
public:
- class Array;
- class Dictionary;
- class Double;
- class String;
- class Unsigned;
-
- class Result
- {
- public:
- enum class Type
- {
- Invalid,
- Array,
- Dictionary,
- Double,
- String,
- Unsigned
- };
-
- Result (Type type, const char *name, const char *description) :
- m_name (),
- m_description(),
- m_type (type)
- {
- if (name && name[0])
- m_name = name;
- if (description && description[0])
- m_description = description;
- }
-
- virtual
- ~Result()
- {
- }
-
- virtual void
- Write (Results &results) = 0;
-
- Array *
- GetAsArray ()
- {
- if (m_type == Type::Array)
- return (Array *)this;
- return NULL;
- }
- Dictionary *
- GetAsDictionary ()
- {
- if (m_type == Type::Dictionary)
- return (Dictionary *)this;
- return NULL;
- }
- Double *
- GetAsDouble ()
- {
- if (m_type == Type::Double)
- return (Double *)this;
- return NULL;
- }
-
- String *
- GetAsString ()
- {
- if (m_type == Type::String)
- return (String *)this;
- return NULL;
- }
- Unsigned *
- GetAsUnsigned ()
- {
- if (m_type == Type::Unsigned)
- return (Unsigned *)this;
- return NULL;
- }
-
- const char *
- GetName() const
- {
- if (m_name.empty())
- return NULL;
- return m_name.c_str();
- }
-
- const char *
- GetDescription() const
- {
- if (m_description.empty())
- return NULL;
- return m_description.c_str();
- }
-
- Type
- GetType() const
- {
- return m_type;
- }
-
- protected:
- std::string m_name;
- std::string m_description;
- Type m_type;
- };
-
- typedef std::shared_ptr<Result> ResultSP;
-
- class Array : public Result
- {
- public:
- Array (const char *name, const char *description) :
- Result (Type::Array, name, description)
- {
- }
-
- virtual
- ~Array()
- {
- }
-
- ResultSP
- Append (const ResultSP &result_sp);
-
- void
- ForEach (const std::function <bool (const ResultSP &)> &callback);
-
- virtual void
- Write (Results &results)
- {
- }
- protected:
- typedef std::vector<ResultSP> collection;
- collection m_array;
- };
-
- class Dictionary : public Result
- {
- public:
- Dictionary () :
- Result (Type::Dictionary, NULL, NULL)
- {
- }
-
- Dictionary (const char *name, const char *description) :
- Result (Type::Dictionary, name, description)
- {
- }
-
- virtual
- ~Dictionary()
- {
- }
-
- virtual void
- Write (Results &results)
- {
- }
-
- void
- ForEach (const std::function <bool (const std::string &, const ResultSP &)> &callback);
-
- ResultSP
- Add (const char *name, const char *description, const ResultSP &result_sp);
-
- ResultSP
- AddDouble (const char *name, const char *descriptiorn, double value);
-
- ResultSP
- AddUnsigned (const char *name, const char *description, uint64_t value);
-
- ResultSP
- AddString (const char *name, const char *description, const char *value);
-
- protected:
-
- typedef std::map<std::string, ResultSP> collection;
- collection m_dictionary;
- };
-
- class String : public Result
- {
- public:
- String (const char *name, const char *description, const char *value) :
- Result (Type::String, name, description),
- m_string ()
- {
- if (value && value[0])
- m_string = value;
- }
-
- virtual
- ~String()
- {
- }
-
- virtual void
- Write (Results &results)
- {
- }
-
- const char *
- GetValue () const
- {
- return m_string.empty() ? NULL : m_string.c_str();
- }
-
- protected:
- std::string m_string;
- };
-
- class Double : public Result
- {
- public:
- Double (const char *name, const char *description, double value) :
- Result (Type::Double, name, description),
- m_double (value)
- {
- }
-
- virtual
- ~Double()
- {
- }
-
- virtual void
- Write (Results &results)
- {
- }
-
- double
- GetValue () const
- {
- return m_double;
- }
-
- protected:
- double m_double;
- };
-
- class Unsigned : public Result
- {
- public:
- Unsigned (const char *name, const char *description, uint64_t value) :
- Result (Type::Unsigned, name, description),
- m_unsigned (value)
- {
- }
-
- virtual
- ~Unsigned()
- {
- }
-
- virtual void
- Write (Results &results)
- {
- }
-
- uint64_t
- GetValue () const
- {
- return m_unsigned;
- }
-
- protected:
- uint64_t m_unsigned;
- };
-
- Results () :
- m_results ()
- {
+ class Array;
+ class Dictionary;
+ class Double;
+ class String;
+ class Unsigned;
+
+ class Result {
+ public:
+ enum class Type { Invalid, Array, Dictionary, Double, String, Unsigned };
+
+ Result(Type type, const char *name, const char *description)
+ : m_name(), m_description(), m_type(type) {
+ if (name && name[0])
+ m_name = name;
+ if (description && description[0])
+ m_description = description;
}
-
- ~Results()
- {
+
+ virtual ~Result() {}
+
+ virtual void Write(Results &results) = 0;
+
+ Array *GetAsArray() {
+ if (m_type == Type::Array)
+ return (Array *)this;
+ return NULL;
+ }
+ Dictionary *GetAsDictionary() {
+ if (m_type == Type::Dictionary)
+ return (Dictionary *)this;
+ return NULL;
+ }
+ Double *GetAsDouble() {
+ if (m_type == Type::Double)
+ return (Double *)this;
+ return NULL;
+ }
+
+ String *GetAsString() {
+ if (m_type == Type::String)
+ return (String *)this;
+ return NULL;
+ }
+ Unsigned *GetAsUnsigned() {
+ if (m_type == Type::Unsigned)
+ return (Unsigned *)this;
+ return NULL;
+ }
+
+ const char *GetName() const {
+ if (m_name.empty())
+ return NULL;
+ return m_name.c_str();
+ }
+
+ const char *GetDescription() const {
+ if (m_description.empty())
+ return NULL;
+ return m_description.c_str();
+ }
+
+ Type GetType() const { return m_type; }
+
+ protected:
+ std::string m_name;
+ std::string m_description;
+ Type m_type;
+ };
+
+ typedef std::shared_ptr<Result> ResultSP;
+
+ class Array : public Result {
+ public:
+ Array(const char *name, const char *description)
+ : Result(Type::Array, name, description) {}
+
+ virtual ~Array() {}
+
+ ResultSP Append(const ResultSP &result_sp);
+
+ void ForEach(const std::function<bool(const ResultSP &)> &callback);
+
+ virtual void Write(Results &results) {}
+
+ protected:
+ typedef std::vector<ResultSP> collection;
+ collection m_array;
+ };
+
+ class Dictionary : public Result {
+ public:
+ Dictionary() : Result(Type::Dictionary, NULL, NULL) {}
+
+ Dictionary(const char *name, const char *description)
+ : Result(Type::Dictionary, name, description) {}
+
+ virtual ~Dictionary() {}
+
+ virtual void Write(Results &results) {}
+
+ void ForEach(const std::function<bool(const std::string &,
+ const ResultSP &)> &callback);
+
+ ResultSP Add(const char *name, const char *description,
+ const ResultSP &result_sp);
+
+ ResultSP AddDouble(const char *name, const char *descriptiorn,
+ double value);
+
+ ResultSP AddUnsigned(const char *name, const char *description,
+ uint64_t value);
+
+ ResultSP AddString(const char *name, const char *description,
+ const char *value);
+
+ protected:
+ typedef std::map<std::string, ResultSP> collection;
+ collection m_dictionary;
+ };
+
+ class String : public Result {
+ public:
+ String(const char *name, const char *description, const char *value)
+ : Result(Type::String, name, description), m_string() {
+ if (value && value[0])
+ m_string = value;
}
-
- Dictionary &
- GetDictionary ()
- {
- return m_results;
+
+ virtual ~String() {}
+
+ virtual void Write(Results &results) {}
+
+ const char *GetValue() const {
+ return m_string.empty() ? NULL : m_string.c_str();
}
- void
- Write (const char *path);
-
+ protected:
+ std::string m_string;
+ };
+
+ class Double : public Result {
+ public:
+ Double(const char *name, const char *description, double value)
+ : Result(Type::Double, name, description), m_double(value) {}
+
+ virtual ~Double() {}
+
+ virtual void Write(Results &results) {}
+
+ double GetValue() const { return m_double; }
+
+ protected:
+ double m_double;
+ };
+
+ class Unsigned : public Result {
+ public:
+ Unsigned(const char *name, const char *description, uint64_t value)
+ : Result(Type::Unsigned, name, description), m_unsigned(value) {}
+
+ virtual ~Unsigned() {}
+
+ virtual void Write(Results &results) {}
+
+ uint64_t GetValue() const { return m_unsigned; }
+
+ protected:
+ uint64_t m_unsigned;
+ };
+
+ Results() : m_results() {}
+
+ ~Results() {}
+
+ Dictionary &GetDictionary() { return m_results; }
+
+ void Write(const char *path);
+
protected:
- Dictionary m_results;
+ Dictionary m_results;
};
-
+
} // namespace lldb_perf
#endif // #ifndef __PerfTestDriver_Results_h__