Skip to content

Commit

Permalink
Checkpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
kmaragon committed Dec 5, 2022
1 parent 0844844 commit 4c9eff5
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
2 changes: 1 addition & 1 deletion cxxmetrics/gauge.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ class gauge : public gauges::primitive_gauge<TGaugeType, TAggregation>, public m
{
public:
explicit gauge(const TGaugeType& value = TGaugeType()) noexcept :
gauges::primitive_gauge<TGaugeType>(value)
gauges::primitive_gauge<TGaugeType, TAggregation>(value)
{ }
gauge(const gauge& copy) = default;
gauge(gauge&& mv) = default;
Expand Down
27 changes: 22 additions & 5 deletions cxxmetrics/publisher.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,37 +195,50 @@ class histogram_publish_options : public virtual value_publish_options
static auto def = std::make_shared<quantile_options<quantile(50.0l), quantile(90.0l), quantile(99.0l)>>();
return def;
}

std::shared_ptr<basic_quantile_options> quantiles_;
bool count_;
bool asdist_;
public:
histogram_publish_options(histogram_publish_options&& other) noexcept :
value_publish_options(std::move(other)),
quantiles_(std::move(other.quantiles_)),
count_(other.count_)
count_(other.count_),
asdist_(other.asdist_)
{ }

histogram_publish_options(const scale_factor& sf = scale_factor()) noexcept :
value_publish_options(sf),
count_(true)
count_(true),
asdist_(false)
{ }

histogram_publish_options(bool publish_count, const scale_factor& sf = scale_factor()) noexcept :
value_publish_options(sf),
count_(publish_count)
count_(publish_count),
asdist_(false)
{ }

histogram_publish_options(bool publish_count, bool as_distribution, const scale_factor& sf = scale_factor()) noexcept :
value_publish_options(sf),
count_(publish_count),
asdist_(as_distribution)
{ }

template<typename TQuantileOptions, typename = typename std::enable_if<std::is_base_of<basic_quantile_options, TQuantileOptions>::value, void>::type>
histogram_publish_options(TQuantileOptions&& quantile_options, bool publish_count = true, const scale_factor& sf = scale_factor()) :
histogram_publish_options(TQuantileOptions&& quantile_options, bool publish_count = true, bool as_distribution = false, const scale_factor& sf = scale_factor()) :
value_publish_options(sf),
quantiles_(std::make_unique<TQuantileOptions>(std::forward<TQuantileOptions>(quantile_options))),
count_(publish_count)
count_(publish_count),
asdist_(as_distribution)
{ }

histogram_publish_options& operator=(histogram_publish_options&& other) noexcept
{
value_publish_options::operator=(std::move(other));
quantiles_ = std::move(other.quantiles_);
count_ = other.count_;
asdist_ = other.asdist_;
return *this;
}

Expand All @@ -248,6 +261,10 @@ class histogram_publish_options : public virtual value_publish_options
bool include_count() const noexcept {
return count_;
}

bool as_distribution() const noexcept {
return asdist_;
}
};

/**
Expand Down

0 comments on commit 4c9eff5

Please sign in to comment.