Update source from tizen 2.3
[platform/core/base/bundle.git] / src / keyval_type.c
1 /*
2  * bundle
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>,
7  * Jaeho Lee <jaeho81.lee@samsung.com>
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  */
22
23
24 #include "keyval_type.h"
25 #include "bundle_log.h"
26 #include <stddef.h>
27
28 void
29 keyval_type_init(void)
30 {
31         static int is_done;
32
33         if (is_done)
34                 return;
35
36         is_done = 1;
37 }
38
39 int
40 keyval_type_is_array(int type)
41 {
42         if (type & BUNDLE_TYPE_ARRAY)
43                 return 1;
44         return 0;
45 }
46
47 int
48 keyval_type_is_measurable(int type)
49 {
50         if (type & BUNDLE_TYPE_MEASURABLE)
51                 return 1;
52         return 0;
53 }
54
55 keyval_type_measure_size_func_t
56 keyval_type_get_measure_size_func(int type)
57 {
58         switch (type) {
59         case BUNDLE_TYPE_STR:
60         case BUNDLE_TYPE_STR_ARRAY:
61                 return keyval_type_measure_size_str;
62         default:
63                 return NULL;
64         }
65         return NULL;
66 }
67
68 size_t
69 keyval_type_measure_size_str(void *val)
70 {
71         if (!val)
72                 return 0;
73         return strlen((char *)val) + 1;
74 }
75