Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file defines FileStream, a basic interface for reading and writing files | 5 // This file defines FileStream, a basic interface for reading and writing files |
| 6 // synchronously or asynchronously with support for seeking to an offset. | 6 // synchronously or asynchronously with support for seeking to an offset. |
| 7 // Note that even when used asynchronously, only one operation is supported at | 7 // Note that even when used asynchronously, only one operation is supported at |
| 8 // a time. | 8 // a time. |
| 9 | 9 |
| 10 #ifndef NET_BASE_FILE_STREAM_H_ | 10 #ifndef NET_BASE_FILE_STREAM_H_ |
| 11 #define NET_BASE_FILE_STREAM_H_ | 11 #define NET_BASE_FILE_STREAM_H_ |
| 12 #pragma once | 12 #pragma once |
| 13 | 13 |
| 14 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
| 15 #include "base/platform_file.h" | 15 #include "base/platform_file.h" |
| 16 #include "net/base/completion_callback.h" | 16 #include "net/base/completion_callback.h" |
| 17 #include "net/base/file_stream_metrics.h" | |
|
cbentzel
2011/08/18 13:31:28
This include isn't needed.
ahendrickson
2011/08/18 15:56:45
Done.
| |
| 17 #include "net/base/net_export.h" | 18 #include "net/base/net_export.h" |
| 18 | 19 |
| 19 class FilePath; | 20 class FilePath; |
| 20 | 21 |
| 21 namespace net { | 22 namespace net { |
| 22 | 23 |
| 23 // TODO(darin): Move this to a more generic location. | 24 // TODO(darin): Move this to a more generic location. |
| 24 // This explicit mapping matches both FILE_ on Windows and SEEK_ on Linux. | 25 // This explicit mapping matches both FILE_ on Windows and SEEK_ on Linux. |
| 25 enum Whence { | 26 enum Whence { |
| 26 FROM_BEGIN = 0, | 27 FROM_BEGIN = 0, |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 125 // Forces out a filesystem sync on this file to make sure that the file was | 126 // Forces out a filesystem sync on this file to make sure that the file was |
| 126 // written out to disk and is not currently sitting in the buffer. This does | 127 // written out to disk and is not currently sitting in the buffer. This does |
| 127 // not have to be called, it just forces one to happen at the time of | 128 // not have to be called, it just forces one to happen at the time of |
| 128 // calling. | 129 // calling. |
| 129 // | 130 // |
| 130 /// Returns an error code if the operation could not be performed. | 131 /// Returns an error code if the operation could not be performed. |
| 131 // | 132 // |
| 132 // This method should not be called if the stream was opened READ_ONLY. | 133 // This method should not be called if the stream was opened READ_ONLY. |
| 133 int Flush(); | 134 int Flush(); |
| 134 | 135 |
| 136 // Turns on UMA error statistics gathering. | |
| 137 void EnableErrorStatistics(); | |
| 138 | |
| 135 private: | 139 private: |
| 136 class AsyncContext; | 140 class AsyncContext; |
| 137 friend class AsyncContext; | 141 friend class AsyncContext; |
| 138 | 142 |
| 143 int RecordAndMapError(int error, FileErrorSource source); | |
|
cbentzel
2011/08/18 13:31:28
This doesn't need to be a member function. It can
ahendrickson
2011/08/18 15:56:45
Done.
| |
| 144 | |
| 139 // This member is used to support asynchronous reads. It is non-null when | 145 // This member is used to support asynchronous reads. It is non-null when |
| 140 // the FileStream was opened with PLATFORM_FILE_ASYNC. | 146 // the FileStream was opened with PLATFORM_FILE_ASYNC. |
| 141 scoped_ptr<AsyncContext> async_context_; | 147 scoped_ptr<AsyncContext> async_context_; |
| 142 | 148 |
| 143 base::PlatformFile file_; | 149 base::PlatformFile file_; |
| 144 int open_flags_; | 150 int open_flags_; |
| 145 bool auto_closed_; | 151 bool auto_closed_; |
| 152 bool record_uma_; | |
| 146 | 153 |
| 147 DISALLOW_COPY_AND_ASSIGN(FileStream); | 154 DISALLOW_COPY_AND_ASSIGN(FileStream); |
| 148 }; | 155 }; |
| 149 | 156 |
| 150 } // namespace net | 157 } // namespace net |
| 151 | 158 |
| 152 #endif // NET_BASE_FILE_STREAM_H_ | 159 #endif // NET_BASE_FILE_STREAM_H_ |
| OLD | NEW |