Eina_List *pending_add;
Eina_List *pending_remove;
Eina_List *pending_gen;
+ Eina_List *dbus_pending;
struct
{
Ethumb_Client_Die_Cb cb;
{
void *data;
Eldbus_Object *obj;
+ Eldbus_Pending *pending;
if (client->invalid) return;
+ EINA_LIST_FREE(client->dbus_pending, pending)
+ eldbus_pending_cancel(pending);
client->invalid = EINA_TRUE;
EINA_LIST_FREE(client->pending_add, data)
{
}
static void
-_ethumb_client_new_cb(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
+_ethumb_client_new_cb(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending)
{
const char *errname, *errmsg;
const char *opath;
Ethumb_Client *client = data;
Eldbus_Object *obj;
+ client->dbus_pending = eina_list_remove(client->dbus_pending, pending);
if (eldbus_message_error_get(msg, &errname, &errmsg))
{
ERR("Error: %s %s", errname, errmsg);
_ethumb_client_call_new(Ethumb_Client *client)
{
Eldbus_Message *msg;
+ Eldbus_Pending *pending;
msg = eldbus_message_method_call_new(_ethumb_dbus_bus_name,
_ethumb_dbus_path,
_ethumb_dbus_interface, "new");
- eldbus_connection_send(client->conn, msg, _ethumb_client_new_cb, client, -1);
+ pending = eldbus_connection_send(client->conn, msg,
+ _ethumb_client_new_cb, client, -1);
+ if (pending)
+ client->dbus_pending = eina_list_append(client->dbus_pending, pending);
}
static void
*/
static void
-_ethumb_client_ethumb_setup_cb(void *data EINA_UNUSED, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
+_ethumb_client_ethumb_setup_cb(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending)
{
const char *errname, *errmsg;
Eina_Bool result = 0;
+ Ethumb_Client *client = data;
+
+ client->dbus_pending = eina_list_remove(client->dbus_pending, pending);
if (eldbus_message_error_get(msg, &errname, &errmsg))
{
const char *directory, *category;
double video_time, video_start, video_interval;
unsigned int video_ntimes, video_fps, document_page;
+ Eldbus_Pending *pending;
EINA_SAFETY_ON_NULL_RETURN(client);
EINA_SAFETY_ON_FALSE_RETURN(client->connected);
eldbus_message_iter_container_close(main_iter, array);
- eldbus_proxy_send(client->proxy, msg, _ethumb_client_ethumb_setup_cb,
- client, -1);
+ pending = eldbus_proxy_send(client->proxy, msg,
+ _ethumb_client_ethumb_setup_cb, client, -1);
+ if (pending)
+ client->dbus_pending = eina_list_append(client->dbus_pending, pending);
}
/**