| // Copyright (c) 2011 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. |
| |
| #include "base/files/file.h" |
| |
| // TODO(rvargas): remove this (needed for kInvalidPlatformFileValue). |
| #include "base/platform_file.h" |
| |
| namespace base { |
| |
| File::Info::Info() |
| : size(0), |
| is_directory(false), |
| is_symbolic_link(false) { |
| } |
| |
| File::Info::~Info() { |
| } |
| |
| File::File() |
| : file_(kInvalidPlatformFileValue), |
| error_(FILE_OK), |
| created_(false), |
| async_(false) { |
| } |
| |
| #if !defined(OS_NACL) |
| File::File(const FilePath& name, uint32 flags) |
| : file_(kInvalidPlatformFileValue), |
| error_(FILE_OK), |
| created_(false), |
| async_(false) { |
| if (name.ReferencesParent()) { |
| error_ = FILE_ERROR_ACCESS_DENIED; |
| return; |
| } |
| 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 |