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

Unified Diff: include/AdblockPlus/FileSystem.h

Issue 29449592: Issue 5183 - Provide async interface for FileSystem (Closed) Base URL: https://hg.adblockplus.org/libadblockplus/
Patch Set: Rebased on https://codereview.adblockplus.org/29481704 Created July 6, 2017, 10:40 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
Index: include/AdblockPlus/FileSystem.h
===================================================================
--- a/include/AdblockPlus/FileSystem.h
+++ b/include/AdblockPlus/FileSystem.h
@@ -18,77 +18,43 @@
#ifndef ADBLOCK_PLUS_FILE_SYSTEM_H
#define ADBLOCK_PLUS_FILE_SYSTEM_H
#include <istream>
#include <stdint.h>
#include <string>
#include <memory>
+#include "IFileSystem.h"
+
namespace AdblockPlus
{
/**
* File system interface.
*/
class FileSystem
{
public:
- /**
- * Result of a stat operation, i.e.\ information about a file.
- */
- struct StatResult
- {
- StatResult()
- {
- exists = false;
- isDirectory = false;
- isFile = false;
- lastModified = 0;
- }
-
- /**
- * File exists.
- */
- bool exists;
-
- /**
- * File is a directory.
- */
- bool isDirectory;
-
- /**
- * File is a regular file.
- */
- bool isFile;
-
- /**
- * POSIX time of the last modification.
- */
- int64_t lastModified;
- };
-
- typedef std::vector<uint8_t> IOBuffer;
-
virtual ~FileSystem() {}
/**
* Reads from a file.
* @param path File path.
* @return Buffer with the file content.
*/
- virtual IOBuffer
+ virtual IFileSystem::IOBuffer
Read(const std::string& path) const = 0;
/**
* Writes to a file.
* @param path File path.
* @param data Buffer with the data to write.
*/
virtual void Write(const std::string& path,
- const IOBuffer& data) = 0;
+ const IFileSystem::IOBuffer& data) = 0;
/**
* Moves a file (i.e.\ renames it).
* @param fromPath Current path to the file.
* @param toPath New path to the file.
*/
virtual void Move(const std::string& fromPath,
const std::string& toPath) = 0;
@@ -99,25 +65,25 @@
*/
virtual void Remove(const std::string& path) = 0;
/**
* Retrieves information about a file.
* @param path File path.
* @return File information.
*/
- virtual StatResult Stat(const std::string& path) const = 0;
+ virtual IFileSystem::StatResult Stat(const std::string& path) const = 0;
/**
* Returns the absolute path to a file.
* @param path File path (can be relative or absolute).
* @return Absolute file path.
*/
virtual std::string Resolve(const std::string& path) const = 0;
};
/**
* Shared smart pointer to a `FileSystem` instance.
*/
- typedef std::shared_ptr<FileSystem> FileSystemPtr;
+ typedef std::shared_ptr<FileSystem> FileSystemSyncPtr;
}
#endif

Powered by Google App Engine
This is Rietveld