61bb97ca1ed08bde8bc7abc83abb8e07daf5fbd9
[framework/telephony/libslp-tapi.git] / mobile / 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 <glib-object.h>
27 #include <gio/gio.h>
28
29 __BEGIN_DECLS
30
31 #define MAKE_RESP_CB_DATA(data,handle,cb,user_data)  \
32         if (!handle) { return TAPI_API_INVALID_INPUT; } \
33         data = g_new0(struct tapi_resp_data, 1); \
34         data->handle = handle; \
35         data->cb_fn = cb; \
36         data->user_data = user_data
37
38 #define CHECK_DEINIT(error) \
39         if (error) { \
40                 dbg("dbus error = %d (%s)", error->code, error->message); \
41                 if (error->code == G_IO_ERROR_CANCELLED \
42                                 && error->domain == G_IO_ERROR) { \
43                         g_error_free(error); \
44                         free(evt_cb_data); \
45                         return; \
46                 } \
47         }
48
49 struct tapi_handle {
50         gpointer dbus_connection;
51         char *path;
52         char *cp_name;
53         GHashTable *evt_list;
54         char cookie[20];
55         GCancellable *ca;
56 };
57
58 struct tapi_resp_data {
59         tapi_response_cb cb_fn;
60         void* user_data;
61         struct tapi_handle *handle;
62 };
63
64 struct tapi_evt_cb {
65         int evt_id;
66         tapi_notification_cb cb_fn;
67         void* user_data;
68         struct tapi_handle *handle;
69 };
70
71 __END_DECLS
72
73 #endif /* _TAPI_COMMON_H_ */
74
75 /**
76  *  @}
77  */