| Index: dbus/file_descriptor.cc
|
| diff --git a/dbus/file_descriptor.cc b/dbus/file_descriptor.cc
|
| index fc240f552c634524fb619e52095305fd054c5807..91b089f657cf271e5240e05e24be4f1eca9b6452 100644
|
| --- a/dbus/file_descriptor.cc
|
| +++ b/dbus/file_descriptor.cc
|
| @@ -2,6 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/logging.h"
|
| #include "base/platform_file.h"
|
| #include "dbus/file_descriptor.h"
|
|
|
| @@ -12,4 +13,21 @@ FileDescriptor::~FileDescriptor() {
|
| base::ClosePlatformFile(value_);
|
| }
|
|
|
| +int FileDescriptor::value() const {
|
| + CHECK(valid_);
|
| + return value_;
|
| +}
|
| +
|
| +int FileDescriptor::TakeValue() {
|
| + CHECK(valid_); // NB: check first so owner_ is unchanged if this triggers
|
| + owner_ = false;
|
| + return value_;
|
| +}
|
| +
|
| +void FileDescriptor::CheckValidity() {
|
| + base::PlatformFileInfo info;
|
| + bool ok = base::GetPlatformFileInfo(value_, &info);
|
| + valid_ = (ok && !info.is_directory);
|
| +}
|
| +
|
| } // namespace dbus
|
|
|