Dbus connection. More...
#include <connection.hpp>
Classes | |
struct | MethodCallbacks |
struct | NameCallbacks |
struct | VanishedCallbacks |
Public Types | |
typedef std::unique_ptr < DbusConnection > | Pointer |
typedef std::function< void()> | VoidCallback |
typedef std::function< void(const std::string &objectPath, const std::string &interface, const std::string &methodName, GVariant *parameters, MethodResultBuilder::Pointer result)> | MethodCallCallback |
typedef std::function< void(const std::string &name)> | ClientVanishedCallback |
typedef std::function< void(const std::string &senderBusName, const std::string &objectPath, const std::string &interface, const std::string &signalName, GVariant *parameters)> | SignalCallback |
typedef std::function< void(AsyncMethodCallResult &asyncMethodCallResult)> | AsyncMethodCallCallback |
typedef unsigned int | SubscriptionId |
Public Member Functions | |
~DbusConnection () | |
void | setName (const std::string &name, const VoidCallback &onNameAcquired, const VoidCallback &onNameLost) |
Sets a name to the dbus connection. More... | |
void | emitSignal (const std::string &objectPath, const std::string &interface, const std::string &name, GVariant *parameters) |
Emits dbus signal. More... | |
SubscriptionId | signalSubscribe (const SignalCallback &callback, const std::string &senderBusName="", const std::string &interface="", const std::string &objectPath="", const std::string &member="") |
Subscribes to a signal. More... | |
void | signalUnsubscribe (SubscriptionId subscriptionId) |
Unsubscribes from a signal. More... | |
void | registerObject (const std::string &objectPath, const std::string &objectDefinitionXml, const MethodCallCallback &method, const ClientVanishedCallback &vanish) |
Registers an object with given definition. More... | |
GVariantPtr | callMethod (const std::string &busName, const std::string &objectPath, const std::string &interface, const std::string &method, GVariant *parameters, const std::string &replyType, int timeoutMs=-1) |
Call a dbus method. More... | |
void | callMethodAsync (const std::string &busName, const std::string &objectPath, const std::string &interface, const std::string &method, GVariant *parameters, const std::string &replyType, const AsyncMethodCallCallback &callback, int timeoutMs=-1) |
Async call a dbus method. More... | |
std::string | introspect (const std::string &busName, const std::string &objectPath) |
Returns an xml with meta description of specified dbus object. More... | |
Static Public Member Functions | |
static Pointer | create (const std::string &address) |
Creates a connection to the dbus with given address. More... | |
static Pointer | createSystem () |
Creates a connection to the system dbus. More... | |
Private Types | |
typedef std::map< std::string, guint > | ClientsMap |
Private Member Functions | |
DbusConnection (const std::string &address) | |
Static Private Member Functions | |
static void | onNameAcquired (GDBusConnection *connection, const gchar *name, gpointer userData) |
static void | onNameLost (GDBusConnection *connection, const gchar *name, gpointer userData) |
static void | onSignal (GDBusConnection *connection, const gchar *sender, const gchar *object, const gchar *interface, const gchar *name, GVariant *parameters, gpointer userData) |
static void | onMethodCall (GDBusConnection *connection, const gchar *sender, const gchar *objectPath, const gchar *interface, const gchar *method, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer userData) |
static void | onAsyncReady (GObject *source, GAsyncResult *asyncResult, gpointer userData) |
static void | onClientVanish (GDBusConnection *connection, const gchar *name, gpointer userData) |
Private Attributes | |
GDBusConnection * | mConnection |
guint | mNameId |
ClientsMap | mWatchedClients |
utils::CallbackGuard | mGuard |
Dbus connection.
Provides a functionality that allows to call dbus methods, register dbus interfaces, etc.
TODO divide to interface and implementation header
typedef std::function<void(AsyncMethodCallResult& asyncMethodCallResult )> dbus::DbusConnection::AsyncMethodCallCallback |
|
private |
typedef std::function<void(const std::string& name )> dbus::DbusConnection::ClientVanishedCallback |
typedef std::function<void(const std::string& objectPath, const std::string& interface, const std::string& methodName, GVariant* parameters, MethodResultBuilder::Pointer result )> dbus::DbusConnection::MethodCallCallback |
typedef std::unique_ptr<DbusConnection> dbus::DbusConnection::Pointer |
typedef std::function<void(const std::string& senderBusName, const std::string& objectPath, const std::string& interface, const std::string& signalName, GVariant* parameters )> dbus::DbusConnection::SignalCallback |
typedef unsigned int dbus::DbusConnection::SubscriptionId |
typedef std::function<void()> dbus::DbusConnection::VoidCallback |
dbus::DbusConnection::~DbusConnection | ( | ) |
|
private |
GVariantPtr dbus::DbusConnection::callMethod | ( | const std::string & | busName, |
const std::string & | objectPath, | ||
const std::string & | interface, | ||
const std::string & | method, | ||
GVariant * | parameters, | ||
const std::string & | replyType, | ||
int | timeoutMs = -1 |
||
) |
Call a dbus method.
void dbus::DbusConnection::callMethodAsync | ( | const std::string & | busName, |
const std::string & | objectPath, | ||
const std::string & | interface, | ||
const std::string & | method, | ||
GVariant * | parameters, | ||
const std::string & | replyType, | ||
const AsyncMethodCallCallback & | callback, | ||
int | timeoutMs = -1 |
||
) |
Async call a dbus method.
|
static |
Creates a connection to the dbus with given address.
|
static |
Creates a connection to the system dbus.
void dbus::DbusConnection::emitSignal | ( | const std::string & | objectPath, |
const std::string & | interface, | ||
const std::string & | name, | ||
GVariant * | parameters | ||
) |
Emits dbus signal.
std::string dbus::DbusConnection::introspect | ( | const std::string & | busName, |
const std::string & | objectPath | ||
) |
Returns an xml with meta description of specified dbus object.
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
void dbus::DbusConnection::registerObject | ( | const std::string & | objectPath, |
const std::string & | objectDefinitionXml, | ||
const MethodCallCallback & | method, | ||
const ClientVanishedCallback & | vanish | ||
) |
Registers an object with given definition.
Api calls will be handled by given callback.
void dbus::DbusConnection::setName | ( | const std::string & | name, |
const VoidCallback & | onNameAcquired, | ||
const VoidCallback & | onNameLost | ||
) |
Sets a name to the dbus connection.
It allows other client to call methods using this name.
DbusConnection::SubscriptionId dbus::DbusConnection::signalSubscribe | ( | const SignalCallback & | callback, |
const std::string & | senderBusName = "" , |
||
const std::string & | interface = "" , |
||
const std::string & | objectPath = "" , |
||
const std::string & | member = "" |
||
) |
Subscribes to a signal.
Empty sender means subscribe to all signals Returns a subscription identifier that can be used to unsubscribe signal
void dbus::DbusConnection::signalUnsubscribe | ( | DbusConnection::SubscriptionId | subscriptionId | ) |
Unsubscribes from a signal.
|
private |
|
private |
|
private |
|
private |