#ifndef _MTRC_ #define _MTRC_ #include #include #include #include #include using namespace std; namespace marcelb { /** * Klasa za mjerenje proizvoljne statistike */ class Metrics { mutex io; map counters; public: Metrics (); Metrics (map _counters); /** * Operator[] za pristup svakoj brojaču mjerenja */ uint& operator[](const string& key) { return counters[key]; } /** * Operator++ za inkrementalno povećanje brojača mjerenja */ Metrics& operator++ (int n) { lock_guard _io(io); n++; return *this; } void set(map _counters) { counters = _counters; } /** * Metoda za resetiranje brojača */ void clear(); /** * Metoda koja vraća vektor stringova svih naziva brojača */ vector keys(); /** * Metoda vraća map svih mjerenja */ map get_data(); /** * Metoda vraća map svih mjerenja i resetira brojače */ map get_data_and_clear(); }; } #endif