/*
* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
 */
#ifndef COUNTER_H
#define COUNTER_H
#include "Metric.h"
#include "MetricType.h"

namespace omnistream {
    // Define MetricType if not defined elsewhere.
    class Counter : public Metric {
    public:
        ~Counter() override = default ;
        virtual void Inc() = 0;
        virtual void Inc(long var1) = 0;
        virtual void Dec() = 0;
        virtual void Dec(long var1) = 0;
        virtual long GetCount() = 0;

        virtual MetricType GetMetricType() const
        {
            return MetricType::COUNTER;
        }
    };
} // namespace omnistream
#endif // COUNTER_H