Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: include/AdblockPlus/DefaultFileSystem.h

Issue 29449592: Issue 5183 - Provide async interface for FileSystem (Closed) Base URL: https://hg.adblockplus.org/libadblockplus/
Patch Set: Remove a #include Utils.h from test. Created June 2, 2017, 7:38 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | include/AdblockPlus/FileSystem.h » ('j') | include/AdblockPlus/IFileSystem.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/AdblockPlus/DefaultFileSystem.h
===================================================================
--- a/include/AdblockPlus/DefaultFileSystem.h
+++ b/include/AdblockPlus/DefaultFileSystem.h
@@ -29,30 +29,51 @@
namespace AdblockPlus
{
/**
* `FileSystem` implementation that interacts directly with the operating
* system's file system.
* All paths are considered relative to the base path, or to the current
* working directory if no base path is set (see `SetBasePath()`).
*/
- class DefaultFileSystem : public FileSystem
+ class DefaultFileSystemSync : public FileSystem
{
public:
std::shared_ptr<std::istream> Read(const std::string& path) const;
void Write(const std::string& path, std::istream& data);
void Move(const std::string& fromPath, const std::string& toPath);
void Remove(const std::string& path);
- StatResult Stat(const std::string& path) const;
+ IFileSystem::StatResult Stat(const std::string& path) const;
std::string Resolve(const std::string& path) const;
/**
* Sets the base path, all paths are considered relative to it.
* @param path Base path.
*/
void SetBasePath(const std::string& path);
protected:
std::string basePath;
};
+
+ class DefaultFileSystem : public IFileSystem
+ {
+ public:
+ explicit DefaultFileSystem(const FileSystemSyncPtr& syncImpl);
+ void Read(const std::string& path,
+ const ReadCallback& callback) const;
+ void Write(const std::string& path,
+ std::shared_ptr<std::istream> data,
+ const Callback& callback);
+ void Move(const std::string& fromPath,
+ const std::string& toPath,
+ const Callback& callback);
+ void Remove(const std::string& path, const Callback& callback);
+ void Stat(const std::string& path,
+ const StatCallback& callback) const;
+
+ std::string Resolve(const std::string& path) const;
+ private:
+ FileSystemSyncPtr syncImpl;
+ };
}
#endif
« no previous file with comments | « no previous file | include/AdblockPlus/FileSystem.h » ('j') | include/AdblockPlus/IFileSystem.h » ('J')

Powered by Google App Engine
This is Rietveld