| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 12 |
| 13 #include "base/files/file.h" | 13 #include "base/files/file.h" |
| 14 #include "net/base/completion_callback.h" | 14 #include "net/base/completion_callback.h" |
| 15 #include "net/base/file_stream_whence.h" | |
| 16 #include "net/base/net_export.h" | 15 #include "net/base/net_export.h" |
| 17 | 16 |
| 18 namespace base { | 17 namespace base { |
| 19 class FilePath; | 18 class FilePath; |
| 20 class TaskRunner; | 19 class TaskRunner; |
| 21 } | 20 } |
| 22 | 21 |
| 23 namespace net { | 22 namespace net { |
| 24 | 23 |
| 25 class IOBuffer; | 24 class IOBuffer; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 | 61 |
| 63 // Returns true if Open succeeded and Close has not been called. | 62 // Returns true if Open succeeded and Close has not been called. |
| 64 virtual bool IsOpen() const; | 63 virtual bool IsOpen() const; |
| 65 | 64 |
| 66 // Adjust the position from where data is read asynchronously. | 65 // Adjust the position from where data is read asynchronously. |
| 67 // Upon success, ERR_IO_PENDING is returned and |callback| will be run | 66 // Upon success, ERR_IO_PENDING is returned and |callback| will be run |
| 68 // on the thread where Seek() was called with the the stream position | 67 // on the thread where Seek() was called with the the stream position |
| 69 // relative to the start of the file. Otherwise, an error code is returned. | 68 // relative to the start of the file. Otherwise, an error code is returned. |
| 70 // It is invalid to request any asynchronous operations while there is an | 69 // It is invalid to request any asynchronous operations while there is an |
| 71 // in-flight asynchronous operation. | 70 // in-flight asynchronous operation. |
| 72 virtual int Seek(Whence whence, int64 offset, | 71 virtual int Seek(base::File::Whence whence, int64 offset, |
| 73 const Int64CompletionCallback& callback); | 72 const Int64CompletionCallback& callback); |
| 74 | 73 |
| 75 // Call this method to read data from the current stream position | 74 // Call this method to read data from the current stream position |
| 76 // asynchronously. Up to buf_len bytes will be copied into buf. (In | 75 // asynchronously. Up to buf_len bytes will be copied into buf. (In |
| 77 // other words, partial reads are allowed.) Returns the number of bytes | 76 // other words, partial reads are allowed.) Returns the number of bytes |
| 78 // copied, 0 if at end-of-file, or an error code if the operation could | 77 // copied, 0 if at end-of-file, or an error code if the operation could |
| 79 // not be performed. | 78 // not be performed. |
| 80 // | 79 // |
| 81 // The file must be opened with FLAG_ASYNC, and a non-null | 80 // The file must be opened with FLAG_ASYNC, and a non-null |
| 82 // callback must be passed to this method. If the read could not | 81 // callback must be passed to this method. If the read could not |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 // without explicitly calling Close, the file should be closed asynchronously | 152 // without explicitly calling Close, the file should be closed asynchronously |
| 154 // without delaying FileStream's destructor. | 153 // without delaying FileStream's destructor. |
| 155 scoped_ptr<Context> context_; | 154 scoped_ptr<Context> context_; |
| 156 | 155 |
| 157 DISALLOW_COPY_AND_ASSIGN(FileStream); | 156 DISALLOW_COPY_AND_ASSIGN(FileStream); |
| 158 }; | 157 }; |
| 159 | 158 |
| 160 } // namespace net | 159 } // namespace net |
| 161 | 160 |
| 162 #endif // NET_BASE_FILE_STREAM_H_ | 161 #endif // NET_BASE_FILE_STREAM_H_ |
| OLD | NEW |