Data Structures | |
struct | _Eldbus_Arg_Info |
struct | _Eldbus_Method |
struct | _Eldbus_Method2 |
struct | _Eldbus_Signal |
struct | _Eldbus_Property |
struct | _Eldbus_Service_Interface_Desc |
struct | _Eldbus_Service_Interface_Desc2 |
Macros | |
#define | ELDBUS_METHOD_FLAG_DEPRECATED 1 |
#define | ELDBUS_METHOD_FLAG_NOREPLY (1 << 1) |
#define | ELDBUS_METHOD_FLAG_HAS_DATA (1 << 2) |
#define | ELDBUS_SIGNAL_FLAG_DEPRECATED 1 |
#define | ELDBUS_PROPERTY_FLAG_DEPRECATED 1 |
#define | ELDBUS_INTERFACE_DESCRIPTOR_VERSION 2 |
#define | ELDBUS_ARGS(args...) (const Eldbus_Arg_Info[]){ args, { NULL, NULL } } |
Used to insert complete types to signature of methods or signals. More... | |
Typedefs | |
typedef struct _Eldbus_Arg_Info | Eldbus_Arg_Info |
typedef struct _Eldbus_Service_Interface | Eldbus_Service_Interface |
typedef Eldbus_Message *(* | Eldbus_Method_Cb) (const Eldbus_Service_Interface *iface, const Eldbus_Message *message) |
typedef Eldbus_Message *(* | Eldbus_Method_Data_Cb) (void *data, const Eldbus_Service_Interface *iface, const Eldbus_Message *message) |
typedef Eina_Bool(* | Eldbus_Property_Get_Cb) (const Eldbus_Service_Interface *iface, const char *propname, Eldbus_Message_Iter *iter, const Eldbus_Message *request_msg, Eldbus_Message **error) |
Callback function to append property value to message. More... | |
typedef Eldbus_Message *(* | Eldbus_Property_Set_Cb) (const Eldbus_Service_Interface *iface, const char *propname, Eldbus_Message_Iter *iter, const Eldbus_Message *input_msg) |
Callback function to set property value from message. More... | |
typedef struct _Eldbus_Method | Eldbus_Method |
typedef struct _Eldbus_Method2 | Eldbus_Method2 |
typedef struct _Eldbus_Signal | Eldbus_Signal |
typedef struct _Eldbus_Property | Eldbus_Property |
typedef struct _Eldbus_Service_Interface_Desc | Eldbus_Service_Interface_Desc |
typedef struct _Eldbus_Service_Interface_Desc2 | Eldbus_Service_Interface_Desc2 |
Functions | |
Eldbus_Service_Interface * | eldbus_service_interface_register (Eldbus_Connection *conn, const char *path, const Eldbus_Service_Interface_Desc *desc) |
Register an interface in the given path and connection. More... | |
Eldbus_Service_Interface * | eldbus_service_interface_fallback_register (Eldbus_Connection *conn, const char *path, const Eldbus_Service_Interface_Desc *desc) |
Register a fallback interface handler for a given subsection of the object hierarchy. More... | |
Eldbus_Service_Interface * | eldbus_service_interface_register2 (Eldbus_Connection *conn, const char *path, const Eldbus_Service_Interface_Desc2 *desc) |
Register an interface in the given path and connection. More... | |
Eldbus_Service_Interface * | eldbus_service_interface_fallback_register2 (Eldbus_Connection *conn, const char *path, const Eldbus_Service_Interface_Desc2 *desc) |
Register a fallback interface handler for a given subsection of the object hierarchy. More... | |
void | eldbus_service_interface_unregister (Eldbus_Service_Interface *iface) |
Unregister a interface. More... | |
void | eldbus_service_object_unregister (Eldbus_Service_Interface *iface) |
Unregister all interfaces of the object path that this interface belongs and the object path. More... | |
Eldbus_Connection * | eldbus_service_connection_get (const Eldbus_Service_Interface *iface) |
const char * | eldbus_service_object_path_get (const Eldbus_Service_Interface *iface) |
Eina_Bool | eldbus_service_signal_emit (const Eldbus_Service_Interface *iface, unsigned int signal_id,...) |
Emit a signal handler of the interface with non-complex types. More... | |
Eldbus_Message * | eldbus_service_signal_new (const Eldbus_Service_Interface *iface, unsigned int signal_id) |
Create signal message. More... | |
Eina_Bool | eldbus_service_signal_send (const Eldbus_Service_Interface *iface, Eldbus_Message *signal_msg) |
Send a signal message. More... | |
void | eldbus_service_object_data_set (Eldbus_Service_Interface *iface, const char *key, const void *data) |
Store data at object path, this data can be obtained from all interfaces of the same object. More... | |
void * | eldbus_service_object_data_get (const Eldbus_Service_Interface *iface, const char *key) |
Get data stored in object path. More... | |
void * | eldbus_service_object_data_del (Eldbus_Service_Interface *iface, const char *key) |
Del data stored in object path. More... | |
Eina_Bool | eldbus_service_property_changed (const Eldbus_Service_Interface *iface, const char *name) |
Add property to list of changed properties A DBus.PropertiesChanged signal will be sent in an idler with all properties that have changed. More... | |
Eina_Bool | eldbus_service_property_invalidate_set (const Eldbus_Service_Interface *iface, const char *name, Eina_Bool is_invalidate) |
Eina_Bool | eldbus_service_object_manager_attach (Eldbus_Service_Interface *iface) |
Attach ObjectManager interface. More... | |
Eina_Bool | eldbus_service_object_manager_detach (Eldbus_Service_Interface *iface) |
Detach ObjectManager interface. More... | |
#define ELDBUS_ARGS | ( | args... | ) | (const Eldbus_Arg_Info[]){ args, { NULL, NULL } } |
Used to insert complete types to signature of methods or signals.
Example: ELDBUS_ARGS({"s", "interface"}, {"s", "property"}) The signature will be "ss" and each string will have a tag name on introspect XML with the respective name.
typedef Eina_Bool(* Eldbus_Property_Get_Cb) (const Eldbus_Service_Interface *iface, const char *propname, Eldbus_Message_Iter *iter, const Eldbus_Message *request_msg, Eldbus_Message **error) |
Callback function to append property value to message.
iface | interface of property |
propname | name of property |
iter | variant iterator in which value must be appended |
request_msg | message that request property |
error | if a error happen you must set a message error to be send caller |
typedef Eldbus_Message *(* Eldbus_Property_Set_Cb) (const Eldbus_Service_Interface *iface, const char *propname, Eldbus_Message_Iter *iter, const Eldbus_Message *input_msg) |
Callback function to set property value from message.
iface | interface of property |
propname | name of property |
input_msg | message call where you have to get value |
Eldbus_Service_Interface * eldbus_service_interface_register | ( | Eldbus_Connection * | conn, |
const char * | path, | ||
const Eldbus_Service_Interface_Desc * | desc | ||
) |
Register an interface in the given path and connection.
conn | where the interface should listen |
path | object path |
desc | description of interface |
References EINA_FALSE.
Eldbus_Service_Interface * eldbus_service_interface_fallback_register | ( | Eldbus_Connection * | conn, |
const char * | path, | ||
const Eldbus_Service_Interface_Desc * | desc | ||
) |
Register a fallback interface handler for a given subsection of the object hierarchy.
Note: Use eldbus_service_interface_unregister() to unregister a interface.
conn | where the interface should listen |
path | a '/' delimited string of path elements |
desc | description of interface |
References EINA_TRUE.
Eldbus_Service_Interface * eldbus_service_interface_register2 | ( | Eldbus_Connection * | conn, |
const char * | path, | ||
const Eldbus_Service_Interface_Desc2 * | desc | ||
) |
Register an interface in the given path and connection.
This extended register function allows the registration of stateful methods, with void* data.
Note: Use eldbus_service_interface_unregister() to unregister a interface.
conn | where the interface should listen |
path | object path |
desc | description of interface |
References EINA_FALSE, and _Eldbus_Service_Interface_Desc2::version.
Eldbus_Service_Interface * eldbus_service_interface_fallback_register2 | ( | Eldbus_Connection * | conn, |
const char * | path, | ||
const Eldbus_Service_Interface_Desc2 * | desc | ||
) |
Register a fallback interface handler for a given subsection of the object hierarchy.
This extended register function allows the registration of stateful methods, with void* data.
Note: Use eldbus_service_interface_unregister() to unregister a interface.
conn | where the interface should listen |
path | a '/' delimited string of path elements |
desc | description of interface |
References EINA_TRUE, and _Eldbus_Service_Interface_Desc2::version.
void eldbus_service_interface_unregister | ( | Eldbus_Service_Interface * | iface | ) |
Unregister a interface.
Note: This doesn't unregister the object path if interface count reaches 0. Use eldbus_service_object_unregister() to unregister the object.
iface | interface to unregister |
References eina_hash_del(), and EINA_TRUE.
void eldbus_service_object_unregister | ( | Eldbus_Service_Interface * | iface | ) |
Unregister all interfaces of the object path that this interface belongs and the object path.
iface | interface to unregister |
References eldbus_connection_free_cb_del().
Eina_Bool eldbus_service_signal_emit | ( | const Eldbus_Service_Interface * | iface, |
unsigned int | signal_id, | ||
... | |||
) |
Emit a signal handler of the interface with non-complex types.
Each signal handler have a internal id, the first signal handler of interface is = 0 the second = 1 and go on.
iface | interface of the signal |
signal_id | id of signal |
... | values that will be send on signal |
References eina_array_count(), eina_array_data_get(), EINA_FALSE, EINA_SAFETY_ON_FALSE_RETURN_VAL, EINA_SAFETY_ON_NULL_RETURN_VAL, EINA_TRUE, eldbus_message_arguments_vappend(), eldbus_message_unref(), eldbus_service_signal_new(), and eldbus_service_signal_send().
Eldbus_Message * eldbus_service_signal_new | ( | const Eldbus_Service_Interface * | iface, |
unsigned int | signal_id | ||
) |
Create signal message.
Each signal handler have a internal id, the first signal handler of interface is = 0 the second = 1 and go on. This function is used when the signal has complex types.
iface | interface of the signal |
signal_id | id of signal |
References eina_array_count(), EINA_SAFETY_ON_FALSE_RETURN_VAL, and eldbus_message_signal_new().
Referenced by eldbus_service_signal_emit().
Eina_Bool eldbus_service_signal_send | ( | const Eldbus_Service_Interface * | iface, |
Eldbus_Message * | signal_msg | ||
) |
Send a signal message.
On success this will call eldbus_message_unref() on the signal_msg
, which is the intended behavior in 99% of the cases. Remember to increment the refcount if you want to keep it alive.
iface | interface of the signal |
signal_msg | message of signal |
References EINA_FALSE, EINA_SAFETY_ON_NULL_RETURN_VAL, and EINA_TRUE.
Referenced by eldbus_service_signal_emit().
void eldbus_service_object_data_set | ( | Eldbus_Service_Interface * | iface, |
const char * | key, | ||
const void * | data | ||
) |
Store data at object path, this data can be obtained from all interfaces of the same object.
iface | interface that belong to the object path where data will be stored |
key | to identify data |
data |
References EINA_SAFETY_ON_NULL_RETURN.
void * eldbus_service_object_data_get | ( | const Eldbus_Service_Interface * | iface, |
const char * | key | ||
) |
Get data stored in object path.
iface | interface that belongs to the object path where data are stored |
key | that identify data |
References EINA_SAFETY_ON_NULL_RETURN_VAL.
void * eldbus_service_object_data_del | ( | Eldbus_Service_Interface * | iface, |
const char * | key | ||
) |
Del data stored in object path.
iface | interface that belongs to the object path where data are stored |
key | that identify data |
References EINA_SAFETY_ON_NULL_RETURN_VAL.
Eina_Bool eldbus_service_property_changed | ( | const Eldbus_Service_Interface * | iface, |
const char * | name | ||
) |
Add property to list of changed properties A DBus.PropertiesChanged signal will be sent in an idler with all properties that have changed.
iface | Interface containing the changed property |
name | Property name |
References ecore_idle_enterer_add(), eina_array_new(), eina_array_push(), EINA_FALSE, eina_hash_find(), and EINA_SAFETY_ON_NULL_RETURN_VAL.
Eina_Bool eldbus_service_object_manager_attach | ( | Eldbus_Service_Interface * | iface | ) |
Attach ObjectManager interface.
iface | ObjectManager will be attach in object path of this interface. |
References ecore_idle_enterer_del(), EINA_FALSE, eina_hash_add(), eina_hash_find(), and EINA_TRUE.
Eina_Bool eldbus_service_object_manager_detach | ( | Eldbus_Service_Interface * | iface | ) |
Detach ObjectManager interface.
iface | ObjectManager of object path of this interface will be detach. |
Flush the iface_add/removed of all children objects that this object is the ObjectManager
References EINA_FALSE, eina_hash_del(), EINA_INLIST_FOREACH, and EINA_TRUE.