* @brief Increase message reference.
*/
EAPI EDBus_Message *edbus_message_ref(EDBus_Message *msg) EINA_ARG_NONNULL(1);
+
/**
* @brief Decrease message reference.
* If reference == 0 message will be freed and all its children.
* @return new EDBus_Message, free with edbus_message_unref()
*/
EAPI EDBus_Message *edbus_message_error_new(const EDBus_Message *reply, const char *error_name, const char *error_msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+
/**
* @brief Constructs a message that is a reply to a method call.
*
* @return new EDBus_Message, free with edbus_message_unref()
*/
EAPI EDBus_Message *edbus_message_method_return_new(const EDBus_Message *msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+
/**
* @brief Constructs a new message representing a signal emission.
*
* needs to be used.
*/
EAPI Eina_Bool edbus_message_arguments_get(const EDBus_Message *msg, const char *signature, ...) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
+
/**
* @brief Get data from EDBus_Message. For each complete type we must have
* a pointer to store its value, in case of complex type
* @defgroup EDBus_Message_Iter Iterator
* @{
*/
+
/**
* @brief Create and appends a typed iterator to another iterator.
*
* @brief Append a basic type to EDBus_Iterator.
*/
EAPI Eina_Bool edbus_message_iter_basic_append(EDBus_Message_Iter *iter, int type, ...) EINA_ARG_NONNULL(1, 3);
+
/**
* @brief Set data to EDBus_Message_Iter. For each complete in signature
* you need pass the value, in case of complex type a pointer to be allocated a
* @brief Get the main EDBus_Message_Iter from the EDBus_Message.
*/
EAPI EDBus_Message_Iter *edbus_message_iter_get(const EDBus_Message *msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+
/**
* @brief Get a basic type from EDBus_Iterator.
*/
* @note The returned string must be freed.
*/
EAPI char *edbus_message_iter_signature_get(EDBus_Message_Iter *iter) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+
/**
* @brief Moves the iterator to the next field, if any.
* @param iter iterator
*
*/
EAPI Eina_Bool edbus_message_iter_get_and_next(EDBus_Message_Iter *iter, char type, ...) EINA_ARG_NONNULL(1, 2, 3);
+
/**
* @brief Reads a block of fixed-length values from the message iterator.
*
* fast; it's much preferred over walking the entire array with an iterator.
*/
EAPI Eina_Bool edbus_message_iter_fixed_array_get(EDBus_Message_Iter *iter, int signature, void *value, int *n_elements) EINA_ARG_NONNULL(1, 3, 4);
+
/**
* @brief Get data from EDBus_Message_Iter, for each complete type must have
* a pointer to store his value, in case of complex type a
* @return EINA_FALSE if signature different from signature in iterator
*/
EAPI Eina_Bool edbus_message_iter_arguments_get(EDBus_Message_Iter *iter, const char *signature, ...) EINA_ARG_NONNULL(1, 2);
+
/**
* @brief Get data from EDBus_Message_Iter, for each complete type must have
* a pointer to store his value, in case of complex type a
* @param path object path of this object
*/
EAPI EDBus_Object *edbus_object_get(EDBus_Connection *conn, const char *bus, const char *path) EINA_ARG_NONNULL(1, 2, 3) EINA_WARN_UNUSED_RESULT;
+
/**
* @brief Increase object reference.
*/
EAPI EDBus_Object *edbus_object_ref(EDBus_Object *obj) EINA_ARG_NONNULL(1);
+
/**
* @brief Decrease object reference.
* If reference == 0 object will be freed and all its children.
* @param data passed to callback
*/
EAPI void edbus_object_cb_free_add(EDBus_Object *obj, EDBus_Free_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2);
+
/**
* @brief Remove callback registered in edbus_object_cb_free_add().
*/
* EDBUS_TIMEOUT_INFINITE for no timeout
*/
EAPI EDBus_Pending *edbus_object_send(EDBus_Object *obj, EDBus_Message *msg, EDBus_Message_Cb cb, const void *cb_data, double timeout) EINA_ARG_NONNULL(1, 2);
+
/**
* @brief Add a signal handler.
*
*
* @{
*/
+
EAPI void edbus_pending_data_set(EDBus_Pending *pending, const char *key, const void *data) EINA_ARG_NONNULL(1, 2, 3);
EAPI void *edbus_pending_data_get(const EDBus_Pending *pending, const char *key) EINA_ARG_NONNULL(1, 2);
EAPI void *edbus_pending_data_del(EDBus_Pending *pending, const char *key) EINA_ARG_NONNULL(1, 2);
* @brief Add a callback function to be called when pending will be freed.
*/
EAPI void edbus_pending_cb_free_add(EDBus_Pending *pending, EDBus_Free_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2);
+
/**
* @brief Remove callback registered in edbus_pending_cb_free_add().
*/
EAPI void edbus_pending_cb_free_del(EDBus_Pending *pending, EDBus_Free_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2);
+
/**
* @}
*/
* @brief Get a proxy of the following interface name in a EDBus_Object.
*/
EAPI EDBus_Proxy *edbus_proxy_get(EDBus_Object *obj, const char *interface) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
+
/**
* @brief Increase proxy reference.
*/
EAPI EDBus_Proxy *edbus_proxy_ref(EDBus_Proxy *proxy) EINA_ARG_NONNULL(1);
+
/**
* @brief Decrease proxy reference.
* If reference == 0 proxy will be freed and all your children.
* edbus_message_iter_* functions.
*/
EAPI EDBus_Pending *edbus_proxy_call(EDBus_Proxy *proxy, const char *member, EDBus_Message_Cb cb, const void *cb_data, double timeout, const char *signature, ...) EINA_ARG_NONNULL(1, 2, 6);
+
/**
* @brief Call a method in proxy.
* Send a method call to interface that proxy belong with data.
* removed too.
*/
EAPI void edbus_service_interface_unregister(EDBus_Service_Interface *iface) EINA_ARG_NONNULL(1);
+
/**
* @brief Unregister all interfaces of the object path that this interface belongs
* and the object path.
* @param ... values that will be send on signal
*/
EAPI Eina_Bool edbus_service_signal_emit(const EDBus_Service_Interface *iface, unsigned int signal_id, ...) EINA_ARG_NONNULL(1);
+
/**
* @brief Create signal message.
* Each signal handler have a internal id, the first signal handler of
* @param signal_id id of signal
*/
EAPI EDBus_Message *edbus_service_signal_new(const EDBus_Service_Interface *iface, unsigned int signal_id) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
+
/**
* @brief Send a signal message.
*/
EAPI Eina_Bool edbus_service_signal_send(const EDBus_Service_Interface *iface, EDBus_Message *signal_msg) EINA_ARG_NONNULL(1, 2);
+
/**
* @brief Store data at object path, this data can be obtained from all interfaces
* of the same object.
* @param data
*/
EAPI void edbus_service_object_data_set(EDBus_Service_Interface *iface, const char *key, const void *data) EINA_ARG_NONNULL(1, 2, 3);
+
/**
* @brief Get data stored in object path.
*
* @brief Increase signal handler reference.
*/
EAPI EDBus_Signal_Handler *edbus_signal_handler_ref(EDBus_Signal_Handler *handler) EINA_ARG_NONNULL(1);
+
/**
* @brief Decrease signal handler reference.
* If reference == 0 signal handler will be freed.
* words it will be canceled but memory will not be freed.
*/
EAPI void edbus_signal_handler_del(EDBus_Signal_Handler *handler) EINA_ARG_NONNULL(1);
+
/**
* @brief Add extra argument in match of signal handler to obtain specifics signals.
*
* @brief Add a callback function to be called when signal handler will be freed.
*/
EAPI void edbus_signal_handler_cb_free_add(EDBus_Signal_Handler *handler, EDBus_Free_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2);
+
/**
* @brief Remove callback registered in edbus_signal_handler_cb_free_add().
*/