Usage.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //---------------------------------------------------------------------------
  2. #ifndef UsageH
  3. #define UsageH
  4. #include <map>
  5. #include "HierarchicalStorage.h"
  6. //---------------------------------------------------------------------------
  7. class TConfiguration;
  8. //---------------------------------------------------------------------------
  9. class TUsage
  10. {
  11. public:
  12. __fastcall TUsage(TConfiguration * Configuration);
  13. virtual __fastcall ~TUsage();
  14. void __fastcall Set(const UnicodeString & Key, const UnicodeString & Value);
  15. void __fastcall Set(const UnicodeString & Key, int Value);
  16. void __fastcall Set(const UnicodeString & Key, bool Value);
  17. void __fastcall Inc(const UnicodeString & Key);
  18. void __fastcall SetMax(const UnicodeString & Key, int Value);
  19. void __fastcall UpdateCurrentVersion();
  20. void __fastcall Reset();
  21. void __fastcall Default();
  22. void __fastcall Load(THierarchicalStorage * Storage);
  23. void __fastcall Save(THierarchicalStorage * Storage) const;
  24. UnicodeString __fastcall Serialize() const;
  25. __property bool Collect = { read = FCollect, write = SetCollect };
  26. private:
  27. typedef std::map<UnicodeString, int> TCounters;
  28. TCriticalSection * FCriticalSection;
  29. TConfiguration * FConfiguration;
  30. TCounters FPeriodCounters;
  31. TCounters FLifetimeCounters;
  32. TStringList * FValues;
  33. bool FCollect;
  34. UnicodeString __fastcall Get(const UnicodeString & Key);
  35. void __fastcall SetCollect(bool value);
  36. void __fastcall UpdateLastReport();
  37. void __fastcall Load(THierarchicalStorage * Storage,
  38. const UnicodeString & Name, TCounters & Counters);
  39. void __fastcall Save(THierarchicalStorage * Storage,
  40. const UnicodeString & Name, const TCounters & Counters) const;
  41. void __fastcall Inc(const UnicodeString & Key, TCounters & Counters);
  42. void __fastcall SetMax(const UnicodeString & Key, int Value, TCounters & Counters);
  43. void __fastcall Serialize(UnicodeString& List,
  44. const UnicodeString & Name, const TCounters & Counters) const;
  45. };
  46. //---------------------------------------------------------------------------
  47. #endif