Tizen 2.0 Release
[platform/core/messaging/email-service.git] / email-ipc / email-ipc-api / include / email-ipc-param-list.h
1 /*
2 *  email-service
3 *
4 * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
5 *
6 * Contact: Kyuho Jo <kyuho.jo@samsung.com>, Sunghyun Kwon <sh0701.kwon@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
22
23 #ifndef _IPC_PARAMLIST_H_
24 #define _IPC_PARAMLIST_H_
25
26 #include "email-ipc-param.h"
27 #include "email-types.h"
28
29 typedef enum {
30         eSTREAM_APIID = 0,
31         eSTREAM_RESID,
32         eSTREAM_APPID,
33         eSTREAM_COUNT,
34         eSTREAM_DATA,
35         eSTREAM_MAX
36 }IPC_STREAM_INFO;
37
38 typedef struct {
39         int param_count;
40         emipc_param params[10];
41         unsigned char *byte_stream;
42 } emipc_param_list;
43
44 EXPORT_API emipc_param_list *emipc_create_param_list();
45
46 EXPORT_API bool emipc_destroy_param_list(emipc_param_list *param_list);
47
48 EXPORT_API bool emipc_parse_stream_of_param_list(emipc_param_list *param_list, void *stream_data);
49
50 EXPORT_API unsigned char *emipc_serialize_param_list(emipc_param_list *param_list, int *stream_length);
51
52 EXPORT_API int emipc_sum_param_list_length (emipc_param_list *param_list);
53
54 EXPORT_API bool emipc_add_param_to_param_list(emipc_param_list *param_list, void *data, int len);
55
56 EXPORT_API void emipc_add_dynamic_param_to_param_list(emipc_param_list *param_list, void *data, int len);
57
58 EXPORT_API void *emipc_get_param_of_param_list(emipc_param_list *param_list, int index);
59
60 EXPORT_API int emipc_get_param_len_of_param_list(emipc_param_list *param_list, int index);
61
62 #endif  /* _IPC_PARAMLIST_H_ */
63
64