//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Statistics counter // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef BREAKDOWNCOUNTER_H #define BREAKDOWNCOUNTER_H //------------------------------------------------------------------------------ #include #include #include "latencies.h" //------------------------------------------------------------------------------ /*! Counts and keeps breakdown statistics for session */ class BreakdownCounter { public: BreakdownCounter(std::size_t count); ~BreakdownCounter(); /*! * \brief operator [] returns statistics by index (command number) * \param index - command number * \return statistics */ const NST::breakdown::Latencies operator[](int index) const; /*! * \brief operator [] returns statistics by index (command number) * \param index - command number * \return statistics */ NST::breakdown::Latencies& operator[](int index); /*! * \brief get_total_count returns total amount of commands * \return commands count */ uint64_t get_total_count() const; private: void operator=(const BreakdownCounter&) = delete; std::vector latencies; }; //------------------------------------------------------------------------------ #endif //BREAKDOWNCOUNTER_H //------------------------------------------------------------------------------