/* * * Embedded Linux library * * Copyright (C) 2011-2014 Intel Corporation. All rights reserved. * Copyright (C) 2017 Codecoup. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ #ifndef __ELL_DBUS_CLIENT_H #define __ELL_DBUS_CLIENT_H #include #ifdef __cplusplus extern "C" { #endif struct l_dbus; struct l_dbus_message; struct l_dbus_client; struct l_dbus_proxy; typedef void (*l_dbus_client_ready_func_t)(struct l_dbus_client *client, void *user_data); typedef void (*l_dbus_client_proxy_func_t) (struct l_dbus_proxy *proxy, void *user_data); typedef void (*l_dbus_client_proxy_result_func_t) (struct l_dbus_proxy *proxy, struct l_dbus_message *result, void *user_data); typedef void (*l_dbus_client_property_function_t) (struct l_dbus_proxy *proxy, const char *name, struct l_dbus_message *msg, void *user_data); struct l_dbus_client *l_dbus_client_new(struct l_dbus *dbus, const char *service, const char *path); void l_dbus_client_destroy(struct l_dbus_client *client); bool l_dbus_client_set_connect_handler(struct l_dbus_client *client, l_dbus_watch_func_t function, void *user_data, l_dbus_destroy_func_t destroy); bool l_dbus_client_set_disconnect_handler(struct l_dbus_client *client, l_dbus_watch_func_t function, void *user_data, l_dbus_destroy_func_t destroy); bool l_dbus_client_set_ready_handler(struct l_dbus_client *client, l_dbus_client_ready_func_t function, void *user_data, l_dbus_destroy_func_t destroy); bool l_dbus_client_set_proxy_handlers(struct l_dbus_client *client, l_dbus_client_proxy_func_t proxy_added, l_dbus_client_proxy_func_t proxy_removed, l_dbus_client_property_function_t property_changed, void *user_data, l_dbus_destroy_func_t destroy); const char *l_dbus_proxy_get_path(struct l_dbus_proxy *proxy); const char *l_dbus_proxy_get_interface(struct l_dbus_proxy *proxy); bool l_dbus_proxy_get_property(struct l_dbus_proxy *proxy, const char *name, const char *signature, ...); bool l_dbus_proxy_set_property(struct l_dbus_proxy *proxy, l_dbus_client_proxy_result_func_t result, void *user_data, l_dbus_destroy_func_t destroy, const char *name, const char *signature, ...); uint32_t l_dbus_proxy_method_call(struct l_dbus_proxy *proxy, const char *method, l_dbus_message_func_t setup, l_dbus_client_proxy_result_func_t reply, void *user_data, l_dbus_destroy_func_t destroy); #ifdef __cplusplus } #endif #endif /* __ELL_DBUS_CLIENT_H */