ScpFileSystem.h 4.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //---------------------------------------------------------------------------
  2. #ifndef ScpFileSystemH
  3. #define ScpFileSystemH
  4. #include <FileSystems.h>
  5. //---------------------------------------------------------------------------
  6. class TCommandSet;
  7. //---------------------------------------------------------------------------
  8. class TSCPFileSystem : public TCustomFileSystem
  9. {
  10. public:
  11. __fastcall TSCPFileSystem(TTerminal * ATerminal);
  12. virtual __fastcall ~TSCPFileSystem();
  13. virtual void __fastcall AnyCommand(const AnsiString Command);
  14. virtual void __fastcall ChangeDirectory(const AnsiString Directory);
  15. virtual void __fastcall ChangeFileProperties(const AnsiString FileName,
  16. const TRemoteFile * File, const TRemoteProperties * Properties);
  17. virtual void __fastcall CopyToLocal(TStrings * FilesToCopy,
  18. const AnsiString TargetDir, const TCopyParamType * CopyParam,
  19. int Params, TFileOperationProgressType * OperationProgress,
  20. bool & DisconnectWhenComplete);
  21. virtual void __fastcall CopyToRemote(TStrings * FilesToCopy,
  22. const AnsiString TargetDir, const TCopyParamType * CopyParam,
  23. int Params, TFileOperationProgressType * OperationProgress,
  24. bool & DisconnectWhenComplete);
  25. virtual void __fastcall CreateDirectory(const AnsiString DirName,
  26. const TRemoteProperties * Properties);
  27. virtual void __fastcall CreateLink(const AnsiString FileName, const AnsiString PointTo, bool Symbolic);
  28. virtual void __fastcall DeleteFile(const AnsiString FileName,
  29. const TRemoteFile * File, bool Recursive);
  30. virtual void __fastcall CustomCommandOnFile(const AnsiString FileName,
  31. const TRemoteFile * File, AnsiString Command);
  32. virtual void __fastcall DoStartup();
  33. virtual void __fastcall HomeDirectory();
  34. virtual bool __fastcall IsCapable(int Capability) const;
  35. virtual void __fastcall LookupUserGroups();
  36. virtual void __fastcall ReadCurrentDirectory();
  37. virtual void __fastcall ReadDirectory(TRemoteFileList * FileList);
  38. virtual void __fastcall ReadFile(const AnsiString FileName,
  39. TRemoteFile *& File);
  40. virtual void __fastcall ReadSymlink(TRemoteFile * SymlinkFile,
  41. TRemoteFile *& File);
  42. virtual void __fastcall RenameFile(const AnsiString FileName,
  43. const AnsiString NewName);
  44. static bool __fastcall RemoveLastLine(AnsiString & Line,
  45. int & ReturnCode, AnsiString LastLine = "");
  46. protected:
  47. __property TStrings * Output = { read = FOutput };
  48. __property int ReturnCode = { read = FReturnCode };
  49. virtual AnsiString __fastcall GetCurrentDirectory();
  50. virtual void __fastcall SetCurrentDirectory(AnsiString value);
  51. virtual AnsiString __fastcall GetProtocolName() const;
  52. private:
  53. TCommandSet * FCommandSet;
  54. AnsiString FCurrentDirectory;
  55. TStrings * FOutput;
  56. int FReturnCode;
  57. void __fastcall AliasGroupList();
  58. void __fastcall ClearAliases();
  59. void __fastcall CustomReadFile(const AnsiString FileName,
  60. TRemoteFile *& File, TRemoteFile * ALinkedByFile);
  61. static AnsiString __fastcall DelimitStr(AnsiString Str);
  62. void __fastcall DetectReturnVar();
  63. bool __fastcall IsLastLine(AnsiString & Line);
  64. static bool __fastcall IsTotalListingLine(const AnsiString Line);
  65. void __fastcall ExecCommand(const AnsiString Cmd, int Params = -1);
  66. void __fastcall ExecCommand(TFSCommand Cmd, const TVarRec * args = NULL,
  67. int size = 0, int Params = -1);
  68. void __fastcall ReadCommandOutput(int Params);
  69. void __fastcall SCPResponse();
  70. void __fastcall SCPDirectorySource(const AnsiString DirectoryName,
  71. const TCopyParamType * CopyParam, int Params,
  72. TFileOperationProgressType * OperationProgress);
  73. void __fastcall SCPError(const AnsiString Message, bool Fatal);
  74. void __fastcall SCPSendError(const AnsiString Message, bool Fatal);
  75. void __fastcall SCPSink(const AnsiString TargetDir,
  76. const AnsiString FileName, const TCopyParamType * CopyParam, bool & Success,
  77. TFileOperationProgressType * OperationProgress, int Params);
  78. void __fastcall SCPSource(const AnsiString FileName,
  79. const TCopyParamType * CopyParam, int Params,
  80. TFileOperationProgressType * OperationProgress);
  81. void __fastcall SendCommand(const AnsiString Cmd);
  82. void __fastcall SkipFirstLine();
  83. void __fastcall SkipStartupMessage();
  84. void __fastcall UnsetNationalVars();
  85. };
  86. //---------------------------------------------------------------------------
  87. #endif // ScpFileSystemH