Eldbus_Service(3)

NAME
Eldbus_Service - Service

SYNOPSIS

  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.

  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.
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.
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.
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.
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.
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.
void eldbus_service_interface_unregister (Eldbus_Service_Interface *iface)
Unregister a interface.
void eldbus_service_object_unregister (Eldbus_Service_Interface *iface)
Unregister all interfaces of the object path that this interface belongs and the object path.
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.
Eldbus_Message * eldbus_service_signal_new (const Eldbus_Service_Interface *iface, unsigned int signal_id)
Create signal message.
Eina_Bool eldbus_service_signal_send (const Eldbus_Service_Interface *iface, Eldbus_Message *signal_msg)
Send a signal message.
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.
void * eldbus_service_object_data_get (const Eldbus_Service_Interface *iface, const char *key)
Get data stored in object path.
void * eldbus_service_object_data_del (Eldbus_Service_Interface *iface, const char *key)
Del data stored in object path.
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.
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.
Eina_Bool eldbus_service_object_manager_detach (Eldbus_Service_Interface *iface)
Detach ObjectManager interface.

Detailed Description

Macro Definition Documentation

  #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.

Examples
complex-types-server.c, server.c, and simple-signal-emit.c.

Typedef Documentation

  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.

Parameters
    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

Returns
    EINA_TRUE if success

Note
    request_msg and error arguments are only different from NULL when a client request a property with Properties.Get or Properties.GetAll. Upon calls to eldbus_service_property_changed(), this callback will also be called. It's a mistake to return an error in this case because if a property changed, it must have a new value set and it should be able to be read.

  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.

Parameters
    iface interface of property
    propname name of property
    input_msg message call where you have to get value

Returns
    Message of response, could be a simple method_return, error or NULL to send response later.

Function Documentation

  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.

Parameters
    conn where the interface should listen
    path object path
    desc description of interface

Returns
    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.

Parameters
    conn where the interface should listen
    path a '/' delimited string of path elements
    desc description of interface

See also
    eldbus_service_interface_unregister()

Since
    1.9

Returns
    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.

Parameters
    conn where the interface should listen
    path object path
    desc description of interface

Since
    1.11

Returns
    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.

Parameters
    conn where the interface should listen
    path a '/' delimited string of path elements
    desc description of interface

See also
    eldbus_service_interface_unregister()

Since
    1.11

Returns
    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.

Parameters
    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.

Parameters
    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.

Parameters
    iface interface of the signal
    signal_id id of signal
    ... values that will be send on signal

Returns
    EINA_TRUE if success

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.

Parameters
    iface interface of the signal
    signal_id id of signal

Returns
    EINA_TRUE if success

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.

Parameters
    iface interface of the signal
    signal_msg message of signal

Returns
    EINA_TRUE if success

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.

Parameters
    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.

Parameters
    iface interface that belongs to the object path where data are stored
    key that identify data

Returns
    pointer to data if found otherwise NULL

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.

Parameters
    iface interface that belongs to the object path where data are stored
    key that identify data

Returns
    pointer to data if found otherwise NULL

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.

Parameters
    iface Interface containing the changed property
    name Property name

Returns
    EINA_TRUE if success

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.

Parameters
    iface ObjectManager will be attach in object path of this interface.

Returns
    EINA_TRUE if success

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.

Parameters
    iface ObjectManager of object path of this interface will be detach.

Returns
    EINA_TRUE if success

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.

Author

Generated automatically by Doxygen for EFL from the source code.