summaryrefslogtreecommitdiffstats
path: root/dbus/file_descriptor.h
diff options
context:
space:
mode:
Diffstat (limited to 'dbus/file_descriptor.h')
-rw-r--r--dbus/file_descriptor.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/dbus/file_descriptor.h b/dbus/file_descriptor.h
index a01ee6e..8a41097 100644
--- a/dbus/file_descriptor.h
+++ b/dbus/file_descriptor.h
@@ -7,6 +7,7 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
+#include "base/move.h"
#include "dbus/dbus_export.h"
namespace dbus {
@@ -33,6 +34,8 @@ namespace dbus {
// also allows the caller to do this work on the File thread to conform
// with i/o restrictions.
class CHROME_DBUS_EXPORT FileDescriptor {
+ MOVE_ONLY_TYPE_FOR_CPP_03(FileDescriptor, RValue);
+
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.
@@ -46,8 +49,14 @@ class CHROME_DBUS_EXPORT FileDescriptor {
explicit FileDescriptor(int value) : value_(value), owner_(false),
valid_(false) {}
+ // Move constructor for C++03 move emulation of this type.
+ FileDescriptor(RValue other);
+
virtual ~FileDescriptor();
+ // Move operator= for C++03 move emulation of this type.
+ FileDescriptor& operator=(RValue other);
+
// Retrieves value as an int without affecting ownership.
int value() const;
@@ -70,11 +79,11 @@ class CHROME_DBUS_EXPORT FileDescriptor {
void CheckValidity();
private:
+ void Swap(FileDescriptor* other);
+
int value_;
bool owner_;
bool valid_;
-
- DISALLOW_COPY_AND_ASSIGN(FileDescriptor);
};
using ScopedFileDescriptor =