Index: util/file/file_writer.h |
diff --git a/util/file/file_writer.h b/util/file/file_writer.h |
index 62fddf5f37180ef39c78c3c6ecfeda726d6d30aa..2b0c97ed5c84715c4c6452c228c6bc83f32964aa 100644 |
--- a/util/file/file_writer.h |
+++ b/util/file/file_writer.h |
@@ -15,16 +15,14 @@ |
#ifndef CRASHPAD_UTIL_FILE_FILE_WRITER_H_ |
#define CRASHPAD_UTIL_FILE_FILE_WRITER_H_ |
-#include <fcntl.h> |
-#include <stddef.h> |
+#include <sys/types.h> |
-#include <string> |
#include <vector> |
#include "base/basictypes.h" |
#include "base/files/file_path.h" |
-#include "build/build_config.h" |
#include "util/file/file_io.h" |
+#include "util/file/file_seeker.h" |
namespace crashpad { |
@@ -44,10 +42,10 @@ struct WritableIoVec { |
//! \brief An interface to write to files and other file-like objects with |
//! semantics matching the underlying platform (POSIX or Windows). |
-class FileWriterInterface { |
+class FileWriterInterface : public FileSeekerInterface { |
public: |
- //! \brief Wraps WriteFile(), or provides an implementation with identical |
- //! semantics. |
+ //! \brief Wraps LoggingWriteFile(), or provides an implementation with |
+ //! identical semantics. |
//! |
//! \return `true` if the operation succeeded, `false` if it failed, with an |
//! error message logged. |
@@ -64,13 +62,6 @@ class FileWriterInterface { |
//! \note The contents of \a iovecs are undefined when this method returns. |
virtual bool WriteIoVec(std::vector<WritableIoVec>* iovecs) = 0; |
- //! \brief Wraps LoggingFileSeek() or provides an alternate implementation |
- //! with identical semantics. |
- //! |
- //! \return The return value of LoggingFileSeek(). `-1` on failure, |
- //! with an error message logged. |
- virtual FileOffset Seek(FileOffset offset, int whence) = 0; |
- |
protected: |
~FileWriterInterface() {} |
}; |
@@ -98,6 +89,8 @@ class WeakFileHandleFileWriter : public FileWriterInterface { |
bool Write(const void* data, size_t size) override; |
bool WriteIoVec(std::vector<WritableIoVec>* iovecs) override; |
+ // FileSeekerInterface: |
+ |
//! \copydoc FileWriterInterface::Seek() |
//! |
//! \note This method is only guaranteed to function on file handles referring |
@@ -110,7 +103,7 @@ class WeakFileHandleFileWriter : public FileWriterInterface { |
FileHandle file_handle_; // weak |
// FileWriter uses this class as its internal implementation, and it needs to |
- // be able to call set_file_handle(). FileWriter cannot initialize an |
+ // be able to call set_file_handle(). FileWriter cannot initialize a |
// WeakFileHandleFileWriter with a correct file descriptor at the time of |
// construction because no file descriptor will be available until |
// FileWriter::Open() is called. |
@@ -126,6 +119,8 @@ class FileWriter : public FileWriterInterface { |
FileWriter(); |
~FileWriter(); |
+ // FileWriterInterface: |
+ |
//! \brief Wraps LoggingOpenFileForWrite(). |
//! |
//! \return `true` if the operation succeeded, `false` if it failed, with an |
@@ -158,6 +153,8 @@ class FileWriter : public FileWriterInterface { |
//! a Close(). |
bool WriteIoVec(std::vector<WritableIoVec>* iovecs) override; |
+ // FileSeekerInterface: |
+ |
//! \copydoc FileWriterInterface::Seek() |
//! |
//! \note It is only valid to call this method between a successful Open() and |