Index: dbus/file_descriptor.h |
diff --git a/dbus/file_descriptor.h b/dbus/file_descriptor.h |
deleted file mode 100644 |
index f8e86777eafa870c75ec62d5df51f03ea753023e..0000000000000000000000000000000000000000 |
--- a/dbus/file_descriptor.h |
+++ /dev/null |
@@ -1,92 +0,0 @@ |
-// Copyright (c) 2012 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. |
- |
-#ifndef DBUS_FILE_DESCRIPTOR_H_ |
-#define DBUS_FILE_DESCRIPTOR_H_ |
- |
-#include <memory> |
- |
-#include "base/macros.h" |
-#include "dbus/dbus_export.h" |
- |
-namespace dbus { |
- |
-// FileDescriptor is a type used to encapsulate D-Bus file descriptors |
-// and to follow the RAII idiom appropiate for use with message operations |
-// where the descriptor might be easily leaked. To guard against this the |
-// descriptor is closed when an instance is destroyed if it is owned. |
-// Ownership is asserted only when PutValue is used and TakeValue can be |
-// used to take ownership. |
-// |
-// For example, in the following |
-// FileDescriptor fd; |
-// if (!reader->PopString(&name) || |
-// !reader->PopFileDescriptor(&fd) || |
-// !reader->PopUint32(&flags)) { |
-// the descriptor in fd will be closed if the PopUint32 fails. But |
-// writer.AppendFileDescriptor(dbus::FileDescriptor(1)); |
-// will not automatically close "1" because it is not owned. |
-// |
-// Descriptors must be validated before marshalling in a D-Bus message |
-// or using them after unmarshalling. We disallow descriptors to a |
-// directory to reduce the security risks. Splitting out validation |
-// also allows the caller to do this work on the File thread to conform |
-// with i/o restrictions. |
-class CHROME_DBUS_EXPORT FileDescriptor { |
- public: |
- // This provides a simple way to pass around file descriptors since they must |
- // be closed on a thread that is allowed to perform I/O. |
- struct Deleter { |
- void CHROME_DBUS_EXPORT operator()(FileDescriptor* fd); |
- }; |
- |
- // Permits initialization without a value for passing to |
- // dbus::MessageReader::PopFileDescriptor to fill in and from int values. |
- FileDescriptor() : value_(-1), owner_(false), valid_(false) {} |
- explicit FileDescriptor(int value) : value_(value), owner_(false), |
- valid_(false) {} |
- |
- FileDescriptor(FileDescriptor&& other); |
- |
- virtual ~FileDescriptor(); |
- |
- FileDescriptor& operator=(FileDescriptor&& other); |
- |
- // Retrieves value as an int without affecting ownership. |
- int value() const; |
- |
- // Retrieves whether or not the descriptor is ok to send/receive. |
- int is_valid() const { return valid_; } |
- |
- // Sets the value and assign ownership. |
- void PutValue(int value) { |
- value_ = value; |
- owner_ = true; |
- valid_ = false; |
- } |
- |
- // Takes the value and ownership. |
- int TakeValue(); |
- |
- // Checks (and records) validity of the file descriptor. |
- // We disallow directories to avoid potential sandbox escapes. |
- // Note this call must be made on a thread where file i/o is allowed. |
- void CheckValidity(); |
- |
- private: |
- void Swap(FileDescriptor* other); |
- |
- int value_; |
- bool owner_; |
- bool valid_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FileDescriptor); |
-}; |
- |
-using ScopedFileDescriptor = |
- std::unique_ptr<FileDescriptor, FileDescriptor::Deleter>; |
- |
-} // namespace dbus |
- |
-#endif // DBUS_FILE_DESCRIPTOR_H_ |