ScpFileSystem.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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 AnsiString __fastcall AbsolutePath(AnsiString Path);
  14. virtual void __fastcall KeepAlive();
  15. virtual void __fastcall AnyCommand(const AnsiString Command);
  16. virtual void __fastcall ChangeDirectory(const AnsiString Directory);
  17. virtual void __fastcall CachedChangeDirectory(const AnsiString Directory);
  18. virtual void __fastcall ChangeFileProperties(const AnsiString FileName,
  19. const TRemoteFile * File, const TRemoteProperties * Properties);
  20. virtual void __fastcall CopyToLocal(TStrings * FilesToCopy,
  21. const AnsiString TargetDir, const TCopyParamType * CopyParam,
  22. int Params, TFileOperationProgressType * OperationProgress,
  23. bool & DisconnectWhenComplete);
  24. virtual void __fastcall CopyToRemote(TStrings * FilesToCopy,
  25. const AnsiString TargetDir, const TCopyParamType * CopyParam,
  26. int Params, TFileOperationProgressType * OperationProgress,
  27. bool & DisconnectWhenComplete);
  28. virtual void __fastcall CreateDirectory(const AnsiString DirName,
  29. const TRemoteProperties * Properties);
  30. virtual void __fastcall CreateLink(const AnsiString FileName, const AnsiString PointTo, bool Symbolic);
  31. virtual void __fastcall DeleteFile(const AnsiString FileName,
  32. const TRemoteFile * File, bool Recursive);
  33. virtual void __fastcall CustomCommandOnFile(const AnsiString FileName,
  34. const TRemoteFile * File, AnsiString Command, int Params, TLogAddLineEvent OutputEvent);
  35. virtual void __fastcall DoStartup();
  36. virtual void __fastcall HomeDirectory();
  37. virtual bool __fastcall IsCapable(int Capability) const;
  38. virtual void __fastcall AdditionalInfo(TStrings * AdditionalInfo, bool Initial);
  39. virtual void __fastcall LookupUsersGroups();
  40. virtual void __fastcall ReadCurrentDirectory();
  41. virtual void __fastcall ReadDirectory(TRemoteFileList * FileList);
  42. virtual void __fastcall ReadFile(const AnsiString FileName,
  43. TRemoteFile *& File);
  44. virtual void __fastcall ReadSymlink(TRemoteFile * SymlinkFile,
  45. TRemoteFile *& File);
  46. virtual void __fastcall RenameFile(const AnsiString FileName,
  47. const AnsiString NewName);
  48. virtual void __fastcall CopyFile(const AnsiString FileName,
  49. const AnsiString NewName);
  50. virtual AnsiString __fastcall FileUrl(const AnsiString FileName);
  51. virtual TStrings * __fastcall GetFixedPaths();
  52. static bool __fastcall RemoveLastLine(AnsiString & Line,
  53. int & ReturnCode, AnsiString LastLine = "");
  54. protected:
  55. __property TStrings * Output = { read = FOutput };
  56. __property int ReturnCode = { read = FReturnCode };
  57. virtual AnsiString __fastcall GetCurrentDirectory();
  58. virtual void __fastcall SetCurrentDirectory(AnsiString value);
  59. virtual AnsiString __fastcall GetProtocolName() const;
  60. private:
  61. TCommandSet * FCommandSet;
  62. AnsiString FCurrentDirectory;
  63. TStrings * FOutput;
  64. int FReturnCode;
  65. AnsiString FCachedDirectoryChange;
  66. bool FProcessingCommand;
  67. int FLsFullTime;
  68. void __fastcall AliasGroupList();
  69. void __fastcall ClearAliases();
  70. void __fastcall CustomReadFile(const AnsiString FileName,
  71. TRemoteFile *& File, TRemoteFile * ALinkedByFile);
  72. static AnsiString __fastcall DelimitStr(AnsiString Str);
  73. void __fastcall DetectReturnVar();
  74. bool __fastcall IsLastLine(AnsiString & Line);
  75. static bool __fastcall IsTotalListingLine(const AnsiString Line);
  76. void __fastcall EnsureLocation();
  77. void __fastcall ExecCommand(const AnsiString Cmd, int Params = -1);
  78. void __fastcall ExecCommand(TFSCommand Cmd, const TVarRec * args = NULL,
  79. int size = 0, int Params = -1);
  80. void __fastcall ReadCommandOutput(int Params);
  81. void __fastcall SCPResponse(bool * GotLastLine = NULL);
  82. void __fastcall SCPDirectorySource(const AnsiString DirectoryName,
  83. const TCopyParamType * CopyParam, int Params,
  84. TFileOperationProgressType * OperationProgress, int Level);
  85. void __fastcall SCPError(const AnsiString Message, bool Fatal);
  86. void __fastcall SCPSendError(const AnsiString Message, bool Fatal);
  87. void __fastcall SCPSink(const AnsiString TargetDir,
  88. const AnsiString FileName, const AnsiString SourceDir,
  89. const TCopyParamType * CopyParam, bool & Success,
  90. TFileOperationProgressType * OperationProgress, int Params, int Level);
  91. void __fastcall SCPSource(const AnsiString FileName,
  92. const TCopyParamType * CopyParam, int Params,
  93. TFileOperationProgressType * OperationProgress, int Level);
  94. void __fastcall SendCommand(const AnsiString Cmd);
  95. void __fastcall SkipFirstLine();
  96. void __fastcall SkipStartupMessage();
  97. void __fastcall UnsetNationalVars();
  98. TRemoteFile * __fastcall CreateRemoteFile(const AnsiString & ListingStr,
  99. TRemoteFile * LinkedByFile = NULL);
  100. };
  101. //---------------------------------------------------------------------------
  102. #endif // ScpFileSystemH