Metric.h revision d2c50b1793f69af4d09b5ba364dc0a1a88ec26f5
1d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton//===-- Metric.h ------------------------------------------------*- C++ -*-===// 2f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata// 3d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton// The LLVM Compiler Infrastructure 4f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata// 5d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton// This file is distributed under the University of Illinois Open Source 6d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton// License. See LICENSE.TXT for details. 7f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata// 8d3a8d6565ff40fd99533f50a085ace806a9300eeGreg Clayton//===----------------------------------------------------------------------===// 9f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 10f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#ifndef __PerfTestDriver__Metric__ 11f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#define __PerfTestDriver__Metric__ 12f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 13f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include <vector> 14f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include <string> 15f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#include <mach/task_info.h> 16f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 1775fc5a74d95804e2ddc87bcade177640521147e0Greg Claytonnamespace lldb_perf { 1875fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton 1953bba61c0b9f3b3ceff5835f79d61efa0d81847cEnrico Granataclass MemoryStats; 2075fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton 21f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granatatemplate <class ValueType> 22d2c50b1793f69af4d09b5ba364dc0a1a88ec26f5Greg Claytonclass Metric 2375fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton{ 24f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granatapublic: 25f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata Metric (); 26c50fc4b658c46ef43b1add131391ecdd1f9bd752Enrico Granata Metric (const char*, const char* = NULL); 27f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 28f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata void 2975fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton Append (ValueType v); 30f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 31f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata ValueType 3275fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton GetAverage () const; 3375fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton 3475fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton size_t 3575fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton GetCount () const; 36f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 37f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata ValueType 3875fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton GetSum () const; 39f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 40f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata const char* 419de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetName () const 4275fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton { 439de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_name.empty()) 449de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 4575fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton return m_name.c_str(); 4675fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton } 4775fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton 48c50fc4b658c46ef43b1add131391ecdd1f9bd752Enrico Granata const char* 499de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton GetDescription () const 5075fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton { 519de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton if (m_description.empty()) 529de4dec874148d30cc1d4c498d38cd048a8164caGreg Clayton return NULL; 5375fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton return m_description.c_str(); 5475fc5a74d95804e2ddc87bcade177640521147e0Greg Clayton } 55f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 569de4dec874148d30cc1d4c498d38cd048a8164caGreg Claytonprivate: 57f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata std::string m_name; 58c50fc4b658c46ef43b1add131391ecdd1f9bd752Enrico Granata std::string m_description; 59f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata std::vector<ValueType> m_dataset; 60f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata}; 61af222500aa2ce2b18149277e561cdf75f2115df2Greg Clayton} 62f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata 63f5af85a2946ed4e1ff4766829d328cfb4961f259Enrico Granata#endif /* defined(__PerfTestDriver__Metric__) */ 64