xref: /openbmc/boost-dbus/include/dbus/endpoint.hpp (revision 377e76abd1f1deb498e8495c61fb160675584eec)
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