summaryrefslogtreecommitdiffstats
path: root/chromium/net/base/file_stream_context_posix.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/base/file_stream_context_posix.cc')
-rw-r--r--chromium/net/base/file_stream_context_posix.cc80
1 files changed, 14 insertions, 66 deletions
diff --git a/chromium/net/base/file_stream_context_posix.cc b/chromium/net/base/file_stream_context_posix.cc
index 6e6bc6eaa69..9f3d060822f 100644
--- a/chromium/net/base/file_stream_context_posix.cc
+++ b/chromium/net/base/file_stream_context_posix.cc
@@ -22,6 +22,7 @@
#include "base/logging.h"
#include "base/metrics/histogram.h"
#include "base/posix/eintr_wrapper.h"
+#include "base/task_runner.h"
#include "base/task_runner_util.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
@@ -44,42 +45,23 @@ COMPILE_ASSERT(FROM_BEGIN == SEEK_SET &&
FROM_CURRENT == SEEK_CUR &&
FROM_END == SEEK_END, whence_matches_system);
-FileStream::Context::Context(const BoundNetLog& bound_net_log,
- const scoped_refptr<base::TaskRunner>& task_runner)
- : file_(base::kInvalidPlatformFileValue),
- record_uma_(false),
- async_in_progress_(false),
+FileStream::Context::Context(const scoped_refptr<base::TaskRunner>& task_runner)
+ : async_in_progress_(false),
orphaned_(false),
- bound_net_log_(bound_net_log),
task_runner_(task_runner) {
}
-FileStream::Context::Context(base::PlatformFile file,
- const BoundNetLog& bound_net_log,
- int /* open_flags */,
+FileStream::Context::Context(base::File file,
const scoped_refptr<base::TaskRunner>& task_runner)
- : file_(file),
- record_uma_(false),
+ : file_(file.Pass()),
async_in_progress_(false),
orphaned_(false),
- bound_net_log_(bound_net_log),
task_runner_(task_runner) {
}
FileStream::Context::~Context() {
}
-int64 FileStream::Context::GetFileSize() const {
- struct stat info;
- if (fstat(file_, &info) != 0) {
- IOResult result = IOResult::FromOSError(errno);
- RecordError(result, FILE_ERROR_SOURCE_GET_SIZE);
- return result.result;
- }
-
- return static_cast<int64>(info.st_size);
-}
-
int FileStream::Context::ReadAsync(IOBuffer* in_buf,
int buf_len,
const CompletionCallback& callback) {
@@ -90,23 +72,15 @@ int FileStream::Context::ReadAsync(IOBuffer* in_buf,
task_runner_.get(),
FROM_HERE,
base::Bind(&Context::ReadFileImpl, base::Unretained(this), buf, buf_len),
- base::Bind(&Context::ProcessAsyncResult,
+ base::Bind(&Context::OnAsyncCompleted,
base::Unretained(this),
- IntToInt64(callback),
- FILE_ERROR_SOURCE_READ));
+ IntToInt64(callback)));
DCHECK(posted);
async_in_progress_ = true;
return ERR_IO_PENDING;
}
-int FileStream::Context::ReadSync(char* in_buf, int buf_len) {
- scoped_refptr<IOBuffer> buf = new WrappedIOBuffer(in_buf);
- IOResult result = ReadFileImpl(buf, buf_len);
- RecordError(result, FILE_ERROR_SOURCE_READ);
- return result.result;
-}
-
int FileStream::Context::WriteAsync(IOBuffer* in_buf,
int buf_len,
const CompletionCallback& callback) {
@@ -117,36 +91,18 @@ int FileStream::Context::WriteAsync(IOBuffer* in_buf,
task_runner_.get(),
FROM_HERE,
base::Bind(&Context::WriteFileImpl, base::Unretained(this), buf, buf_len),
- base::Bind(&Context::ProcessAsyncResult,
+ base::Bind(&Context::OnAsyncCompleted,
base::Unretained(this),
- IntToInt64(callback),
- FILE_ERROR_SOURCE_WRITE));
+ IntToInt64(callback)));
DCHECK(posted);
async_in_progress_ = true;
return ERR_IO_PENDING;
}
-int FileStream::Context::WriteSync(const char* in_buf, int buf_len) {
- scoped_refptr<IOBuffer> buf = new WrappedIOBuffer(in_buf);
- IOResult result = WriteFileImpl(buf, buf_len);
- RecordError(result, FILE_ERROR_SOURCE_WRITE);
- return result.result;
-}
-
-int FileStream::Context::Truncate(int64 bytes) {
- if (ftruncate(file_, bytes) != 0) {
- IOResult result = IOResult::FromOSError(errno);
- RecordError(result, FILE_ERROR_SOURCE_SET_EOF);
- return result.result;
- }
-
- return bytes;
-}
-
FileStream::Context::IOResult FileStream::Context::SeekFileImpl(Whence whence,
int64 offset) {
- off_t res = lseek(file_, static_cast<off_t>(offset),
+ off_t res = lseek(file_.GetPlatformFile(), static_cast<off_t>(offset),
static_cast<int>(whence));
if (res == static_cast<off_t>(-1))
return IOResult::FromOSError(errno);
@@ -155,7 +111,7 @@ FileStream::Context::IOResult FileStream::Context::SeekFileImpl(Whence whence,
}
FileStream::Context::IOResult FileStream::Context::FlushFileImpl() {
- ssize_t res = HANDLE_EINTR(fsync(file_));
+ ssize_t res = HANDLE_EINTR(fsync(file_.GetPlatformFile()));
if (res == -1)
return IOResult::FromOSError(errno);
@@ -166,7 +122,7 @@ FileStream::Context::IOResult FileStream::Context::ReadFileImpl(
scoped_refptr<IOBuffer> buf,
int buf_len) {
// Loop in the case of getting interrupted by a signal.
- ssize_t res = HANDLE_EINTR(read(file_, buf->data(),
+ ssize_t res = HANDLE_EINTR(read(file_.GetPlatformFile(), buf->data(),
static_cast<size_t>(buf_len)));
if (res == -1)
return IOResult::FromOSError(errno);
@@ -177,20 +133,12 @@ FileStream::Context::IOResult FileStream::Context::ReadFileImpl(
FileStream::Context::IOResult FileStream::Context::WriteFileImpl(
scoped_refptr<IOBuffer> buf,
int buf_len) {
- ssize_t res = HANDLE_EINTR(write(file_, buf->data(), buf_len));
+ ssize_t res = HANDLE_EINTR(write(file_.GetPlatformFile(), buf->data(),
+ buf_len));
if (res == -1)
return IOResult::FromOSError(errno);
return IOResult(res, 0);
}
-FileStream::Context::IOResult FileStream::Context::CloseFileImpl() {
- bool success = base::ClosePlatformFile(file_);
- file_ = base::kInvalidPlatformFileValue;
- if (!success)
- return IOResult::FromOSError(errno);
-
- return IOResult(OK, 0);
-}
-
} // namespace net