Fork Vasum on GitHub Official Vasum Wiki on Tizen.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
dbus::DbusConnection Class Reference

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
 

Detailed Description

Dbus connection.

Provides a functionality that allows to call dbus methods, register dbus interfaces, etc.

TODO divide to interface and implementation header

Member Typedef Documentation

typedef std::function<void(AsyncMethodCallResult& asyncMethodCallResult )> dbus::DbusConnection::AsyncMethodCallCallback
typedef std::map<std::string, guint> dbus::DbusConnection::ClientsMap
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::function<void(const std::string& senderBusName, const std::string& objectPath, const std::string& interface, const std::string& signalName, GVariant* parameters )> dbus::DbusConnection::SignalCallback
typedef std::function<void()> dbus::DbusConnection::VoidCallback

Constructor & Destructor Documentation

dbus::DbusConnection::~DbusConnection ( )
dbus::DbusConnection::DbusConnection ( const std::string &  address)
private

Member Function Documentation

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.

DbusConnection::Pointer dbus::DbusConnection::create ( const std::string &  address)
static

Creates a connection to the dbus with given address.

DbusConnection::Pointer dbus::DbusConnection::createSystem ( )
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.

void dbus::DbusConnection::onAsyncReady ( GObject *  source,
GAsyncResult *  asyncResult,
gpointer  userData 
)
staticprivate
void dbus::DbusConnection::onClientVanish ( GDBusConnection *  connection,
const gchar *  name,
gpointer  userData 
)
staticprivate
void dbus::DbusConnection::onMethodCall ( GDBusConnection *  connection,
const gchar *  sender,
const gchar *  objectPath,
const gchar *  interface,
const gchar *  method,
GVariant *  parameters,
GDBusMethodInvocation *  invocation,
gpointer  userData 
)
staticprivate
void dbus::DbusConnection::onNameAcquired ( GDBusConnection *  connection,
const gchar *  name,
gpointer  userData 
)
staticprivate
void dbus::DbusConnection::onNameLost ( GDBusConnection *  connection,
const gchar *  name,
gpointer  userData 
)
staticprivate
void dbus::DbusConnection::onSignal ( GDBusConnection *  connection,
const gchar *  sender,
const gchar *  object,
const gchar *  interface,
const gchar *  name,
GVariant *  parameters,
gpointer  userData 
)
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.

Member Data Documentation

GDBusConnection* dbus::DbusConnection::mConnection
private
utils::CallbackGuard dbus::DbusConnection::mGuard
private
guint dbus::DbusConnection::mNameId
private
ClientsMap dbus::DbusConnection::mWatchedClients
private

The documentation for this class was generated from the following files: