Global.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Global.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. //---------------------------------------------------------------------------
  8. const UnicodeString EmptyString(TraceInitStr(L"\1\1\1")); // magic
  9. //---------------------------------------------------------------------------
  10. UnicodeString NormalizeString(const UnicodeString & S)
  11. {
  12. UnicodeString Result = S;
  13. if (Result == EmptyString)
  14. {
  15. Result = UnicodeString();
  16. }
  17. return Result;
  18. }
  19. //---------------------------------------------------------------------------
  20. UnicodeString DenormalizeString(const UnicodeString & S)
  21. {
  22. UnicodeString Result = S;
  23. if (Result.IsEmpty())
  24. {
  25. Result = EmptyString;
  26. }
  27. return Result;
  28. }
  29. //---------------------------------------------------------------------------
  30. // TGuard
  31. //---------------------------------------------------------------------------
  32. __fastcall TGuard::TGuard(TCriticalSection * ACriticalSection) :
  33. FCriticalSection(ACriticalSection)
  34. {
  35. DebugAssert(ACriticalSection != NULL);
  36. FCriticalSection->Enter();
  37. }
  38. //---------------------------------------------------------------------------
  39. __fastcall TGuard::~TGuard()
  40. {
  41. FCriticalSection->Leave();
  42. }
  43. //---------------------------------------------------------------------------
  44. // TUnguard
  45. //---------------------------------------------------------------------------
  46. __fastcall TUnguard::TUnguard(TCriticalSection * ACriticalSection) :
  47. FCriticalSection(ACriticalSection)
  48. {
  49. DebugAssert(ACriticalSection != NULL);
  50. FCriticalSection->Leave();
  51. }
  52. //---------------------------------------------------------------------------
  53. __fastcall TUnguard::~TUnguard()
  54. {
  55. FCriticalSection->Enter();
  56. }
  57. //---------------------------------------------------------------------------