ab371bd356b5708ca0c981f41ab8207152f8da39
[framework/telephony/libslp-tapi.git] / 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                         g_error_free(error); \
43                         free(evt_cb_data); \
44                         return; \
45                 } \
46         }
47
48 struct tapi_handle {
49         gpointer dbus_connection;
50         char *path;
51         char *cp_name;
52         GHashTable *evt_list;
53         char cookie[20];
54         GCancellable *ca;
55 };
56
57 struct tapi_resp_data {
58         tapi_response_cb cb_fn;
59         void* user_data;
60         struct tapi_handle *handle;
61 };
62
63 struct tapi_evt_cb {
64         int evt_id;
65         tapi_notification_cb cb_fn;
66         void* user_data;
67         struct tapi_handle *handle;
68 };
69
70 __END_DECLS
71
72 #endif /* _TAPI_COMMON_H_ */
73
74 /**
75  *  @}
76  */