19de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton//===-- Results.h -----------------------------------------------*- C++ -*-===// 29de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton// 39de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton// The LLVM Compiler Infrastructure 49de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton// 59de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton// This file is distributed under the University of Illinois Open Source 69de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton// License. See LICENSE.TXT for details. 79de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton// 89de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton//===----------------------------------------------------------------------===// 99de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 109de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton#ifndef __PerfTestDriver_Results_h__ 119de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton#define __PerfTestDriver_Results_h__ 129de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 130b10ef61ea60e24fe7736cd98bd5fb45efe9c816Greg Clayton#include "lldb/lldb-forward.h" 149de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton#include <map> 159de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton#include <string> 169de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton#include <vector> 179de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 189de4dec874148d30cc1d4c498d38cd048a8164caGreg Claytonnamespace lldb_perf { 199de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 209de4dec874148d30cc1d4c498d38cd048a8164caGreg Claytonclass Results 219de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton{ 229de4dec874148d30cc1d4c498d38cd048a8164caGreg Claytonpublic: 239de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Array; 249de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Dictionary; 259de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Double; 269de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class String; 279de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Unsigned; 289de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 299de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Result 309de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 319de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton public: 329de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton enum class Type 339de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 349de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Invalid, 359de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Array, 369de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Dictionary, 379de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Double, 389de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton String, 399de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Unsigned 409de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton }; 419de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 429de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Result (Type type, const char *name, const char *description) : 439de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_name (), 449de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_description(), 459de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_type (type) 469de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 479de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (name && name[0]) 489de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_name = name; 499de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (description && description[0]) 509de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_description = description; 519de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 529de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 539de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual 549de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ~Result() 559de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 569de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 579de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 589de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual void 599de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Write (Results &results) = 0; 609de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 619de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Array * 629de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetAsArray () 639de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 649de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_type == Type::Array) 659de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return (Array *)this; 669de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 679de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 689de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Dictionary * 699de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetAsDictionary () 709de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 719de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_type == Type::Dictionary) 729de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return (Dictionary *)this; 739de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 749de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 759de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Double * 769de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetAsDouble () 779de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 789de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_type == Type::Double) 799de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return (Double *)this; 809de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 819de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 829de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 839de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton String * 849de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetAsString () 859de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 869de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_type == Type::String) 879de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return (String *)this; 889de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 899de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 909de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Unsigned * 919de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetAsUnsigned () 929de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 939de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_type == Type::Unsigned) 949de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return (Unsigned *)this; 959de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 969de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 979de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 989de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton const char * 999de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetName() const 1009de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1019de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_name.empty()) 1029de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 1039de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return m_name.c_str(); 1049de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1059de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1069de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton const char * 1079de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetDescription() const 1089de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1099de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_description.empty()) 1109de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 1119de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return m_description.c_str(); 1129de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1139de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1149de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Type 1159de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetType() const 1169de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1179de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return m_type; 1189de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1199de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1209de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton protected: 1219de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton std::string m_name; 1229de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton std::string m_description; 1239de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Type m_type; 1249de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton }; 1259de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 126102b2c2681c9a830afe25bfea35557421905e42cGreg Clayton typedef std::shared_ptr<Result> ResultSP; 1279de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1289de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Array : public Result 1299de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1309de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton public: 1319de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Array (const char *name, const char *description) : 1329de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Result (Type::Array, name, description) 1339de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1349de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1359de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1369de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual 1379de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ~Array() 1389de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1399de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1409de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 141ec87e5c098f1ce1c9182d1c5438e0beca0996597Enrico Granata ResultSP 1429de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Append (const ResultSP &result_sp); 1439de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1449de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton void 1459de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ForEach (const std::function <bool (const ResultSP &)> &callback); 1469de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1479de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual void 1489de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Write (Results &results) 1499de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1509de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1519de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton protected: 1529de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton typedef std::vector<ResultSP> collection; 1539de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton collection m_array; 1549de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton }; 1559de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1569de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Dictionary : public Result 1579de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1589de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton public: 1599de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Dictionary () : 1609de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Result (Type::Dictionary, NULL, NULL) 1619de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1629de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1639de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1649de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Dictionary (const char *name, const char *description) : 1659de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Result (Type::Dictionary, name, description) 1669de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1679de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1689de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1699de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual 1709de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ~Dictionary() 1719de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1729de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1739de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1749de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual void 1759de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Write (Results &results) 1769de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 1779de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 1789de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1799de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton void 1809de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ForEach (const std::function <bool (const std::string &, const ResultSP &)> &callback); 1819de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 182ec87e5c098f1ce1c9182d1c5438e0beca0996597Enrico Granata ResultSP 1839de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Add (const char *name, const char *description, const ResultSP &result_sp); 1849de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 185ec87e5c098f1ce1c9182d1c5438e0beca0996597Enrico Granata ResultSP 1869de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton AddDouble (const char *name, const char *descriptiorn, double value); 1879de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 188ec87e5c098f1ce1c9182d1c5438e0beca0996597Enrico Granata ResultSP 1899de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton AddUnsigned (const char *name, const char *description, uint64_t value); 1909de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 191ec87e5c098f1ce1c9182d1c5438e0beca0996597Enrico Granata ResultSP 1929de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton AddString (const char *name, const char *description, const char *value); 1939de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1949de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton protected: 1959de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 1969de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton typedef std::map<std::string, ResultSP> collection; 1979de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton collection m_dictionary; 1989de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton }; 1999de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2009de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class String : public Result 2019de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2029de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton public: 2039de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton String (const char *name, const char *description, const char *value) : 2049de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Result (Type::String, name, description), 2059de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_string () 2069de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2079de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (value && value[0]) 2089de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_string = value; 2099de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2109de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2119de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual 2129de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ~String() 2139de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2149de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2159de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2169de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual void 2179de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Write (Results &results) 2189de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2199de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2209de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2219de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton const char * 2229de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetValue () const 2239de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2249de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return m_string.empty() ? NULL : m_string.c_str(); 2259de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2269de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2279de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton protected: 2289de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton std::string m_string; 2299de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton }; 2309de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2319de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Double : public Result 2329de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2339de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton public: 2349de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Double (const char *name, const char *description, double value) : 2359de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Result (Type::Double, name, description), 2369de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_double (value) 2379de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2389de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2399de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2409de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual 2419de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ~Double() 2429de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2439de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2449de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2459de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual void 2469de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Write (Results &results) 2479de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2489de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2499de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2509de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton double 2519de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetValue () const 2529de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2539de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return m_double; 2549de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2559de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2569de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton protected: 2579de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton double m_double; 2589de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton }; 2599de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2609de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton class Unsigned : public Result 2619de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2629de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton public: 2639de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Unsigned (const char *name, const char *description, uint64_t value) : 2649de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Result (Type::Unsigned, name, description), 2659de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_unsigned (value) 2669de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2679de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2689de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2699de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual 2709de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ~Unsigned() 2719de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2729de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2739de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2749de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton virtual void 2759de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Write (Results &results) 2769de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2779de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2789de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2799de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton uint64_t 2809de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetValue () const 2819de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2829de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return m_unsigned; 2839de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2849de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2859de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton protected: 2869de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton uint64_t m_unsigned; 2879de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton }; 2889de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2899de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Results () : 2909de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton m_results () 2919de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2929de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2939de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2949de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton ~Results() 2959de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 2969de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 2979de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 2989de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Dictionary & 2999de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetDictionary () 3009de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton { 3019de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return m_results; 3029de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton } 3039de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 3049de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton void 3059de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Write (const char *path); 3069de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 3079de4dec874148d30cc1d4c498d38cd048a8164caGreg Claytonprotected: 3089de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton Dictionary m_results; 3099de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton}; 3109de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton 3119de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton} // namespace lldb_perf 3129de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton#endif // #ifndef __PerfTestDriver_Results_h__ 313