tizen 2.3.1 release
[framework/telephony/libtcore.git] / include / user_request.h
1 /*
2  * libtcore
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 __TCORE_USER_REQUEST_H__
22 #define __TCORE_USER_REQUEST_H__
23
24 __BEGIN_DECLS
25
26 typedef void (*UserRequestFreeHook)(UserRequest *ur);
27 typedef void (*UserRequestResponseHook)(UserRequest *ur,
28                 enum tcore_response_command command,
29                 unsigned int data_len, const void *data, void *user_data);
30
31 UserRequest*  tcore_user_request_new(Communicator *comm, const char *modem_name);
32 void          tcore_user_request_free(UserRequest *ur);
33
34 UserRequest*  tcore_user_request_ref(UserRequest *ur);
35 void          tcore_user_request_unref(UserRequest *ur);
36
37 TReturn       tcore_user_request_set_free_hook(UserRequest *ur,
38                   UserRequestFreeHook free_hook);
39 TReturn       tcore_user_request_set_response_hook(UserRequest *ur,
40                   UserRequestResponseHook resp_hook, void *user_data);
41
42 Communicator* tcore_user_request_ref_communicator(UserRequest *ur);
43 char*         tcore_user_request_get_modem_name(UserRequest *ur);
44
45 TReturn tcore_user_request_set_user_info(UserRequest *ur, void *user_info);
46 void *tcore_user_request_ref_user_info(UserRequest *ur);
47
48 TReturn       tcore_user_request_send_response(UserRequest *ur,
49                   enum tcore_response_command command,
50                   unsigned int data_len, const void *data);
51
52 TReturn       tcore_user_request_set_command(UserRequest *ur,
53                   enum tcore_request_command command);
54
55 enum tcore_request_command
56               tcore_user_request_get_command(UserRequest *ur);
57
58 TReturn       tcore_user_request_set_data(UserRequest *ur,
59                   unsigned int data_len, const void *data);
60 const void*   tcore_user_request_ref_data(UserRequest *ur,
61                   unsigned int *data_len);
62
63 TReturn       tcore_user_request_set_metainfo(UserRequest *ur,
64                   unsigned int metainfo_len, const void *metainfo);
65 const void*   tcore_user_request_ref_metainfo(UserRequest *ur,
66                   unsigned int *metainfo_len);
67
68 __END_DECLS
69
70 #endif