2ed20339aa28f2af07f2b02d51a0fe7424b0727e
[framework/telephony/libslp-tapi.git] / wearable / src / common.h
1 /*
2  * libslp-tapi
3  *
4  * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Ja-young Gu <jygu@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 #ifndef _COMMON_H_
22 #define _COMMON_H_
23
24 #include <stdio.h>
25 #include <glib.h>
26 #include <gio/gio.h>
27
28 __BEGIN_DECLS
29
30 #define TAPI_DEFAULT_TIMEOUT    (60 * 1000) /* Unlimit: G_MAXINT */
31 #define TAPI_UNRESTRICTED_TIMEOUT    (180 * 1000)
32
33 #define MAKE_RESP_CB_DATA(data,handle,cb,user_data)  \
34         if (!handle) { return TAPI_API_INVALID_INPUT; } \
35         data = g_new0(struct tapi_resp_data, 1); \
36         data->handle = handle; \
37         data->cb_fn = cb; \
38         data->user_data = user_data
39
40 #define CHECK_DEINIT(error) \
41         if (error) { \
42                 warn("dbus error = %d (%s)", error->code, error->message); \
43                 if (error->code == G_IO_ERROR_CANCELLED) { \
44                         g_error_free(error); \
45                         g_free(evt_cb_data); \
46                         return; \
47                 } \
48         }
49
50 #define CALLBACK_CALL(data) \
51         if (evt_cb_data->cb_fn) { \
52                 evt_cb_data->cb_fn (handle, noti_id, (data), evt_cb_data->user_data); \
53         }
54
55 struct tapi_handle {
56         gpointer dbus_connection;
57         char *path;
58         char *cp_name;
59         GHashTable *evt_list;
60         char cookie[20];
61         GCancellable *ca;
62
63         GHashTable *cache_property;
64         guint prop_callback_evt_id;
65 };
66
67 struct tapi_resp_data {
68         tapi_response_cb cb_fn;
69         void* user_data;
70         struct tapi_handle *handle;
71 };
72
73 struct tapi_evt_cb {
74         int evt_id;
75         tapi_notification_cb cb_fn;
76         void* user_data;
77         struct tapi_handle *handle;
78 };
79
80 struct signal_map {
81         const char *signal_name;
82         void (*callback)(TapiHandle *handle, GVariant *param, char *noti_id,
83                         struct tapi_evt_cb *evt_cb_data);
84 };
85
86 void _process_network_event(const gchar *sig, GVariant *param,
87         TapiHandle *handle, char *noti_id, struct tapi_evt_cb *evt_cb_data);
88
89 __END_DECLS
90
91 #endif /* _TAPI_COMMON_H_ */
92
93 /**
94  *  @}
95  */