Index: net/base/file_stream_context.h |
diff --git a/net/base/file_stream_context.h b/net/base/file_stream_context.h |
index 3ce8a5b6cdc9cb7decd553e50aa4cb05f66eac69..78915d50b6cab7afa56dbdfa16d5a80a99525e58 100644 |
--- a/net/base/file_stream_context.h |
+++ b/net/base/file_stream_context.h |
@@ -27,8 +27,9 @@ |
#ifndef NET_BASE_FILE_STREAM_CONTEXT_H_ |
#define NET_BASE_FILE_STREAM_CONTEXT_H_ |
+#include "base/files/file.h" |
#include "base/message_loop/message_loop.h" |
-#include "base/platform_file.h" |
+#include "base/move.h" |
#include "base/task_runner.h" |
#include "net/base/completion_callback.h" |
#include "net/base/file_stream.h" |
@@ -61,9 +62,15 @@ class FileStream::Context { |
Context(const BoundNetLog& bound_net_log, |
const scoped_refptr<base::TaskRunner>& task_runner); |
- Context(base::PlatformFile file, |
+ Context(base::File file, |
+ const BoundNetLog& bound_net_log, |
+ const scoped_refptr<base::TaskRunner>& task_runner); |
+ |
+ // This is a deprecated constructor intended only to support callers that |
+ // provide a PlatformFile. Such callers are to be updated to provide a File. |
+ Context(base::File file, |
+ int flags, |
const BoundNetLog& bound_net_log, |
- int open_flags, |
const scoped_refptr<base::TaskRunner>& task_runner); |
#if defined(OS_WIN) |
virtual ~Context(); |
@@ -90,8 +97,9 @@ class FileStream::Context { |
//////////////////////////////////////////////////////////////////////////// |
void set_record_uma(bool value) { record_uma_ = value; } |
- base::PlatformFile file() const { return file_; } |
+ const base::File& file() const { return file_; } |
bool async_in_progress() const { return async_in_progress_; } |
+ bool async() const { return async_in_progress_ || async_ || file_.async(); } |
//////////////////////////////////////////////////////////////////////////// |
// Platform-independent methods implemented in file_stream_context.cc. |
@@ -133,10 +141,16 @@ class FileStream::Context { |
int os_error; // Set only when result < 0. |
}; |
- struct OpenResult { |
+ class OpenResult { |
willchan no longer on Chromium
2014/03/18 20:36:56
I chatted with jyasskin (c++ committee member and
rvargas (doing something else)
2014/03/19 01:03:18
I guess it looks weird in any case. I mean, having
rvargas (doing something else)
2014/03/19 19:01:48
Tentatively back to struct
willchan no longer on Chromium
2014/03/19 22:36:35
It's just a minor preference. The reason is that t
|
+ MOVE_ONLY_TYPE_FOR_CPP_03(OpenResult, RValue) |
+ public: |
OpenResult(); |
- OpenResult(base::PlatformFile file, IOResult error_code); |
- base::PlatformFile file; |
+ OpenResult(base::File file, IOResult error_code); |
+ // C++03 move emulation of this type. |
+ OpenResult(RValue other); |
+ OpenResult& operator=(RValue other); |
+ |
+ base::File file; |
IOResult error_code; |
}; |
@@ -147,6 +161,8 @@ class FileStream::Context { |
OpenResult OpenFileImpl(const base::FilePath& path, int open_flags); |
+ IOResult CloseFileImpl(); |
+ |
void ProcessOpenError(const IOResult& result); |
void OnOpenCompleted(const CompletionCallback& callback, |
OpenResult open_result); |
@@ -193,9 +209,6 @@ class FileStream::Context { |
// Flushes all data written to the stream. |
IOResult FlushFileImpl(); |
- // Closes the file. |
- IOResult CloseFileImpl(); |
- |
#if defined(OS_WIN) |
void IOCompletionIsPending(const CompletionCallback& callback, IOBuffer* buf); |
@@ -214,10 +227,11 @@ class FileStream::Context { |
IOResult WriteFileImpl(scoped_refptr<IOBuffer> buf, int buf_len); |
#endif |
- base::PlatformFile file_; |
+ base::File file_; |
bool record_uma_; |
bool async_in_progress_; |
bool orphaned_; |
+ bool async_; // To be removed when flags are removed from the constructor. |
BoundNetLog bound_net_log_; |
scoped_refptr<base::TaskRunner> task_runner_; |