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 struct tcore_user_info {
32 unsigned int channel_id;
33 unsigned int client_cmd;
38 typedef void (*UserRequestFreeHook)(UserRequest *ur);
39 typedef void (*UserRequestResponseHook)(UserRequest *ur,
40 enum tcore_response_command command,
41 unsigned int data_len, const void *data, void *user_data);
43 UserRequest* tcore_user_request_new(Communicator *comm, const char *modem_name);
44 void tcore_user_request_free(UserRequest *ur);
46 UserRequest* tcore_user_request_ref(UserRequest *ur);
47 void tcore_user_request_unref(UserRequest *ur);
49 TReturn tcore_user_request_set_free_hook(UserRequest *ur,
50 UserRequestFreeHook free_hook);
51 TReturn tcore_user_request_set_response_hook(UserRequest *ur,
52 UserRequestResponseHook resp_hook, void *user_data);
54 Communicator* tcore_user_request_ref_communicator(UserRequest *ur);
55 char* tcore_user_request_get_modem_name(UserRequest *ur);
57 TReturn tcore_user_request_set_user_info(UserRequest *ur,
58 const struct tcore_user_info *ui);
59 const struct tcore_user_info*
60 tcore_user_request_ref_user_info(UserRequest *ur);
62 TReturn tcore_user_request_send_response(UserRequest *ur,
63 enum tcore_response_command command,
64 unsigned int data_len, const void *data);
66 TReturn tcore_user_request_set_command(UserRequest *ur,
67 enum tcore_request_command command);
69 enum tcore_request_command
70 tcore_user_request_get_command(UserRequest *ur);
72 TReturn tcore_user_request_set_data(UserRequest *ur,
73 unsigned int data_len, const void *data);
74 const void* tcore_user_request_ref_data(UserRequest *ur,
75 unsigned int *data_len);
77 TReturn tcore_user_request_set_metainfo(UserRequest *ur,
78 unsigned int metainfo_len, const void *metainfo);
79 const void* tcore_user_request_ref_metainfo(UserRequest *ur,
80 unsigned int *metainfo_len);