| |
38 |
38 |
TFilesystemFileFeedbackWrapper& operator=(const TFilesystemFileFeedbackWrapper&) = delete; |
| |
39 |
39 |
|
| |
40 |
40 |
TSubTaskBase::ESubOperationResult HandleFileAlreadyExistsFB(const TFileInfoPtr& spSrcFileInfo, bool& bShouldAppend, bool& bSkip); |
| |
41 |
41 |
|
| |
42 |
42 |
TSubTaskBase::ESubOperationResult TruncateFileFB(file_size_t fsNewSize, bool& bSkip); |
| |
43 |
43 |
|
| |
44 |
44 |
TSubTaskBase::ESubOperationResult ReadFileFB(TOverlappedDataBuffer& rBuffer, bool& bSkip); |
| |
45 |
45 |
TSubTaskBase::ESubOperationResult WriteFileFB(TOverlappedDataBuffer& rBuffer, bool& bSkip); |
| |
46 |
46 |
|
| |
47 |
47 |
TSubTaskBase::ESubOperationResult FinalizeFileFB(TOverlappedDataBuffer& rBuffer, bool& bSkip); |
| |
48 |
48 |
|
| |
49 |
49 |
TSubTaskBase::ESubOperationResult HandleReadError(TOverlappedDataBuffer& rBuffer, bool& bSkip); |
| |
50 |
50 |
TSubTaskBase::ESubOperationResult HandleWriteError(TOverlappedDataBuffer& rBuffer, bool& bSkip); |
| |
51 |
51 |
|
| |
52 |
52 |
bool IsFreshlyCreated() const { return m_spFile->IsFreshlyCreated(); } |
| |
53 |
53 |
TSmartPath GetFilePath() const { return m_spFile->GetFilePath(); } |
| |
54 |
54 |
file_size_t GetFileSize() const { return m_spFile->GetFileSize(); } |
| |
55 |
55 |
file_size_t GetSeekPositionForResume(file_size_t fsLastAvailablePosition) { return m_spFile->GetSeekPositionForResume(fsLastAvailablePosition); } |
| |
56 |
56 |
|
| |
57 |
57 |
bool IsOpen() const { return m_spFile->IsOpen(); } |
| |
|
58 |
void Close() { m_spFile->Close(); } |
| |
58 |
59 |
|
| |
59 |
60 |
private: |
| |
60 |
61 |
bool WasKillRequested(const TFeedbackResult& rFeedbackResult) const; |
| |
61 |
62 |
|
| |
62 |
63 |
private: |
| |
63 |
64 |
IFilesystemFilePtr m_spFile; |
| |
64 |
65 |
IFeedbackHandlerPtr m_spFeedbackHandler; |
| |
65 |
66 |
IFilesystemPtr m_spFilesystem; |
| |
66 |
67 |
logger::TLoggerPtr m_spLog; |
| |
67 |
68 |
TWorkerThreadController& m_rThreadController; |
| |
68 |
69 |
}; |
| |
69 |
70 |
|
| |
70 |
71 |
using TFilesystemFileFeedbackWrapperPtr = std::shared_ptr<TFilesystemFileFeedbackWrapper>; |
| |
71 |
72 |
} |
| |
72 |
73 |
|
| |
73 |
74 |
#endif |