Macros

#define ELDBUS_TIMEOUT_INFINITE   ((int) 0x7fffffff)
 

Typedefs

typedef void(* Eldbus_Connection_Event_Cb) (void *data, Eldbus_Connection *conn, void *event_info)
 

Enumerations

enum  Eldbus_Connection_Type {
  ELDBUS_CONNECTION_TYPE_UNKNOWN = 0,
  ELDBUS_CONNECTION_TYPE_SESSION,
  ELDBUS_CONNECTION_TYPE_SYSTEM,
  ELDBUS_CONNECTION_TYPE_STARTER,
  ELDBUS_CONNECTION_TYPE_ADDRESS,
  ELDBUS_CONNECTION_TYPE_LAST
}
 
enum  Eldbus_Connection_Event_Type {
  ELDBUS_CONNECTION_EVENT_DEL,
  ELDBUS_CONNECTION_EVENT_DISCONNECTED,
  ELDBUS_CONNECTION_EVENT_LAST
}
 

Functions

Eldbus_Connectioneldbus_connection_get (Eldbus_Connection_Type type)
 Establish a connection to bus and integrate it with the ecore main loop. More...
 
Eldbus_Connectioneldbus_private_connection_get (Eldbus_Connection_Type type)
 Always create and establish a new connection to bus and integrate it with the ecore main loop. More...
 
Eldbus_Connectioneldbus_address_connection_get (const char *address)
 Establish a connection to bus and integrate it with the ecore main loop. More...
 
Eldbus_Connectioneldbus_private_address_connection_get (const char *address)
 Always create and establish a new connection to bus and integrate it with the ecore main loop. More...
 
Eldbus_Connectioneldbus_connection_ref (Eldbus_Connection *conn)
 Increment connection reference count. More...
 
void eldbus_connection_unref (Eldbus_Connection *conn)
 Decrement connection reference count. More...
 
void eldbus_connection_free_cb_add (Eldbus_Connection *conn, Eldbus_Free_Cb cb, const void *data)
 Add a callback function to be called when connection is freed. More...
 
void eldbus_connection_free_cb_del (Eldbus_Connection *conn, Eldbus_Free_Cb cb, const void *data)
 Remove callback registered in eldbus_connection_free_cb_add().
 
void eldbus_connection_data_set (Eldbus_Connection *conn, const char *key, const void *data)
 Set an attached data pointer to an object with a given string key. More...
 
void * eldbus_connection_data_get (const Eldbus_Connection *conn, const char *key)
 Get data stored in connection. More...
 
void * eldbus_connection_data_del (Eldbus_Connection *conn, const char *key)
 Del data stored in connection. More...
 
void eldbus_connection_event_callback_add (Eldbus_Connection *conn, Eldbus_Connection_Event_Type type, Eldbus_Connection_Event_Cb cb, const void *cb_data)
 Add a callback function to be called when an event occurs of the type passed.
 
void eldbus_connection_event_callback_del (Eldbus_Connection *conn, Eldbus_Connection_Event_Type type, Eldbus_Connection_Event_Cb cb, const void *cb_data)
 Remove callback registered in eldbus_connection_event_callback_add().
 
Eldbus_Pendingeldbus_connection_send (Eldbus_Connection *conn, Eldbus_Message *msg, Eldbus_Message_Cb cb, const void *cb_data, double timeout)
 Send a message. More...
 

Detailed Description

Enumeration Type Documentation

Enumerator
ELDBUS_CONNECTION_TYPE_UNKNOWN 

sentinel, not a real type

ELDBUS_CONNECTION_TYPE_LAST 

sentinel, not a real type

Enumerator
ELDBUS_CONNECTION_EVENT_LAST 

sentinel, not a real event type

Function Documentation

Eldbus_Connection* eldbus_connection_get ( Eldbus_Connection_Type  type)

Establish a connection to bus and integrate it with the ecore main loop.

If a connection of given type was already created before, its reference counter is incremented and the connection is returned.

Parameters
typetype of connection e.g ELDBUS_CONNECTION_TYPE_SESSION, ELDBUS_CONNECTION_TYPE_SYSTEM or ELDBUS_CONNECTION_TYPE_STARTER
Returns
connection with bus
Examples:
banshee.c, client.c, complex-types-client-eina-value.c, complex-types-server.c, complex-types.c, connman-list-services.c, ofono-dial.c, server.c, and simple-signal-emit.c.

References EAPI, and eldbus_connection_ref().

Referenced by ethumb_client_connect().

Eldbus_Connection* eldbus_private_connection_get ( Eldbus_Connection_Type  type)

Always create and establish a new connection to bus and integrate it with the ecore main loop.

Differently from eldbus_connection_get(), this function guarantees to create a new connection to the D-Bus daemon and the connection is not shared by any means.

Parameters
typetype of connection e.g ELDBUS_CONNECTION_TYPE_SESSION, ELDBUS_CONNECTION_TYPE_SYSTEM or ELDBUS_CONNECTION_TYPE_STARTER
Returns
connection with bus

References EAPI.

Eldbus_Connection* eldbus_address_connection_get ( const char *  address)

Establish a connection to bus and integrate it with the ecore main loop.

If a connection of given type was already created before, its reference counter is incremented and the connection is returned.

Parameters
addressthe address which will be passed to dbus_connection_open()
Returns
connection with bus

References EAPI, eina_hash_add(), eina_hash_find(), eina_hash_string_small_new(), and eldbus_connection_ref().

Eldbus_Connection* eldbus_private_address_connection_get ( const char *  address)

Always create and establish a new connection to bus and integrate it with the ecore main loop.

Differently from eldbus_connection_get(), this function guarantees to create a new connection to the D-Bus daemon and the connection is not shared by any means.

Parameters
addressthe address which will be passed to dbus_connection_open_private()
Returns
connection with bus

References EAPI.

void eldbus_connection_unref ( Eldbus_Connection conn)

Decrement connection reference count.

If reference count reaches 0, the connection to bus will be dropped and all its children will be invalidated.

Examples:
banshee.c, client.c, complex-types-client-eina-value.c, complex-types-server.c, complex-types.c, connman-list-services.c, ofono-dial.c, server.c, and simple-signal-emit.c.

References EAPI.

Referenced by eldbus_service_object_unregister(), and eldbus_shutdown().

void eldbus_connection_free_cb_add ( Eldbus_Connection conn,
Eldbus_Free_Cb  cb,
const void *  data 
)

Add a callback function to be called when connection is freed.

Parameters
connThe connection object to add the callback to.
cbcallback to be called
datadata passed to callback

References EAPI.

Referenced by eldbus_object_get(), and eldbus_signal_handler_add().

void eldbus_connection_data_set ( Eldbus_Connection conn,
const char *  key,
const void *  data 
)

Set an attached data pointer to an object with a given string key.

Parameters
connThe connection object to store data to
keyto identify data
datadata that will be stored

References EAPI.

void* eldbus_connection_data_get ( const Eldbus_Connection conn,
const char *  key 
)

Get data stored in connection.

Parameters
connconnection where data is stored
keykey that identifies data
Returns
pointer to data if found otherwise NULL

References EAPI.

void* eldbus_connection_data_del ( Eldbus_Connection conn,
const char *  key 
)

Del data stored in connection.

Parameters
connconnection where data is stored
keythat identifies data
Returns
pointer to data if found otherwise NULL

References EAPI, ECORE_CALLBACK_CANCEL, EINA_INLIST_FOREACH, EINA_INLIST_GET, eina_inlist_remove(), and EINA_LIST_FREE.

Eldbus_Pending* eldbus_connection_send ( Eldbus_Connection conn,
Eldbus_Message msg,
Eldbus_Message_Cb  cb,
const void *  cb_data,
double  timeout 
)

Send a message.

Parameters
connthe connection where the message will be sent
msgmessage that will be sent
cbif msg is a method call a callback should be passed to be executed when a response arrives
cb_datadata passed to callback
timeouttimeout in milliseconds, -1 to use default internal value or ELDBUS_TIMEOUT_INFINITE for no timeout
Examples:
server.c.

References EAPI, EINA_MAGIC_NONE, EINA_MAGIC_SET, eina_stringshare_add(), eina_stringshare_del(), eldbus_message_error_new(), eldbus_message_unref(), and eldbus_pending_free_cb_add().