浏览代码

Refactoring TTerminal::SynchronizeApply

Source commit: cca8f52763cc91cc9fe3cae2b887f01bdf04fddd
Martin Prikryl 7 年之前
父节点
当前提交
8dc6b45ca8
共有 4 个文件被更改,包括 22 次插入36 次删除
  1. 2 4
      source/core/Script.cpp
  2. 15 26
      source/core/Terminal.cpp
  3. 2 2
      source/core/Terminal.h
  4. 3 4
      source/forms/CustomScpExplorer.cpp

+ 2 - 4
source/core/Script.cpp

@@ -1973,8 +1973,7 @@ void __fastcall TScript::SynchronizeProc(TScriptProcParams * Parameters)
         else
         {
           PrintLine(LoadStr(SCRIPT_SYNCHRONIZE_SYNCHRONIZING));
-          FTerminal->SynchronizeApply(Checklist, LocalDirectory, RemoteDirectory,
-            &CopyParam, SynchronizeParams, OnTerminalSynchronizeDirectory, NULL);
+          FTerminal->SynchronizeApply(Checklist, &CopyParam, SynchronizeParams, OnTerminalSynchronizeDirectory, NULL);
         }
       }
       else
@@ -2008,8 +2007,7 @@ void __fastcall TScript::Synchronize(const UnicodeString LocalDirectory,
     {
       if (AChecklist->Count > 0)
       {
-        FTerminal->SynchronizeApply(AChecklist, LocalDirectory, RemoteDirectory,
-          &CopyParam, SynchronizeParams, OnTerminalSynchronizeDirectory, NULL);
+        FTerminal->SynchronizeApply(AChecklist, &CopyParam, SynchronizeParams, OnTerminalSynchronizeDirectory, NULL);
       }
     }
     __finally

+ 15 - 26
source/core/Terminal.cpp

@@ -6028,8 +6028,8 @@ void __fastcall TTerminal::DoSynchronizeCollectFile(const UnicodeString FileName
   }
 }
 //---------------------------------------------------------------------------
-void __fastcall TTerminal::SynchronizeApply(TSynchronizeChecklist * Checklist,
-  const UnicodeString LocalDirectory, const UnicodeString RemoteDirectory,
+void __fastcall TTerminal::SynchronizeApply(
+  TSynchronizeChecklist * Checklist,
   const TCopyParamType * CopyParam, int Params,
   TSynchronizeDirectory OnSynchronizeDirectory, TProcessedItem OnProcessedItem)
 {
@@ -6048,11 +6048,6 @@ void __fastcall TTerminal::SynchronizeApply(TSynchronizeChecklist * Checklist,
     SyncCopyParam.PreserveTime = true;
   }
 
-  TStringList * DownloadList = new TStringList();
-  TStringList * DeleteRemoteList = new TStringList();
-  TStringList * UploadList = new TStringList();
-  TStringList * DeleteLocalList = new TStringList();
-
   DebugAssert(FOnProcessedItem == NULL);
   FOnProcessedItem = OnProcessedItem;
 
@@ -6065,19 +6060,19 @@ void __fastcall TTerminal::SynchronizeApply(TSynchronizeChecklist * Checklist,
     {
       const TSynchronizeChecklist::TItem * ChecklistItem;
 
-      DownloadList->Clear();
-      DeleteRemoteList->Clear();
-      UploadList->Clear();
-      DeleteLocalList->Clear();
+      std::unique_ptr<TStringList> DownloadList(new TStringList());
+      std::unique_ptr<TStringList> DeleteRemoteList(new TStringList());
+      std::unique_ptr<TStringList> UploadList(new TStringList());
+      std::unique_ptr<TStringList> DeleteLocalList(new TStringList());
 
       ChecklistItem = Checklist->Item[IIndex];
 
       UnicodeString CurrentLocalDirectory = ChecklistItem->Local.Directory;
       UnicodeString CurrentRemoteDirectory = ChecklistItem->Remote.Directory;
 
-      LogEvent(FORMAT(L"Synchronizing local directory '%s' with remote directory '%s', "
-        "params = 0x%x (%s)", (CurrentLocalDirectory, CurrentRemoteDirectory,
-        int(Params), SynchronizeParamsStr(Params))));
+      LogEvent(
+        FORMAT(L"Synchronizing local directory '%s' with remote directory '%s', params = 0x%x (%s)",
+        (CurrentLocalDirectory, CurrentRemoteDirectory, int(Params), SynchronizeParamsStr(Params))));
 
       int Count = 0;
 
@@ -6162,38 +6157,36 @@ void __fastcall TTerminal::SynchronizeApply(TSynchronizeChecklist * Checklist,
         {
           if (DownloadList->Count > 0)
           {
-            ProcessFiles(DownloadList, foSetProperties,
-              SynchronizeLocalTimestamp, NULL, osLocal);
+            ProcessFiles(DownloadList.get(), foSetProperties, SynchronizeLocalTimestamp, NULL, osLocal);
           }
 
           if (UploadList->Count > 0)
           {
-            ProcessFiles(UploadList, foSetProperties,
-              SynchronizeRemoteTimestamp);
+            ProcessFiles(UploadList.get(), foSetProperties, SynchronizeRemoteTimestamp);
           }
         }
         else
         {
           if ((DownloadList->Count > 0) &&
-              !CopyToLocal(DownloadList, Data.LocalDirectory, &SyncCopyParam, CopyParams, NULL))
+              !CopyToLocal(DownloadList.get(), Data.LocalDirectory, &SyncCopyParam, CopyParams, NULL))
           {
             Abort();
           }
 
           if ((DeleteRemoteList->Count > 0) &&
-              !DeleteFiles(DeleteRemoteList))
+              !DeleteFiles(DeleteRemoteList.get()))
           {
             Abort();
           }
 
           if ((UploadList->Count > 0) &&
-              !CopyToRemote(UploadList, Data.RemoteDirectory, &SyncCopyParam, CopyParams, NULL))
+              !CopyToRemote(UploadList.get(), Data.RemoteDirectory, &SyncCopyParam, CopyParams, NULL))
           {
             Abort();
           }
 
           if ((DeleteLocalList->Count > 0) &&
-              !DeleteLocalFiles(DeleteLocalList))
+              !DeleteLocalFiles(DeleteLocalList.get()))
           {
             Abort();
           }
@@ -6204,10 +6197,6 @@ void __fastcall TTerminal::SynchronizeApply(TSynchronizeChecklist * Checklist,
   __finally
   {
     FOnProcessedItem = NULL;
-    delete DownloadList;
-    delete DeleteRemoteList;
-    delete UploadList;
-    delete DeleteLocalList;
 
     EndTransaction();
   }

+ 2 - 2
source/core/Terminal.h

@@ -556,8 +556,8 @@ public:
     const UnicodeString RemoteDirectory, TSynchronizeMode Mode,
     const TCopyParamType * CopyParam, int Params,
     TSynchronizeDirectory OnSynchronizeDirectory, TSynchronizeOptions * Options);
-  void __fastcall SynchronizeApply(TSynchronizeChecklist * Checklist,
-    const UnicodeString LocalDirectory, const UnicodeString RemoteDirectory,
+  void __fastcall SynchronizeApply(
+    TSynchronizeChecklist * Checklist,
     const TCopyParamType * CopyParam, int Params,
     TSynchronizeDirectory OnSynchronizeDirectory, TProcessedItem OnProcessedItem);
   void __fastcall FilesFind(UnicodeString Directory, const TFileMasks & FileMask,

+ 3 - 4
source/forms/CustomScpExplorer.cpp

@@ -5239,8 +5239,7 @@ void __fastcall TCustomScpExplorerForm::Synchronize(const UnicodeString LocalDir
     }
 
     // No need to call if !AnyOperation
-    Terminal->SynchronizeApply(AChecklist, LocalDirectory, RemoteDirectory,
-      &CopyParam, Params | TTerminal::spNoConfirmation, TerminalSynchronizeDirectory, NULL);
+    Terminal->SynchronizeApply(AChecklist, &CopyParam, Params | TTerminal::spNoConfirmation, TerminalSynchronizeDirectory, NULL);
   }
   __finally
   {
@@ -5355,8 +5354,8 @@ void __fastcall TCustomScpExplorerForm::FullSynchronize(TSynchronizeParams & Par
     FSynchronizeProgressForm->Start();
 
     Terminal->SynchronizeApply(
-      Params.Checklist, Params.LocalDirectory, Params.RemoteDirectory,
-      Params.CopyParam, Params.Params | TTerminal::spNoConfirmation, TerminalSynchronizeDirectory, OnProcessedItem);
+      Params.Checklist, Params.CopyParam, Params.Params | TTerminal::spNoConfirmation,
+      TerminalSynchronizeDirectory, OnProcessedItem);
   }
   __finally
   {