| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | 
							- //---------------------------------------------------------------------------
 
- #ifndef EditorManagerH
 
- #define EditorManagerH
 
- //---------------------------------------------------------------------------
 
- #include <vector>
 
- //---------------------------------------------------------------------------
 
- class TManagedTerminal;
 
- class TTerminalQueue;
 
- //---------------------------------------------------------------------------
 
- struct TEditedFileData
 
- {
 
-   TEditedFileData();
 
-   ~TEditedFileData();
 
-   UnicodeString LocalRootDirectory;
 
-   UnicodeString RemoteDirectory;
 
-   bool ForceText;
 
-   TManagedTerminal * Terminal;
 
-   TSessionData * SessionData;
 
-   TTerminalQueue * Queue;
 
-   UnicodeString SessionName;
 
-   UnicodeString OriginalFileName;
 
-   UnicodeString Command;
 
- };
 
- //---------------------------------------------------------------------------
 
- typedef void __fastcall (__closure * TEditedFileChangedEvent)
 
-   (const UnicodeString FileName, TEditedFileData * Data, HANDLE CompleteEvent);
 
- typedef void __fastcall (__closure * TEditedFileReloadEvent)
 
-   (const UnicodeString FileName, const TEditedFileData * Data);
 
- typedef void __fastcall (__closure * TEditedFileEarlyClosedEvent)
 
-   (const TEditedFileData * Data, bool & KeepOpen);
 
- typedef void __fastcall (__closure * TEditedFileUploadComplete)
 
-   (TObject * Token);
 
- //---------------------------------------------------------------------------
 
- typedef void __fastcall (__closure * TEditedFileProcessEvent)
 
-   (const UnicodeString FileName, TEditedFileData * Data, TObject * Token, void * Arg);
 
- //---------------------------------------------------------------------------
 
- class TEditorManager
 
- {
 
- public:
 
-   __fastcall TEditorManager();
 
-   __fastcall ~TEditorManager();
 
-   bool __fastcall Empty(bool IgnoreClosed);
 
-   bool __fastcall CanAddFile(const UnicodeString RemoteDirectory,
 
-     const UnicodeString OriginalFileName, const UnicodeString SessionName,
 
-     TObject *& Token, UnicodeString & ExistingLocalRootDirectory,
 
-     UnicodeString & ExistingLocalDirectory);
 
-   bool __fastcall CloseInternalEditors(TNotifyEvent CloseCallback);
 
-   bool __fastcall CloseExternalFilesWithoutProcess();
 
-   void __fastcall AddFileInternal(const UnicodeString FileName,
 
-     TEditedFileData * Data, TObject * Token);
 
-   void __fastcall AddFileExternal(const UnicodeString FileName,
 
-     TEditedFileData * Data, HANDLE Process);
 
-   void __fastcall Check();
 
-   void __fastcall FileChanged(TObject * Token);
 
-   void __fastcall FileReload(TObject * Token);
 
-   void __fastcall FileClosed(TObject * Token, bool Forced);
 
-   void __fastcall ProcessFiles(TEditedFileProcessEvent Callback, void * Arg);
 
-   __property TEditedFileChangedEvent OnFileChange = { read = FOnFileChange, write = FOnFileChange };
 
-   __property TEditedFileReloadEvent OnFileReload = { read = FOnFileReload, write = FOnFileReload };
 
-   __property TEditedFileEarlyClosedEvent OnFileEarlyClosed = { read = FOnFileEarlyClosed, write = FOnFileEarlyClosed };
 
-   __property TEditedFileUploadComplete OnFileUploadComplete = { read = FOnFileUploadComplete, write = FOnFileUploadComplete };
 
- private:
 
-   struct TFileData
 
-   {
 
-     UnicodeString FileName;
 
-     bool External;
 
-     HANDLE Process;
 
-     TObject * Token;
 
-     TDateTime Timestamp;
 
-     TEditedFileData * Data;
 
-     bool Closed;
 
-     HANDLE UploadCompleteEvent;
 
-     TDateTime Opened;
 
-     bool Reupload;
 
-     bool Reloading;
 
-     unsigned int Saves;
 
-   };
 
-   std::vector<TFileData> FFiles;
 
-   std::vector<HANDLE> FProcesses;
 
-   std::vector<HANDLE> FUploadCompleteEvents;
 
-   TEditedFileChangedEvent FOnFileChange;
 
-   TEditedFileReloadEvent FOnFileReload;
 
-   TEditedFileEarlyClosedEvent FOnFileEarlyClosed;
 
-   TEditedFileUploadComplete FOnFileUploadComplete;
 
-   void __fastcall AddFile(TFileData & FileData, TEditedFileData * Data);
 
-   void __fastcall UploadComplete(int Index);
 
-   bool __fastcall CloseFile(int Index, bool IgnoreErrors, bool Delete);
 
-   void __fastcall CloseProcess(int Index);
 
-   bool __fastcall EarlyClose(int Index);
 
-   bool __fastcall HasFileChanged(int Index, TDateTime & NewTimestamp);
 
-   void __fastcall CheckFileChange(int Index, bool Force);
 
-   int __fastcall FindFile(const TObject * Token);
 
-   void __fastcall ReleaseFile(int Index);
 
-   enum TWaitHandle { PROCESS, EVENT };
 
-   int __fastcall WaitFor(unsigned int Count, const HANDLE * Handles,
 
-     TWaitHandle WaitFor);
 
- };
 
- //---------------------------------------------------------------------------
 
- #endif
 
 
  |