Do not process the finalize in the nested call.
[platform/core/appfw/com-core.git] / include / com-core.h
1 /*
2  * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17
18 #ifndef _COM_CORE_H
19 #define _COM_CORE_H
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 enum com_core_event_type {
26         CONNECTOR_CONNECTED,
27         CONNECTOR_DISCONNECTED
28 };
29
30 /*!
31  * \brief
32  * \details N/A
33  * \remarks N/A
34  * \param[in] addr
35  * \param[in] is_sync
36  * \param[in] service_cb
37  * \param[in] data
38  * \return int
39  * \retval
40  * \sa
41  */
42 extern int com_core_server_create(const char *addr, int is_sync, const char *label, int (*service_cb)(int fd, void *data), void *data);
43
44 /*!
45  * \brief
46  * \details N/A
47  * \remarks N/A
48  * \param[in] addr
49  * \param[in] is_sync
50  * \param[in] service_cb
51  * \param[in] data
52  * \return int
53  * \retval
54  * \sa
55  */
56 extern int com_core_client_create(const char *addr, int is_sync, int (*service_cb)(int fd, void *data), void *data);
57
58 /*!
59  */
60 extern int com_core_client_create_by_fd(int client_fd, int is_sync, int (*service_cb)(int fd, void *data), void *data);
61
62 /*!
63  * \brief
64  * \details N/A
65  * \remarks N/A
66  * \param[in] handle
67  * \return int
68  * \retval
69  * \sa
70  */
71 extern int com_core_server_destroy(int handle);
72
73 /*!
74  * \brief
75  * \details N/A
76  * \remarks N/A
77  * \param[in] handle
78  * \return int
79  * \retval
80  * \sa
81  */
82 extern int com_core_client_destroy(int handle);
83
84 /*!
85  * \brief Used to handling the changing event of connection status.
86  *        These two functions can be work with com_core_thread series functions.
87  * \details N/A
88  * \remarks N/A
89  * \param[in] type
90  * \param[in] service_cb
91  * \param[in] data
92  * \return int
93  * \retval
94  * \sa
95  */
96 extern int com_core_add_event_callback(enum com_core_event_type type, int (*service_cb)(int handle, void *data), void *data);
97
98 /*!
99  * \brief
100  * \details N/A
101  * \remarks N/A
102  * \param[in] type
103  * \param[in] service_cb
104  * \param[in] data
105  * \return void *
106  * \retval
107  * \sa
108  */
109 extern void *com_core_del_event_callback(enum com_core_event_type type, int (*service_cb)(int handle, void *data), void *data);
110
111 /*!
112  * \brief If the connection is lost, this recv function will call the disconnected callback.
113  * \details N/A
114  * \remarks N/A
115  * \param[in] handle
116  * \param[in] buffer
117  * \param[in] size
118  * \param[in] sender_pid
119  * \param[in] timeout
120  * \return int
121  * \retval
122  * \sa
123  */
124 extern int com_core_recv(int handle, char *buffer, int size, int *sender_pid, double timeout);
125
126 /*!
127  * \brief
128  * \details N/A
129  * \remarks N/A
130  * \param[in] handle
131  * \param[in] buffer
132  * \param[in] size
133  * \param[in] timeout
134  * \return int
135  * \retval
136  * \sa
137  */
138 extern int com_core_send(int handle, const char *buffer, int size, double timeout);
139
140 /**
141  * @brief
142  * @details
143  * @remarks
144  * @param[in] handle
145  * @param[in] buffer
146  * @param[in] size
147  * @param[in] timeout
148  * @param[in] fd
149  * @return int
150  * @retval
151  * @sa
152  */
153 extern int com_core_send_with_fd(int handle, const char *buffer, int size, double timeout, int fd);
154
155 /**
156  * @brief
157  * @details
158  * @remarks
159  * @param[in] handle
160  * @param[out] buffer
161  * @param[in] size
162  * @param[out] sender_pid
163  * @param[in] timeout
164  * @param[out] fd
165  */
166 extern int com_core_recv_with_fd(int handle, char *buffer, int size, int *sender_pid, double timeout, int *fd);
167
168 #ifdef __cplusplus
169 }
170 #endif
171
172 #endif
173 /* End of a file */