upload tizen1.0 source
[framework/system/sync-agent.git] / framework / include / EngineController / param_spec_internal.h
1 /*
2  * sync-agent-framework
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: JuHak Park <juhaki.park@samsung.com>,
7  *          JuneHyuk Lee <junhyuk7.lee@samsung.com>,
8  *          SunBong Ha <sunbong.ha@samsung.com>
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  */
23
24
25
26
27 /*
28  * For any sort of issue you concern as to this software,
29  * you may use following point of contact.
30  * All resources contributed on this software
31  * are orinigally written by S-Core Inc., a member of Samsung Group.
32  *
33  * Wook Choi <wook.choi@samsung.com>
34  */
35
36 #ifndef PARAM_SPEC_INTERNAL_H_
37 #define PARAM_SPEC_INTERNAL_H_
38
39 #include "param_value.h"
40
41 typedef ec_boolean(*char_validate_func) (ec_int8 value, ec_int8 minimum, ec_int8 maximum);
42 typedef ec_boolean(*uchar_validate_func) (ec_uint8 value, ec_uint8 minimum, ec_uint8 maximum);
43 typedef ec_boolean(*int_validate_func) (ec_int value, ec_int minimum, ec_int maximum);
44 typedef ec_boolean(*uint_validate_func) (ec_uint value, ec_uint minimum, ec_uint maximum);
45 typedef ec_boolean(*float_validate_func) (ec_float value, ec_float minimum, ec_float maximum);
46 typedef ec_boolean(*double_validate_func) (ec_double value, ec_double minimum, ec_double maximum);
47
48 typedef struct _param_spec_char_validate param_spec_char_validate;
49 typedef struct _param_spec_uchar_validate param_spec_uchar_validate;
50 typedef struct _param_spec_int_validate param_spec_int_validate;
51 typedef struct _param_spec_uint_validate param_spec_uint_validate;
52 typedef struct _param_spec_float_validate param_spec_float_validate;
53 typedef struct _param_spec_double_validate param_spec_double_validate;
54
55 struct _param_spec_char_validate {
56         ec_int8 minimum;
57         ec_int8 maximum;
58         char_validate_func valid_func;
59 };
60
61 struct _param_spec_uchar_validate {
62         ec_uint8 minimum;
63         ec_uint8 maximum;
64         uchar_validate_func valid_func;
65 };
66
67 struct _param_spec_int_validate {
68         ec_int minimum;
69         ec_int maximum;
70         int_validate_func valid_func;
71 };
72
73 struct _param_spec_uint_validate {
74         ec_uint minimum;
75         ec_uint maximum;
76         uint_validate_func valid_func;
77 };
78
79 struct _param_spec_float_validate {
80         ec_float minimum;
81         ec_float maximum;
82         float_validate_func valid_func;
83 };
84
85 struct _param_spec_double_validate {
86         ec_double minimum;
87         ec_double maximum;
88         double_validate_func valid_func;
89 };
90
91 struct _param_spec_struct_validate {
92
93 };
94
95 typedef union {
96         param_spec_char_validate *char_validate;
97         param_spec_uchar_validate *uchar_validate;
98         param_spec_int_validate *int_validate;
99         param_spec_uint_validate *uint_validate;
100         param_spec_float_validate *float_validate;
101         param_spec_double_validate *double_validate;
102         validate_struct_func_callback struct_validate_func;
103 } private_validate;
104
105 struct _param_spec {
106         ec_int ref_count;
107         ECValueType value_type;
108         ec_char *name;
109         ECParamFlags flags;
110
111         param_value_t default_value;
112         private_validate input_validate;
113         private_validate output_validate;
114
115         copy_struct_func_callback copy_struct_func;
116         free_struct_func_callback free_struct_func;
117 };
118
119 inline ec_boolean is_input_flag_on(ECParamFlags flags);
120 inline ec_boolean is_output_flag_on(ECParamFlags flags);
121 inline ec_boolean is_input_validate_on_flag_on(ECParamFlags flags);
122 inline ec_boolean is_output_validate_on_flag_on(ECParamFlags flags);
123 inline ec_boolean is_input_default_value_on_flag_on(ECParamFlags flags);
124
125 #endif /* PARAM_SPEC_INTERNAL_H_ */