OLD | NEW |
1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this |
2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
3 // LICENSE file. | 3 // 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_ |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 // In the case of an asychronous read, the memory pointed to by |buf| must | 74 // In the case of an asychronous read, the memory pointed to by |buf| must |
75 // remain valid until the callback is notified. However, it is valid to | 75 // remain valid until the callback is notified. However, it is valid to |
76 // destroy or close the file stream while there is an asynchronous read in | 76 // destroy or close the file stream while there is an asynchronous read in |
77 // progress. That will cancel the read and allow the buffer to be freed. | 77 // progress. That will cancel the read and allow the buffer to be freed. |
78 // | 78 // |
79 // This method should not be called if the stream was opened WRITE_ONLY. | 79 // This method should not be called if the stream was opened WRITE_ONLY. |
80 // | 80 // |
81 // You can pass NULL as the callback for synchronous I/O. | 81 // You can pass NULL as the callback for synchronous I/O. |
82 int Read(char* buf, int buf_len, CompletionCallback* callback); | 82 int Read(char* buf, int buf_len, CompletionCallback* callback); |
83 | 83 |
| 84 // Performs the same as Read, but ensures that exactly buf_len bytes |
| 85 // are copied into buf. A partial read may occur, but only as a result of |
| 86 // end-of-file or fatal error. Returns the number of bytes copied into buf, |
| 87 // 0 if at end-of-file and no bytes have been read into buf yet, |
| 88 // or an error code if the operation could not be performed. |
| 89 int ReadUntilComplete(char *buf, int buf_len); |
| 90 |
84 // Call this method to write data at the current stream position. Up to | 91 // Call this method to write data at the current stream position. Up to |
85 // buf_len bytes will be written from buf. (In other words, partial writes are | 92 // buf_len bytes will be written from buf. (In other words, partial writes are |
86 // allowed.) Returns the number of bytes written, or an error code if the | 93 // allowed.) Returns the number of bytes written, or an error code if the |
87 // operation could not be performed. | 94 // operation could not be performed. |
88 // | 95 // |
89 // If opened with PLATFORM_FILE_ASYNC, then a non-null callback | 96 // If opened with PLATFORM_FILE_ASYNC, then a non-null callback |
90 // must be passed to this method. In asynchronous mode, if the write could | 97 // must be passed to this method. In asynchronous mode, if the write could |
91 // not complete synchronously, then ERR_IO_PENDING is returned, and the | 98 // not complete synchronously, then ERR_IO_PENDING is returned, and the |
92 // callback will be notified on the current thread (via the MessageLoop) when | 99 // callback will be notified on the current thread (via the MessageLoop) when |
93 // the write has completed. | 100 // the write has completed. |
(...skipping 18 matching lines...) Expand all Loading... |
112 | 119 |
113 base::PlatformFile file_; | 120 base::PlatformFile file_; |
114 int open_flags_; | 121 int open_flags_; |
115 | 122 |
116 DISALLOW_COPY_AND_ASSIGN(FileStream); | 123 DISALLOW_COPY_AND_ASSIGN(FileStream); |
117 }; | 124 }; |
118 | 125 |
119 } // namespace net | 126 } // namespace net |
120 | 127 |
121 #endif // NET_BASE_FILE_STREAM_H_ | 128 #endif // NET_BASE_FILE_STREAM_H_ |
OLD | NEW |