123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- //---------------------------------------------------------------------------
- #ifndef UsageH
- #define UsageH
- #include <map>
- #include "HierarchicalStorage.h"
- //---------------------------------------------------------------------------
- class TConfiguration;
- //---------------------------------------------------------------------------
- class TUsage
- {
- public:
- __fastcall TUsage(TConfiguration * Configuration);
- virtual __fastcall ~TUsage();
- void __fastcall Set(const UnicodeString & Key, const UnicodeString & Value);
- void __fastcall Set(const UnicodeString & Key, int Value);
- void __fastcall Set(const UnicodeString & Key, bool Value);
- int __fastcall Inc(const UnicodeString & Key, int Increment = 1);
- void __fastcall SetMax(const UnicodeString & Key, int Value);
- void __fastcall IncAndSetMax(const UnicodeString & IncKey, const UnicodeString & MaxKey, int Value);
- UnicodeString __fastcall Get(const UnicodeString & Key);
- void __fastcall UpdateCurrentVersion();
- void __fastcall Reset();
- void __fastcall Default();
- void __fastcall Load(THierarchicalStorage * Storage);
- void __fastcall Save(THierarchicalStorage * Storage) const;
- UnicodeString __fastcall Serialize(const UnicodeString & Delimiter = L"&", const UnicodeString & Filter = L"") const;
- static int __fastcall CalculateCounterSize(__int64 Size);
- __property bool Collect = { read = FCollect, write = SetCollect };
- private:
- typedef std::map<UnicodeString, int> TCounters;
- TCriticalSection * FCriticalSection;
- TConfiguration * FConfiguration;
- TCounters FPeriodCounters;
- TCounters FLifetimeCounters;
- TStringList * FValues;
- bool FCollect;
- void __fastcall SetCollect(bool value);
- void __fastcall UpdateLastReport();
- void __fastcall Load(THierarchicalStorage * Storage,
- const UnicodeString & Name, TCounters & Counters);
- void __fastcall Save(THierarchicalStorage * Storage,
- const UnicodeString & Name, const TCounters & Counters) const;
- int __fastcall Inc(const UnicodeString & Key, TCounters & Counters, int Increment);
- void __fastcall SetMax(const UnicodeString & Key, int Value, TCounters & Counters);
- void __fastcall Serialize(
- UnicodeString& List, const UnicodeString & Name, const TCounters & Counters,
- const UnicodeString & Delimiter, const UnicodeString & FilterUpper) const;
- void __fastcall Serialize(
- UnicodeString & List, const UnicodeString & Name, const UnicodeString & Value,
- const UnicodeString & Delimiter, const UnicodeString & FilterUpper) const;
- void __fastcall ResetLastExceptions();
- void __fastcall ResetValue(const UnicodeString & Key);
- };
- //---------------------------------------------------------------------------
- extern const UnicodeString LastInternalExceptionCounter;
- extern const UnicodeString LastUpdateExceptionCounter;
- //---------------------------------------------------------------------------
- #endif
|