| Index: net/base/file_input_stream.h
|
| ===================================================================
|
| --- net/base/file_input_stream.h (revision 4450)
|
| +++ net/base/file_input_stream.h (working copy)
|
| @@ -1,92 +0,0 @@
|
| -// Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this
|
| -// source code is governed by a BSD-style license that can be found in the
|
| -// LICENSE file.
|
| -
|
| -// This file defines FileInputStream, a basic interface for reading files
|
| -// synchronously or asynchronously with support for seeking to an offset.
|
| -
|
| -#ifndef NET_BASE_FILE_INPUT_STREAM_H_
|
| -#define NET_BASE_FILE_INPUT_STREAM_H_
|
| -
|
| -#include "net/base/completion_callback.h"
|
| -
|
| -#if defined(OS_WIN)
|
| -typedef void* HANDLE;
|
| -#endif
|
| -
|
| -namespace net {
|
| -
|
| -// TODO(darin): Move this to a more generic location.
|
| -// This explicit mapping matches both FILE_ on Windows and SEEK_ on Linux.
|
| -enum Whence {
|
| - FROM_BEGIN = 0,
|
| - FROM_CURRENT = 1,
|
| - FROM_END = 2
|
| -};
|
| -
|
| -class FileInputStream {
|
| - public:
|
| - FileInputStream();
|
| - ~FileInputStream();
|
| -
|
| - // Call this method to close the FileInputStream. It is OK to call Close
|
| - // multiple times. Redundant calls are ignored.
|
| - void Close();
|
| -
|
| - // Call this method to open the FileInputStream. The remaining methods
|
| - // cannot be used unless this method returns OK. If the file cannot be
|
| - // opened then an error code is returned.
|
| - // NOTE: The underlying file is opened with non-exclusive access.
|
| - int Open(const std::wstring& path, bool asynchronous_mode);
|
| -
|
| - // Returns true if Open succeeded and Close has not been called.
|
| - bool IsOpen() const;
|
| -
|
| - // Adjust the position from where data is read. Upon success, the stream
|
| - // position relative to the start of the file is returned. Otherwise, an
|
| - // error code is returned. It is not valid to call Seek while a Read call
|
| - // has a pending completion.
|
| - int64 Seek(Whence whence, int64 offset);
|
| -
|
| - // Returns the number of bytes available to read from the current stream
|
| - // position until the end of the file. Otherwise, an error code is returned.
|
| - int64 Available();
|
| -
|
| - // Call this method to read data from the current stream position. Up to
|
| - // buf_len bytes will be copied into buf. (In other words, partial reads are
|
| - // allowed.) Returns the number of bytes copied, 0 if at end-of-file, or an
|
| - // error code if the operation could not be performed.
|
| - //
|
| - // If opened with |asynchronous_mode| set to true, then a non-null callback
|
| - // must be passed to this method. In asynchronous mode, if the read could
|
| - // not complete synchronously, then ERR_IO_PENDING is returned, and the
|
| - // callback will be notified on the current thread (via the MessageLoop) when
|
| - // the read has completed.
|
| - //
|
| - // In the case of an asychronous read, the memory pointed to by |buf| must
|
| - // remain valid until the callback is notified. However, it is valid to
|
| - // destroy or close the file stream while there is an asynchronous read in
|
| - // progress. That will cancel the read and allow the buffer to be freed.
|
| - //
|
| - int Read(char* buf, int buf_len, CompletionCallback* callback);
|
| -
|
| - private:
|
| - class AsyncContext;
|
| - friend class AsyncContext;
|
| -
|
| - // This member is used to support asynchronous reads. It is non-null when
|
| - // the FileInputStream was opened with asynchronous_mode set to true.
|
| - scoped_ptr<AsyncContext> async_context_;
|
| -
|
| -#if defined(OS_WIN)
|
| - HANDLE handle_;
|
| -#elif defined(OS_POSIX)
|
| - int fd_;
|
| -#endif
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(FileInputStream);
|
| -};
|
| -
|
| -} // namespace net
|
| -
|
| -#endif // NET_BASE_FILE_INPUT_STREAM_H_
|
|
|