Chromium Code Reviews| Index: dbus/object_path.h |
| diff --git a/dbus/object_path.h b/dbus/object_path.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6a879ef26c6706ce42bcaec8ad7613f0f873d6d1 |
| --- /dev/null |
| +++ b/dbus/object_path.h |
| @@ -0,0 +1,46 @@ |
| +// 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_OBJECT_PATH_H_ |
| +#define DBUS_OBJECT_PATH_H_ |
| +#pragma once |
| + |
| +#include <string> |
| + |
| +namespace dbus { |
| + |
| +// ObjectPath is a type used to distinguish D-Bus object paths from simple |
| +// strings, especially since normal practice is that these should be only |
| +// initialized from static constants or obtained from remote objects and no |
| +// assumptions about their value made. |
| +class ObjectPath { |
| + public: |
| + // Permit initialization without a value for passing to |
| + // dbus::MessageReader::PopObjectPath to fill in, from std::string |
| + // objects, and from string constants. |
| + // |
| + // The compiler synthesised copy constructor and assignment operator are |
| + // sufficient for our needs. |
| + ObjectPath() {} |
| + explicit ObjectPath(const std::string& value) : value_(value) {} |
| + explicit ObjectPath(const char* c_str) : value_(c_str) {} |
|
satorux1
2012/02/13 20:27:39
Do we still need the c_str version? I thought the
keybuk
2012/02/13 20:41:13
nope, now we're only doing explicit initialization
|
| + |
| + // Retrieves value as a std::string. |
| + const std::string& value() const { return value_; } |
| + |
| + // Permit sufficient comparison to allow an ObjectPath to be used as a |
| + // key in a std::map. |
| + bool operator<(const ObjectPath&) const; |
| + |
| + // Permit testing for equality, required for mocks to work and useful for |
| + // observers. |
| + bool operator==(const ObjectPath&) const; |
| + bool operator!=(const ObjectPath&) const; |
| + private: |
| + std::string value_; |
| +}; |
| + |
| +} // namespace dbus |
| + |
| +#endif // DBUS_OBJECT_PATH_H_ |