DiscMon.hpp 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 2002 by Borland Software Corporation
  3. // All rights reserved
  4. // (DO NOT EDIT: machine generated header) 'DiscMon.pas' rev: 6.00
  5. #ifndef DiscMonHPP
  6. #define DiscMonHPP
  7. #pragma delphiheader begin
  8. #pragma option push -w-
  9. #pragma option push -Vx
  10. #include <CompThread.hpp> // Pascal unit
  11. #include <Classes.hpp> // Pascal unit
  12. #include <SysUtils.hpp> // Pascal unit
  13. #include <Windows.hpp> // Pascal unit
  14. #include <SysInit.hpp> // Pascal unit
  15. #include <System.hpp> // Pascal unit
  16. //-- user supplied -----------------------------------------------------------
  17. namespace Discmon
  18. {
  19. //-- type declarations -------------------------------------------------------
  20. typedef void __fastcall (__closure *TDiscMonitorNotify)(System::TObject* Sender, const AnsiString Directory);
  21. typedef void __fastcall (__closure *TDiscMonitorSynchronize)(System::TObject* Sender, Classes::TThreadMethod Method);
  22. class DELPHICLASS TDiscMonitorThread;
  23. class PASCALIMPLEMENTATION TDiscMonitorThread : public Compthread::TCompThread
  24. {
  25. typedef Compthread::TCompThread inherited;
  26. private:
  27. TDiscMonitorNotify FOnChange;
  28. TDiscMonitorNotify FOnInvalid;
  29. TDiscMonitorSynchronize FOnSynchronize;
  30. Classes::TStrings* FDirectories;
  31. unsigned FFilters;
  32. unsigned FDestroyEvent;
  33. unsigned FChangeEvent;
  34. bool FSubTree;
  35. int FChangeDelay;
  36. AnsiString FNotifiedDirectory;
  37. void __fastcall InformChange(void);
  38. void __fastcall InformInvalid(void);
  39. void __fastcall SetDirectories(const Classes::TStrings* Value);
  40. void __fastcall SetFilters(unsigned Value);
  41. void __fastcall SetSubTree(bool Value);
  42. int __fastcall GetMaxDirectories(void);
  43. protected:
  44. virtual void __fastcall Execute(void);
  45. void __fastcall Update(void);
  46. void __fastcall DoSynchronize(Classes::TThreadMethod Method);
  47. public:
  48. __fastcall TDiscMonitorThread(void);
  49. __fastcall virtual ~TDiscMonitorThread(void);
  50. __property int MaxDirectories = {read=GetMaxDirectories, nodefault};
  51. __property Classes::TStrings* Directories = {read=FDirectories, write=SetDirectories};
  52. __property unsigned Filters = {read=FFilters, write=SetFilters, nodefault};
  53. __property TDiscMonitorNotify OnChange = {read=FOnChange, write=FOnChange};
  54. __property TDiscMonitorNotify OnInvalid = {read=FOnInvalid, write=FOnInvalid};
  55. __property TDiscMonitorSynchronize OnSynchronize = {read=FOnSynchronize, write=FOnSynchronize};
  56. __property bool SubTree = {read=FSubTree, write=SetSubTree, nodefault};
  57. __property int ChangeDelay = {read=FChangeDelay, write=FChangeDelay, default=500};
  58. };
  59. #pragma option push -b-
  60. enum TMonitorFilter { moFilename, moDirName, moAttributes, moSize, moLastWrite, moSecurity };
  61. #pragma option pop
  62. typedef Set<TMonitorFilter, moFilename, moSecurity> TMonitorFilters;
  63. class DELPHICLASS TDiscMonitor;
  64. class PASCALIMPLEMENTATION TDiscMonitor : public Classes::TComponent
  65. {
  66. typedef Classes::TComponent inherited;
  67. private:
  68. bool FActive;
  69. TDiscMonitorThread* FMonitor;
  70. TMonitorFilters FFilters;
  71. TDiscMonitorNotify FOnChange;
  72. TDiscMonitorNotify FOnInvalid;
  73. TDiscMonitorSynchronize FOnSynchronize;
  74. bool FShowMsg;
  75. bool FPending;
  76. Classes::TStrings* __fastcall GetDirectories(void);
  77. bool __fastcall GetSubTree(void);
  78. void __fastcall SetActive(bool Value);
  79. void __fastcall SetDirectories(Classes::TStrings* Value);
  80. void __fastcall SetFilters(TMonitorFilters Value);
  81. void __fastcall SetSubTree(bool Value);
  82. int __fastcall GetChangeDelay(void);
  83. void __fastcall SetChangeDelay(int Value);
  84. void __fastcall AddDirectory(Classes::TStrings* Dirs, AnsiString Directory)/* overload */;
  85. int __fastcall GetMaxDirectories(void);
  86. protected:
  87. void __fastcall Change(System::TObject* Sender, const AnsiString Directory);
  88. void __fastcall Invalid(System::TObject* Sender, const AnsiString Directory);
  89. void __fastcall DoSynchronize(System::TObject* Sender, Classes::TThreadMethod Method);
  90. public:
  91. __fastcall virtual TDiscMonitor(Classes::TComponent* AOwner);
  92. __fastcall virtual ~TDiscMonitor(void);
  93. void __fastcall Close(void);
  94. void __fastcall Open(void);
  95. void __fastcall AddDirectory(AnsiString Directory, bool SubDirs)/* overload */;
  96. void __fastcall SetDirectory(AnsiString Directory);
  97. __property TDiscMonitorThread* Thread = {read=FMonitor};
  98. __property int MaxDirectories = {read=GetMaxDirectories, nodefault};
  99. __published:
  100. __property Classes::TStrings* Directories = {read=GetDirectories, write=SetDirectories};
  101. __property bool ShowDesignMsg = {read=FShowMsg, write=FShowMsg, default=0};
  102. __property TDiscMonitorNotify OnChange = {read=FOnChange, write=FOnChange};
  103. __property TDiscMonitorNotify OnInvalid = {read=FOnInvalid, write=FOnInvalid};
  104. __property TDiscMonitorSynchronize OnSynchronize = {read=FOnSynchronize, write=FOnSynchronize};
  105. __property TMonitorFilters Filters = {read=FFilters, write=SetFilters, default=1};
  106. __property bool SubTree = {read=GetSubTree, write=SetSubTree, default=1};
  107. __property bool Active = {read=FActive, write=SetActive, default=0};
  108. __property int ChangeDelay = {read=GetChangeDelay, write=SetChangeDelay, default=500};
  109. };
  110. //-- var, const, procedure ---------------------------------------------------
  111. extern PACKAGE System::ResourceString _STooManyWatchDirectories;
  112. #define Discmon_STooManyWatchDirectories System::LoadResourceString(&Discmon::_STooManyWatchDirectories)
  113. extern PACKAGE void __fastcall Register(void);
  114. } /* namespace Discmon */
  115. using namespace Discmon;
  116. #pragma option pop // -w-
  117. #pragma option pop // -Vx
  118. #pragma delphiheader end.
  119. //-- end unit ----------------------------------------------------------------
  120. #endif // DiscMon