1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00
Files
winscp/source/windows/SynchronizeController.h
Martin Prikryl 74fdf539de Clang imposed changes that should be noop and have no effect on classic compiler (2nd after 92ba1e3f0 + preceding commits)
Mostly
– explicit static global variables
– const, sign and down casts safety
– same-named variables in nested scopes
– incorrectly identified uninitialized variables
– semicolon after function implementation
– unused variables, fields, arguments and macros
– exact include filename case
– field initialization order
– typename use
– struct vs class declarations
– incorrectly identified uninitialized variables
– refactoring to solve Clang internal compiler error when using new variable in __finally block

Source commit: 3da995ff5169eefcfe3b3b7cc0d019c660096c07
2025-06-24 16:32:34 +02:00

88 lines
4.3 KiB
C++

//---------------------------------------------------------------------------
#ifndef SynchronizeControllerH
#define SynchronizeControllerH
//---------------------------------------------------------------------------
#include <CopyParam.h>
//---------------------------------------------------------------------------
struct TSynchronizeParamType
{
UnicodeString LocalDirectory;
UnicodeString RemoteDirectory;
int Params;
int Options;
};
//---------------------------------------------------------------------------
class TSynchronizeController;
struct TSynchronizeOptions;
class TSynchronizeChecklist;
typedef void __fastcall (__closure * TSynchronizeAbortEvent)
(System::TObject * Sender, bool Close);
typedef void __fastcall (__closure * TSynchronizeThreadsEvent)
(TObject* Sender, TThreadMethod Method);
enum TSynchronizeLogEntry { slScan, slStart, slChange, slUpload, slDelete, slDirChange, slContinuedError };
typedef void __fastcall (__closure * TSynchronizeLog)
(TSynchronizeController * Controller, TSynchronizeLogEntry Entry, const UnicodeString Message);
typedef void __fastcall (__closure * TSynchronizeStartStopEvent)
(System::TObject * Sender, bool Start, const TSynchronizeParamType & Params,
const TCopyParamType & CopyParam, TSynchronizeOptions * Options,
TSynchronizeAbortEvent OnAbort, TSynchronizeThreadsEvent OnSynchronizeThreads,
TSynchronizeLog OnSynchronizeLog);
typedef void __fastcall (__closure * TSynchronizeEvent)
(TSynchronizeController * Sender, const UnicodeString LocalDirectory,
const UnicodeString RemoteDirectory, const TCopyParamType & CopyParam,
const TSynchronizeParamType & Params, TSynchronizeChecklist ** Checklist,
TSynchronizeOptions * Options, bool Full);
typedef void __fastcall (__closure * TSynchronizeInvalidEvent)
(TSynchronizeController * Sender, const UnicodeString Directory, const UnicodeString ErrorStr);
typedef void __fastcall (__closure * TSynchronizeTooManyDirectories)
(TSynchronizeController * Sender, int & MaxDirectories);
//---------------------------------------------------------------------------
namespace Discmon
{
class TDiscMonitor;
}
//---------------------------------------------------------------------------
enum TSynchronizeOperation { soUpload, soDelete };
//---------------------------------------------------------------------------
class TSynchronizeController
{
public:
__fastcall TSynchronizeController(TSynchronizeEvent AOnSynchronize,
TSynchronizeInvalidEvent AOnSynchronizeInvalid,
TSynchronizeTooManyDirectories AOnTooManyDirectories);
__fastcall ~TSynchronizeController();
void __fastcall StartStop(TObject * Sender, bool Start,
const TSynchronizeParamType & Params, const TCopyParamType & CopyParam,
TSynchronizeOptions * Options,
TSynchronizeAbortEvent OnAbort, TSynchronizeThreadsEvent OnSynchronizeThreads,
TSynchronizeLog OnSynchronizeLog);
void __fastcall LogOperation(TSynchronizeOperation Operation, const UnicodeString FileName);
private:
TSynchronizeEvent FOnSynchronize;
TSynchronizeParamType FSynchronizeParams;
TSynchronizeOptions * FOptions;
Discmon::TDiscMonitor * FSynchronizeMonitor;
TSynchronizeAbortEvent FSynchronizeAbort;
TSynchronizeInvalidEvent FOnSynchronizeInvalid;
TSynchronizeTooManyDirectories FOnTooManyDirectories;
TSynchronizeLog FSynchronizeLog;
TCopyParamType FCopyParam;
void __fastcall SynchronizeChange(TObject * Sender, const UnicodeString Directory,
bool & SubdirsChanged);
void __fastcall SynchronizeAbort(bool Close);
void __fastcall SynchronizeLog(TSynchronizeLogEntry Entry, const UnicodeString Message);
void __fastcall SynchronizeInvalid(TObject * Sender, const UnicodeString Directory,
const UnicodeString ErrorStr);
void __fastcall SynchronizeFilter(TObject * Sender, const UnicodeString DirectoryName,
bool & Add);
void __fastcall SynchronizeTooManyDirectories(TObject * Sender, int & MaxDirectories);
void __fastcall SynchronizeDirectoriesChange(TObject * Sender, int Directories);
};
//---------------------------------------------------------------------------
void __fastcall LogSynchronizeEvent(TTerminal * Terminal, const UnicodeString & Message);
//---------------------------------------------------------------------------
#endif