1a2,13
> * Copyright (c) 2019 Arm Limited
> * All rights reserved.
> *
> * The license below extends only to copyright in the software and shall
> * not be construed as granting a license to any other intellectual
> * property including but not limited to intellectual property relating
> * to a hardware implementation of the functionality of the software
> * licensed hereunder. You may use the software subject to the license
> * terms below provided that you ensure that this notice is replicated
> * unmodified and in its entirety in all distributions of the software,
> * modified or unmodified, in source code or in binary form.
> *
65a78
> #include "base/stats/group.hh"
174a188,190
> private:
> Info *_info;
>
177c193
< void setInfo(Info *info);
---
> void setInfo(Group *parent, Info *info);
188a205,207
> InfoAccess()
> : _info(nullptr) {};
>
231,235c250,253
< protected:
< /**
< * Copy constructor, copies are not allowed.
< */
< DataWrap(const DataWrap &stat) = delete;
---
> public:
> DataWrap() = delete;
> DataWrap(const DataWrap &) = delete;
> DataWrap &operator=(const DataWrap &) = delete;
237,240d254
< /**
< * Can't copy stats.
< */
< void operator=(const DataWrap &) {}
242,243c256
< public:
< DataWrap()
---
> DataWrap(Group *parent, const char *name, const char *desc)
245c258,270
< this->setInfo(new Info(self()));
---
> auto info = new Info(self());
> this->setInfo(parent, info);
>
> if (parent)
> parent->addStat(info);
>
> if (name) {
> info->setName(name);
> info->flags.set(display);
> }
>
> if (desc)
> info->desc = desc;
338c363,365
< DataWrapVec()
---
> DataWrapVec(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : DataWrap<Derived, InfoProxyType>(parent, name, desc)
341,346d367
< DataWrapVec(const DataWrapVec &ref)
< {}
<
< void operator=(const DataWrapVec &)
< {}
<
422a444,448
> DataWrapVec2d(Group *parent, const char *name, const char *desc)
> : DataWrapVec<Derived, InfoProxyType>(parent, name, desc)
> {
> }
>
680c706,708
< ScalarBase()
---
> ScalarBase(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : DataWrap<Derived, ScalarInfoProxy>(parent, name, desc)
810c838,843
< ValueBase() : proxy(NULL) { }
---
> ValueBase(Group *parent, const char *name, const char *desc)
> : DataWrap<Derived, ScalarInfoProxy>(parent, name, desc),
> proxy(NULL)
> {
> }
>
1098,1099c1131,1133
< VectorBase()
< : storage(nullptr), _size(0)
---
> VectorBase(Group *parent, const char *name, const char *desc)
> : DataWrapVec<Derived, VectorInfoProxy>(parent, name, desc),
> storage(nullptr), _size(0)
1238,1239c1272,1274
< Vector2dBase()
< : x(0), y(0), _size(0), storage(nullptr)
---
> Vector2dBase(Group *parent, const char *name, const char *desc)
> : DataWrapVec2d<Derived, Vector2dInfoProxy>(parent, name, desc),
> x(0), y(0), _size(0), storage(nullptr)
1854c1889,1892
< DistBase() { }
---
> DistBase(Group *parent, const char *name, const char *desc)
> : DataWrap<Derived, DistInfoProxy>(parent, name, desc)
> {
> }
1948,1949c1986,1988
< VectorDistBase()
< : storage(NULL)
---
> VectorDistBase(Group *parent, const char *name, const char *desc)
> : DataWrapVec<Derived, VectorDistInfoProxy>(parent, name, desc),
> storage(NULL)
2474a2514,2519
>
> Scalar(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : ScalarBase<Scalar, StatStor>(parent, name, desc)
> {
> }
2484a2530,2535
>
> Average(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : ScalarBase<Average, AvgStor>(parent, name, desc)
> {
> }
2488a2540,2545
> public:
> Value(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : ValueBase<Value>(parent, name, desc)
> {
> }
2496a2554,2559
> public:
> Vector(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : VectorBase<Vector, StatStor>(parent, name, desc)
> {
> }
2504a2568,2573
> public:
> AverageVector(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : VectorBase<AverageVector, AvgStor>(parent, name, desc)
> {
> }
2512a2582,2587
> public:
> Vector2d(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : Vector2dBase<Vector2d, StatStor>(parent, name, desc)
> {
> }
2521a2597,2602
> Distribution(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : DistBase<Distribution, DistStor>(parent, name, desc)
> {
> }
>
2552a2634,2639
> Histogram(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : DistBase<Histogram, HistStor>(parent, name, desc)
> {
> }
>
2579c2666,2668
< StandardDeviation()
---
> StandardDeviation(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : DistBase<StandardDeviation, SampleStor>(parent, name, desc)
2597c2686,2688
< AverageDeviation()
---
> AverageDeviation(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : DistBase<AverageDeviation, AvgSampleStor>(parent, name, desc)
2611a2703,2708
> VectorDistribution(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : VectorDistBase<VectorDistribution, DistStor>(parent, name, desc)
> {
> }
>
2641a2739,2745
> VectorStandardDeviation(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : VectorDistBase<VectorStandardDeviation, SampleStor>(parent, name,
> desc)
> {
> }
>
2664a2769,2775
> VectorAverageDeviation(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : VectorDistBase<VectorAverageDeviation, AvgSampleStor>(parent, name,
> desc)
> {
> }
>
2756c2867,2870
< SparseHistBase() { }
---
> SparseHistBase(Group *parent, const char *name, const char *desc)
> : DataWrap<Derived, SparseHistInfoProxy>(parent, name, desc)
> {
> }
2872a2987,2992
> SparseHistogram(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr)
> : SparseHistBase<SparseHistogram, SparseHistStor>(parent, name, desc)
> {
> }
>
2905c3025,3026
< Formula();
---
> Formula(Group *parent = nullptr, const char *name = nullptr,
> const char *desc = nullptr);
2907,2912c3028,3029
< /**
< * Create a formula with the given root node, register it with the
< * database.
< * @param r The root of the expression tree.
< */
< Formula(Temp r);
---
> Formula(Group *parent, const char *name, const char *desc,
> const Temp &r);
2919c3036
< const Formula &operator=(Temp r);
---
> const Formula &operator=(const Temp &r);
2920a3038,3044
> template<typename T>
> const Formula &operator=(const T &v)
> {
> *this = Temp(v);
> return *this;
> }
>