Provides a mechanism for creating local proxies for objects with dbus interfaces. More...
#include <objectproxy.h>
Public Types | |
typedef DBusCxxPointer < ObjectProxy > | pointer |
typedef std::multimap < std::string, InterfaceProxy::pointer > | Interfaces |
Public Member Functions | |
virtual | ~ObjectProxy () |
DBusCxxPointer< Connection > | connection () const |
void | set_connection (DBusCxxPointer< Connection > conn) |
const std::string & | destination () const |
void | set_destination (const std::string &destination) |
const Path & | path () const |
void | set_path (const std::string &path) |
const Interfaces & | interfaces () const |
InterfaceProxy::pointer | interface (const std::string &name) const |
Returns the first interface with the given name. | |
InterfaceProxy::pointer | operator[] (const std::string &name) const |
Alias for interface(name). | |
bool | add_interface (InterfaceProxy::pointer interface) |
Adds the interface to this object. | |
InterfaceProxy::pointer | create_interface (const std::string &name) |
Creates and adds the named interface to this object. | |
void | remove_interface (const std::string &name) |
Removes the first interface with the given name. | |
void | remove_interface (InterfaceProxy::pointer interface) |
Removes the given interface. | |
bool | has_interface (const std::string &name) const |
bool | has_interface (InterfaceProxy::pointer interface) const |
InterfaceProxy::pointer | default_interface () const |
bool | set_default_interface (const std::string &new_default_name) |
bool | set_default_interface (InterfaceProxy::pointer new_default) |
void | remove_default_interface () |
bool | add_method (const std::string &interface, MethodProxyBase::pointer method) |
Adds the method to the named interface. | |
bool | add_method (MethodProxyBase::pointer method) |
Adds the method to the default interface. | |
CallMessage::pointer | create_call_message (const std::string &interface_name, const std::string &method_name) const |
CallMessage::pointer | create_call_message (const std::string &method_name) const |
ReturnMessage::const_pointer | call (CallMessage::const_pointer, int timeout_milliseconds=-1) const |
PendingCall::pointer | call_async (CallMessage::const_pointer, int timeout_milliseconds=-1) const |
template<class T_return , class T_arg1 = nil, class T_arg2 = nil, class T_arg3 = nil, class T_arg4 = nil, class T_arg5 = nil, class T_arg6 = nil, class T_arg7 = nil> | |
DBusCxxPointer< MethodProxy < T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 > > | create_method (const std::string &interface_name, const std::string &method_name) |
template<class T_return , class T_arg1 = nil, class T_arg2 = nil, class T_arg3 = nil, class T_arg4 = nil, class T_arg5 = nil, class T_arg6 = nil, class T_arg7 = nil> | |
DBusCxxPointer< signal_proxy < T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 > > | create_signal (const std::string &interface_name, const std::string &sig_name) |
sigc::signal< void, InterfaceProxy::pointer > | signal_interface_added () |
sigc::signal< void, InterfaceProxy::pointer > | signal_interface_removed () |
sigc::signal< void, InterfaceProxy::pointer, InterfaceProxy::pointer > | signal_default_interface_changed () |
Static Public Member Functions | |
static pointer | create (const std::string &path) |
static pointer | create (const std::string &destination, const std::string &path) |
static pointer | create (DBusCxxPointer< Connection > conn, const std::string &path) |
static pointer | create (DBusCxxPointer< Connection > conn, const std::string &destination, const std::string &path) |
Protected Types | |
typedef std::map < InterfaceProxy::pointer, sigc::connection > | InterfaceSignalNameConnections |
Protected Member Functions | |
ObjectProxy (DBusCxxPointer< Connection > conn, const std::string &destination, const std::string &path) | |
void | on_interface_name_changed (const std::string &oldname, const std::string &newname, InterfaceProxy::pointer interface) |
Protected Attributes | |
DBusCxxPointer< Connection > | m_connection |
std::string | m_destination |
Path | m_path |
pthread_rwlock_t | m_interfaces_rwlock |
pthread_mutex_t | m_name_mutex |
Interfaces | m_interfaces |
InterfaceProxy::pointer | m_default_interface |
sigc::signal< void, InterfaceProxy::pointer, InterfaceProxy::pointer > | m_signal_default_interface_changed |
sigc::signal< void, InterfaceProxy::pointer > | m_signal_interface_added |
sigc::signal< void, InterfaceProxy::pointer > | m_signal_interface_removed |
InterfaceSignalNameConnections | m_interface_signal_name_connections |
Provides a mechanism for creating local proxies for objects with dbus interfaces.
calculator_client.cpp, calculator_watcher.cpp, caller_object.cpp, hal_proxy.cpp, and signal_receiver_object.cpp.
typedef std::multimap<std::string, InterfaceProxy::pointer> DBus::ObjectProxy::Interfaces |
typedef std::map<InterfaceProxy::pointer,sigc::connection> DBus::ObjectProxy::InterfaceSignalNameConnections [protected] |
typedef DBusCxxPointer<ObjectProxy> DBus::ObjectProxy::pointer |
DBus::ObjectProxy::ObjectProxy | ( | DBusCxxPointer< Connection > | conn, | |
const std::string & | destination, | |||
const std::string & | path | |||
) | [protected] |
Referenced by create().
DBus::ObjectProxy::~ObjectProxy | ( | ) | [virtual] |
References m_interfaces_rwlock, and m_name_mutex.
bool DBus::ObjectProxy::add_interface | ( | InterfaceProxy::pointer | interface | ) |
Adds the interface to this object.
References m_default_interface, m_interface_signal_name_connections, m_interfaces, m_interfaces_rwlock, m_signal_interface_added, on_interface_name_changed(), and set_default_interface().
Referenced by create_interface(), and set_default_interface().
bool DBus::ObjectProxy::add_method | ( | MethodProxyBase::pointer | method | ) |
Adds the method to the default interface.
References create_interface(), interface(), m_default_interface, and set_default_interface().
bool DBus::ObjectProxy::add_method | ( | const std::string & | interface, | |
MethodProxyBase::pointer | method | |||
) |
Adds the method to the named interface.
References create_interface(), and interface().
ReturnMessage::const_pointer DBus::ObjectProxy::call | ( | CallMessage::const_pointer | call_message, | |
int | timeout_milliseconds = -1 | |||
) | const |
References m_connection.
PendingCall::pointer DBus::ObjectProxy::call_async | ( | CallMessage::const_pointer | call_message, | |
int | timeout_milliseconds = -1 | |||
) | const |
References m_connection.
Connection::pointer DBus::ObjectProxy::connection | ( | ) | const |
References m_connection.
Referenced by DBus::InterfaceProxy::connection().
static pointer DBus::ObjectProxy::create | ( | DBusCxxPointer< Connection > | conn, | |
const std::string & | destination, | |||
const std::string & | path | |||
) | [static] |
static pointer DBus::ObjectProxy::create | ( | DBusCxxPointer< Connection > | conn, | |
const std::string & | path | |||
) | [static] |
ObjectProxy::pointer DBus::ObjectProxy::create | ( | const std::string & | destination, | |
const std::string & | path | |||
) | [static] |
References ObjectProxy().
ObjectProxy::pointer DBus::ObjectProxy::create | ( | const std::string & | path | ) | [static] |
References ObjectProxy().
Referenced by create_call_message(), and create_interface().
CallMessage::pointer DBus::ObjectProxy::create_call_message | ( | const std::string & | method_name | ) | const |
References create(), m_destination, and m_path.
CallMessage::pointer DBus::ObjectProxy::create_call_message | ( | const std::string & | interface_name, | |
const std::string & | method_name | |||
) | const |
References create(), m_destination, and m_path.
InterfaceProxy::pointer DBus::ObjectProxy::create_interface | ( | const std::string & | name | ) |
Creates and adds the named interface to this object.
References add_interface(), create(), and interface().
Referenced by add_method(), create_method(), and create_signal().
DBusCxxPointer<MethodProxy<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > DBus::ObjectProxy::create_method | ( | const std::string & | interface_name, | |
const std::string & | method_name | |||
) | [inline] |
References create_interface(), and interface().
DBusCxxPointer<signal_proxy<T_return,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> > DBus::ObjectProxy::create_signal | ( | const std::string & | interface_name, | |
const std::string & | sig_name | |||
) | [inline] |
References create_interface(), and interface().
InterfaceProxy::pointer DBus::ObjectProxy::default_interface | ( | ) | const |
References m_default_interface.
const std::string & DBus::ObjectProxy::destination | ( | ) | const |
References m_destination.
bool DBus::ObjectProxy::has_interface | ( | InterfaceProxy::pointer | interface | ) | const |
References m_interfaces, and m_interfaces_rwlock.
bool DBus::ObjectProxy::has_interface | ( | const std::string & | name | ) | const |
References m_interfaces, and m_interfaces_rwlock.
Referenced by set_default_interface().
InterfaceProxy::pointer DBus::ObjectProxy::interface | ( | const std::string & | name | ) | const |
Returns the first interface with the given name.
References m_interfaces, and m_interfaces_rwlock.
Referenced by add_method(), create_interface(), create_method(), create_signal(), operator[](), and remove_interface().
const ObjectProxy::Interfaces & DBus::ObjectProxy::interfaces | ( | ) | const |
References m_interfaces.
void DBus::ObjectProxy::on_interface_name_changed | ( | const std::string & | oldname, | |
const std::string & | newname, | |||
InterfaceProxy::pointer | interface | |||
) | [protected] |
References m_interface_signal_name_connections, m_interfaces, and m_interfaces_rwlock.
Referenced by add_interface().
InterfaceProxy::pointer DBus::ObjectProxy::operator[] | ( | const std::string & | name | ) | const |
Alias for interface(name).
References interface().
const Path & DBus::ObjectProxy::path | ( | ) | const |
References m_path.
Referenced by DBus::InterfaceProxy::path().
void DBus::ObjectProxy::remove_default_interface | ( | ) |
References m_default_interface, and m_signal_default_interface_changed.
void DBus::ObjectProxy::remove_interface | ( | InterfaceProxy::pointer | interface | ) |
Removes the given interface.
References m_default_interface, m_interface_signal_name_connections, m_interfaces, m_interfaces_rwlock, m_signal_default_interface_changed, and m_signal_interface_removed.
void DBus::ObjectProxy::remove_interface | ( | const std::string & | name | ) |
Removes the first interface with the given name.
References interface(), m_default_interface, m_interface_signal_name_connections, m_interfaces, m_interfaces_rwlock, m_signal_default_interface_changed, and m_signal_interface_removed.
void DBus::ObjectProxy::set_connection | ( | DBusCxxPointer< Connection > | conn | ) |
bool DBus::ObjectProxy::set_default_interface | ( | InterfaceProxy::pointer | new_default | ) |
References add_interface(), has_interface(), m_default_interface, and m_signal_default_interface_changed.
bool DBus::ObjectProxy::set_default_interface | ( | const std::string & | new_default_name | ) |
References m_default_interface, m_interfaces, m_interfaces_rwlock, and m_signal_default_interface_changed.
Referenced by add_interface(), and add_method().
void DBus::ObjectProxy::set_destination | ( | const std::string & | destination | ) |
References m_destination.
void DBus::ObjectProxy::set_path | ( | const std::string & | path | ) |
References m_interfaces, and m_path.
sigc::signal< void, InterfaceProxy::pointer, InterfaceProxy::pointer > DBus::ObjectProxy::signal_default_interface_changed | ( | ) |
References m_signal_default_interface_changed.
sigc::signal< void, InterfaceProxy::pointer > DBus::ObjectProxy::signal_interface_added | ( | ) |
References m_signal_interface_added.
sigc::signal< void, InterfaceProxy::pointer > DBus::ObjectProxy::signal_interface_removed | ( | ) |
References m_signal_interface_removed.
DBusCxxPointer<Connection> DBus::ObjectProxy::m_connection [protected] |
Referenced by call(), call_async(), and connection().
Referenced by add_interface(), add_method(), default_interface(), remove_default_interface(), remove_interface(), and set_default_interface().
std::string DBus::ObjectProxy::m_destination [protected] |
Referenced by create_call_message(), destination(), and set_destination().
Referenced by add_interface(), on_interface_name_changed(), and remove_interface().
Interfaces DBus::ObjectProxy::m_interfaces [protected] |
Referenced by add_interface(), has_interface(), interface(), interfaces(), on_interface_name_changed(), remove_interface(), set_default_interface(), and set_path().
pthread_rwlock_t DBus::ObjectProxy::m_interfaces_rwlock [mutable, protected] |
Referenced by add_interface(), has_interface(), interface(), on_interface_name_changed(), remove_interface(), set_default_interface(), and ~ObjectProxy().
pthread_mutex_t DBus::ObjectProxy::m_name_mutex [protected] |
Referenced by ~ObjectProxy().
Path DBus::ObjectProxy::m_path [protected] |
Referenced by create_call_message(), path(), and set_path().
sigc::signal<void,InterfaceProxy::pointer,InterfaceProxy::pointer> DBus::ObjectProxy::m_signal_default_interface_changed [protected] |
sigc::signal<void,InterfaceProxy::pointer> DBus::ObjectProxy::m_signal_interface_added [protected] |
Referenced by add_interface(), and signal_interface_added().
sigc::signal<void,InterfaceProxy::pointer> DBus::ObjectProxy::m_signal_interface_removed [protected] |
Referenced by remove_interface(), and signal_interface_removed().