4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Ja-young Gu <jygu@samsung.com>
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 #ifndef __TCORE_USER_REQUEST_H__
22 #define __TCORE_USER_REQUEST_H__
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);
31 UserRequest* tcore_user_request_new(Communicator *comm, const char *modem_name);
32 void tcore_user_request_free(UserRequest *ur);
34 UserRequest* tcore_user_request_ref(UserRequest *ur);
35 void tcore_user_request_unref(UserRequest *ur);
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);
42 Communicator* tcore_user_request_ref_communicator(UserRequest *ur);
43 char* tcore_user_request_get_modem_name(UserRequest *ur);
45 TReturn tcore_user_request_set_user_info(UserRequest *ur, void *user_info);
46 void *tcore_user_request_ref_user_info(UserRequest *ur);
48 TReturn tcore_user_request_send_response(UserRequest *ur,
49 enum tcore_response_command command,
50 unsigned int data_len, const void *data);
52 TReturn tcore_user_request_set_command(UserRequest *ur,
53 enum tcore_request_command command);
55 enum tcore_request_command
56 tcore_user_request_get_command(UserRequest *ur);
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);
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);