Usage.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. int __fastcall Inc(const UnicodeString & Key, int Increment = 1);
  18. void __fastcall SetMax(const UnicodeString & Key, int Value);
  19. UnicodeString __fastcall Get(const UnicodeString & Key);
  20. void __fastcall UpdateCurrentVersion();
  21. void __fastcall Reset();
  22. void __fastcall Default();
  23. void __fastcall Load(THierarchicalStorage * Storage);
  24. void __fastcall Save(THierarchicalStorage * Storage) const;
  25. UnicodeString __fastcall Serialize(const UnicodeString & Delimiter = L"&", const UnicodeString & Filter = L"") const;
  26. static int __fastcall CalculateCounterSize(__int64 Size);
  27. __property bool Collect = { read = FCollect, write = SetCollect };
  28. private:
  29. typedef std::map<UnicodeString, int> TCounters;
  30. TCriticalSection * FCriticalSection;
  31. TConfiguration * FConfiguration;
  32. TCounters FPeriodCounters;
  33. TCounters FLifetimeCounters;
  34. TStringList * FValues;
  35. bool FCollect;
  36. void __fastcall SetCollect(bool value);
  37. void __fastcall UpdateLastReport();
  38. void __fastcall Load(THierarchicalStorage * Storage,
  39. const UnicodeString & Name, TCounters & Counters);
  40. void __fastcall Save(THierarchicalStorage * Storage,
  41. const UnicodeString & Name, const TCounters & Counters) const;
  42. int __fastcall Inc(const UnicodeString & Key, TCounters & Counters, int Increment);
  43. void __fastcall SetMax(const UnicodeString & Key, int Value, TCounters & Counters);
  44. void __fastcall Serialize(
  45. UnicodeString& List, const UnicodeString & Name, const TCounters & Counters,
  46. const UnicodeString & Delimiter, const UnicodeString & FilterUpper) const;
  47. void __fastcall Serialize(
  48. UnicodeString & List, const UnicodeString & Name, const UnicodeString & Value,
  49. const UnicodeString & Delimiter, const UnicodeString & FilterUpper) const;
  50. void __fastcall ResetLastExceptions();
  51. void __fastcall ResetValue(const UnicodeString & Key);
  52. };
  53. //---------------------------------------------------------------------------
  54. extern const UnicodeString LastInternalExceptionCounter;
  55. extern const UnicodeString LastUpdateExceptionCounter;
  56. //---------------------------------------------------------------------------
  57. #endif