| Index: base/files/file.cc
|
| diff --git a/base/files/file.cc b/base/files/file.cc
|
| index bb411b893fef5c97289db470416eade7eb6074a7..4902f15a2ff02744e44699317565797ebf0c05b3 100644
|
| --- a/base/files/file.cc
|
| +++ b/base/files/file.cc
|
| @@ -2,30 +2,63 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/files/file.h"
|
| +
|
| +// TODO(rvargas): remove this (needed for kInvalidPlatformFileValue).
|
| #include "base/platform_file.h"
|
|
|
| namespace base {
|
|
|
| -PlatformFileInfo::PlatformFileInfo()
|
| +File::Info::Info()
|
| : size(0),
|
| is_directory(false),
|
| is_symbolic_link(false) {
|
| }
|
|
|
| -PlatformFileInfo::~PlatformFileInfo() {}
|
| +File::Info::~Info() {
|
| +}
|
| +
|
| +File::File()
|
| + : file_(kInvalidPlatformFileValue),
|
| + error_(FILE_OK),
|
| + created_(false),
|
| + async_(false) {
|
| +}
|
|
|
| #if !defined(OS_NACL)
|
| -PlatformFile CreatePlatformFile(const FilePath& name,
|
| - int flags,
|
| - bool* created,
|
| - PlatformFileError* error) {
|
| +File::File(const FilePath& name, uint32 flags)
|
| + : file_(kInvalidPlatformFileValue),
|
| + error_(FILE_OK),
|
| + created_(false),
|
| + async_(false) {
|
| if (name.ReferencesParent()) {
|
| - if (error)
|
| - *error = PLATFORM_FILE_ERROR_ACCESS_DENIED;
|
| - return kInvalidPlatformFileValue;
|
| + error_ = FILE_ERROR_ACCESS_DENIED;
|
| + return;
|
| }
|
| - return CreatePlatformFileUnsafe(name, flags, created, error);
|
| + CreateBaseFileUnsafe(name, flags);
|
| }
|
| #endif
|
|
|
| +File::File(RValue other)
|
| + : file_(other.object->TakePlatformFile()),
|
| + error_(other.object->error()),
|
| + created_(other.object->created()),
|
| + async_(other.object->async_) {
|
| +}
|
| +
|
| +File::~File() {
|
| + Close();
|
| +}
|
| +
|
| +File& File::operator=(RValue other) {
|
| + if (this != other.object) {
|
| + Close();
|
| + SetPlatformFile(other.object->TakePlatformFile());
|
| + error_ = other.object->error();
|
| + created_ = other.object->created();
|
| + async_ = other.object->async_;
|
| + }
|
| + return *this;
|
| +}
|
| +
|
| } // namespace base
|
|
|