client: Service API command line client support
[platform/upstream/connman.git] / client / services.h
1 /*
2  *
3  *  Connection Manager
4  *
5  *  Copyright (C) 2012  Intel Corporation. All rights reserved.
6  *
7  *  This program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License version 2 as
9  *  published by the Free Software Foundation.
10  *
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program; if not, write to the Free Software
18  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  */
21 #ifndef __CLIENT_SERVICES_H
22 #define __CLIENT_SERVICES_H
23
24 #include <stdint.h>
25
26 #include <dbus/dbus.h>
27
28 struct service_data {
29         const char *path;
30         const char *name;
31         dbus_bool_t autoconn;
32         dbus_bool_t favorite;
33         dbus_bool_t connected;
34         dbus_bool_t online;
35 };
36
37 char *strip_service_path(char *service);
38 void extract_service_name(DBusMessageIter *dict, struct service_data *service);
39 int set_service_property(DBusConnection *connection, DBusMessage *message,
40                                 char *name, char *property, char **keys,
41                                 void *data, int num_args);
42 int set_proxy_manual(DBusConnection *connection, DBusMessage *message,
43                                 char *name, char **servers, char **excludes,
44                                 int num_servers, int num_excludes);
45
46 const char *find_service(DBusConnection *connection, DBusMessage *message,
47                           char *service_name, struct service_data *service);
48 void extract_services(DBusMessage *message, char *service_name);
49 void get_services(DBusMessage *message);
50 void iterate_dict(DBusMessageIter *dict, char *string, uint16_t key_int);
51 int list_services(DBusConnection *connection, char *function);
52 int list_services_properties(DBusConnection *connection, char *function,
53                                 char *service_name);
54 int listen_for_service_signal(DBusConnection *connection, char *signal_name,
55                         char *service_name);
56 void iterate_array(DBusMessageIter *iter);
57 #endif