116d80fe9SBenjamin Kietzman // Copyright (c) Benjamin Kietzman (github.com/bkietz)
216d80fe9SBenjamin Kietzman //
316d80fe9SBenjamin Kietzman // Distributed under the Boost Software License, Version 1.0. (See accompanying
416d80fe9SBenjamin Kietzman // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
516d80fe9SBenjamin Kietzman
616d80fe9SBenjamin Kietzman #ifndef DBUS_ENDPOINT_HPP
716d80fe9SBenjamin Kietzman #define DBUS_ENDPOINT_HPP
816d80fe9SBenjamin Kietzman
916d80fe9SBenjamin Kietzman #include <dbus/dbus.h>
1016d80fe9SBenjamin Kietzman #include <dbus/element.hpp>
1116d80fe9SBenjamin Kietzman #include <dbus/message.hpp>
1216d80fe9SBenjamin Kietzman
1316d80fe9SBenjamin Kietzman namespace dbus {
1416d80fe9SBenjamin Kietzman
15da3eeb6aSEd Tanous class endpoint {
1616d80fe9SBenjamin Kietzman string process_name_;
1716d80fe9SBenjamin Kietzman string path_;
1816d80fe9SBenjamin Kietzman string interface_;
19458a9c10SVernon Mauery string member_;
2016d80fe9SBenjamin Kietzman
2116d80fe9SBenjamin Kietzman public:
endpoint(const string & process_name,const string & path,const string & interface)22da3eeb6aSEd Tanous endpoint(const string& process_name, const string& path,
2316d80fe9SBenjamin Kietzman const string& interface)
24da3eeb6aSEd Tanous : process_name_(process_name), path_(path), interface_(interface) {}
2516d80fe9SBenjamin Kietzman
endpoint(const string & process_name,const string & path,const string & interface,const string & member)26458a9c10SVernon Mauery endpoint(const string& process_name, const string& path,
27458a9c10SVernon Mauery const string& interface, const string& member)
28*377e76abSEd Tanous : process_name_(process_name),
29*377e76abSEd Tanous path_(path),
30*377e76abSEd Tanous interface_(interface),
31*377e76abSEd Tanous member_(member) {}
32458a9c10SVernon Mauery
get_path() const33da3eeb6aSEd Tanous const string& get_path() const { return path_; }
3416d80fe9SBenjamin Kietzman
get_interface() const35da3eeb6aSEd Tanous const string& get_interface() const { return interface_; }
3616d80fe9SBenjamin Kietzman
get_process_name() const37da3eeb6aSEd Tanous const string& get_process_name() const { return process_name_; }
38458a9c10SVernon Mauery
get_member() const39458a9c10SVernon Mauery const string& get_member() const { return member_; }
40458a9c10SVernon Mauery
operator ==(const endpoint & other) const41458a9c10SVernon Mauery const bool operator==(const endpoint& other) const {
42*377e76abSEd Tanous return (process_name_ == other.process_name_ && path_ == other.path_ &&
43*377e76abSEd Tanous interface_ == other.interface_ && member_ == other.member_);
44458a9c10SVernon Mauery }
4516d80fe9SBenjamin Kietzman };
4616d80fe9SBenjamin Kietzman
operator <<(std::ostream & os,const dbus::endpoint & e)47*377e76abSEd Tanous inline std::ostream& operator<<(std::ostream& os, const dbus::endpoint& e) {
48*377e76abSEd Tanous os << "path=\"" << e.get_path() << "\" interface=\"" << e.get_interface()
49*377e76abSEd Tanous << "\" process_name=\"" << e.get_process_name() << "\"";
50*377e76abSEd Tanous return os;
51*377e76abSEd Tanous }
52*377e76abSEd Tanous
5316d80fe9SBenjamin Kietzman } // namespace dbus
5416d80fe9SBenjamin Kietzman
5516d80fe9SBenjamin Kietzman #endif // DBUS_ENDPOINT_HPP
56