SynchronizeController.h 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. //---------------------------------------------------------------------------
  2. #ifndef SynchronizeControllerH
  3. #define SynchronizeControllerH
  4. //---------------------------------------------------------------------------
  5. #include <CopyParam.h>
  6. //---------------------------------------------------------------------------
  7. struct TSynchronizeParamType
  8. {
  9. UnicodeString LocalDirectory;
  10. UnicodeString RemoteDirectory;
  11. int Params;
  12. int Options;
  13. };
  14. //---------------------------------------------------------------------------
  15. class TSynchronizeController;
  16. struct TSynchronizeOptions;
  17. class TSynchronizeChecklist;
  18. typedef void __fastcall (__closure * TSynchronizeAbortEvent)
  19. (System::TObject * Sender, bool Close);
  20. typedef void __fastcall (__closure * TSynchronizeThreadsEvent)
  21. (TObject* Sender, TThreadMethod Method);
  22. enum TSynchronizeLogEntry { slScan, slStart, slChange, slUpload, slDelete, slDirChange, slContinuedError };
  23. typedef void __fastcall (__closure * TSynchronizeLog)
  24. (TSynchronizeController * Controller, TSynchronizeLogEntry Entry, const UnicodeString Message);
  25. typedef void __fastcall (__closure * TSynchronizeStartStopEvent)
  26. (System::TObject * Sender, bool Start, const TSynchronizeParamType & Params,
  27. const TCopyParamType & CopyParam, TSynchronizeOptions * Options,
  28. TSynchronizeAbortEvent OnAbort, TSynchronizeThreadsEvent OnSynchronizeThreads,
  29. TSynchronizeLog OnSynchronizeLog);
  30. typedef void __fastcall (__closure * TSynchronizeEvent)
  31. (TSynchronizeController * Sender, const UnicodeString LocalDirectory,
  32. const UnicodeString RemoteDirectory, const TCopyParamType & CopyParam,
  33. const TSynchronizeParamType & Params, TSynchronizeChecklist ** Checklist,
  34. TSynchronizeOptions * Options, bool Full);
  35. typedef void __fastcall (__closure * TSynchronizeInvalidEvent)
  36. (TSynchronizeController * Sender, const UnicodeString Directory, const UnicodeString ErrorStr);
  37. typedef void __fastcall (__closure * TSynchronizeTooManyDirectories)
  38. (TSynchronizeController * Sender, int & MaxDirectories);
  39. //---------------------------------------------------------------------------
  40. namespace Discmon
  41. {
  42. class TDiscMonitor;
  43. }
  44. //---------------------------------------------------------------------------
  45. enum TSynchronizeOperation { soUpload, soDelete };
  46. //---------------------------------------------------------------------------
  47. class TSynchronizeController
  48. {
  49. public:
  50. __fastcall TSynchronizeController(TSynchronizeEvent AOnSynchronize,
  51. TSynchronizeInvalidEvent AOnSynchronizeInvalid,
  52. TSynchronizeTooManyDirectories AOnTooManyDirectories);
  53. __fastcall ~TSynchronizeController();
  54. void __fastcall StartStop(TObject * Sender, bool Start,
  55. const TSynchronizeParamType & Params, const TCopyParamType & CopyParam,
  56. TSynchronizeOptions * Options,
  57. TSynchronizeAbortEvent OnAbort, TSynchronizeThreadsEvent OnSynchronizeThreads,
  58. TSynchronizeLog OnSynchronizeLog);
  59. void __fastcall LogOperation(TSynchronizeOperation Operation, const UnicodeString FileName);
  60. private:
  61. TSynchronizeEvent FOnSynchronize;
  62. TSynchronizeParamType FSynchronizeParams;
  63. TSynchronizeOptions * FOptions;
  64. TSynchronizeThreadsEvent FOnSynchronizeThreads;
  65. Discmon::TDiscMonitor * FSynchronizeMonitor;
  66. TSynchronizeAbortEvent FSynchronizeAbort;
  67. TSynchronizeInvalidEvent FOnSynchronizeInvalid;
  68. TSynchronizeTooManyDirectories FOnTooManyDirectories;
  69. TSynchronizeLog FSynchronizeLog;
  70. TCopyParamType FCopyParam;
  71. void __fastcall SynchronizeChange(TObject * Sender, const UnicodeString Directory,
  72. bool & SubdirsChanged);
  73. void __fastcall SynchronizeAbort(bool Close);
  74. void __fastcall SynchronizeLog(TSynchronizeLogEntry Entry, const UnicodeString Message);
  75. void __fastcall SynchronizeInvalid(TObject * Sender, const UnicodeString Directory,
  76. const UnicodeString ErrorStr);
  77. void __fastcall SynchronizeFilter(TObject * Sender, const UnicodeString DirectoryName,
  78. bool & Add);
  79. void __fastcall SynchronizeTooManyDirectories(TObject * Sender, int & MaxDirectories);
  80. void __fastcall SynchronizeDirectoriesChange(TObject * Sender, int Directories);
  81. };
  82. //---------------------------------------------------------------------------
  83. void __fastcall LogSynchronizeEvent(TTerminal * Terminal, const UnicodeString & Message);
  84. //---------------------------------------------------------------------------
  85. #endif