Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(305)

Side by Side Diff: net/base/file_stream.h

Issue 541022: Fix the case where the browser livelocks if we cannot open a file. (Closed)
Patch Set: Uploading checkpoint. This is known to cause all uploads on Windows to be zero bytes long. Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/platform_file_win.cc ('k') | net/base/file_stream_posix.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 25 matching lines...) Expand all
36 // opened. 36 // opened.
37 FileStream(base::PlatformFile file, int flags); 37 FileStream(base::PlatformFile file, int flags);
38 38
39 ~FileStream(); 39 ~FileStream();
40 40
41 // Call this method to close the FileStream. It is OK to call Close 41 // Call this method to close the FileStream. It is OK to call Close
42 // multiple times. Redundant calls are ignored. 42 // multiple times. Redundant calls are ignored.
43 // Note that if there are any pending async operations, they'll be aborted. 43 // Note that if there are any pending async operations, they'll be aborted.
44 void Close(); 44 void Close();
45 45
46 // Release performs the same actions as Close, but doesn't actually close the
47 // underlying PlatformFile.
48 void Release();
49
46 // Call this method to open the FileStream. The remaining methods 50 // Call this method to open the FileStream. The remaining methods
47 // cannot be used unless this method returns OK. If the file cannot be 51 // cannot be used unless this method returns OK. If the file cannot be
48 // opened then an error code is returned. 52 // opened then an error code is returned.
49 // open_flags is a bitfield of base::PlatformFileFlags 53 // open_flags is a bitfield of base::PlatformFileFlags
50 int Open(const FilePath& path, int open_flags); 54 int Open(const FilePath& path, int open_flags);
51 55
52 // Returns true if Open succeeded and Close has not been called. 56 // Calling this method is functionally the same as constructing the object
57 // with the non-default constructor. This method can only be used if the
58 // FileSteam isn't currently open (i.e. was constructed with the default
59 // constructor).
60 int Open(base::PlatformFile file, int open_flags);
61
62 // Returns true if Open succeeded and neither Close nor Release have been
63 // called.
53 bool IsOpen() const; 64 bool IsOpen() const;
54 65
55 // Adjust the position from where data is read. Upon success, the stream 66 // Adjust the position from where data is read. Upon success, the stream
56 // position relative to the start of the file is returned. Otherwise, an 67 // position relative to the start of the file is returned. Otherwise, an
57 // error code is returned. It is not valid to call Seek while a Read call 68 // error code is returned. It is not valid to call Seek while a Read call
58 // has a pending completion. 69 // has a pending completion.
59 int64 Seek(Whence whence, int64 offset); 70 int64 Seek(Whence whence, int64 offset);
60 71
61 // Returns the number of bytes available to read from the current stream 72 // Returns the number of bytes available to read from the current stream
62 // position until the end of the file. Otherwise, an error code is returned. 73 // position until the end of the file. Otherwise, an error code is returned.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 139
129 base::PlatformFile file_; 140 base::PlatformFile file_;
130 int open_flags_; 141 int open_flags_;
131 142
132 DISALLOW_COPY_AND_ASSIGN(FileStream); 143 DISALLOW_COPY_AND_ASSIGN(FileStream);
133 }; 144 };
134 145
135 } // namespace net 146 } // namespace net
136 147
137 #endif // NET_BASE_FILE_STREAM_H_ 148 #endif // NET_BASE_FILE_STREAM_H_
OLDNEW
« no previous file with comments | « base/platform_file_win.cc ('k') | net/base/file_stream_posix.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698