Git Init
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / TimeUtil / plugin_config.cpp
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License. 
15  */
16
17
18
19 #include <map>
20 #include <utility>
21 #include <Commons/FunctionDefinition.h>
22 #include <Commons/FunctionDeclaration.h>
23 #include <Commons/Exception.h>
24
25 #include "plugin_config.h"
26
27 #define TIMEUTIL_FEATURE_API "http://tizen.org/api/time"
28 #define TIMEUTIL_FEATURE_API_READ "http://tizen.org/api/time.read"
29 #define TIMEUTIL_FEATURE_API_WRITE "http://tizen.org/api/time.write"
30
31 #define TIMEUTIL_DEVICE_CAP_READ "time.read"
32 #define TIMEUTIL_DEVICE_CAP_WRITE "time.write"
33
34 namespace TizenApis {
35 namespace Tizen1_0 {
36
37 static WrtDeviceApis::Commons::FunctionMapping createTimeUtilFunctions();
38
39 static WrtDeviceApis::Commons::FunctionMapping TimeUtilFunctions =
40     createTimeUtilFunctions();
41
42 DEFINE_FUNCTION_GETTER(TimeUtil, TimeUtilFunctions);
43
44 static WrtDeviceApis::Commons::FunctionMapping createTimeUtilFunctions()
45 {
46     using namespace WrtDeviceApis::Commons;
47
48     /**
49      * Device capabilities
50      */
51     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_TIMEUTIL_READ, TIMEUTIL_DEVICE_CAP_READ);
52     ACE_CREATE_DEVICE_CAP(DEVICE_CAP_TIMEUTIL_WRITE, TIMEUTIL_DEVICE_CAP_WRITE);
53
54     ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
55
56     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_TIMEUTIL_READ);
57     ACE_ADD_DEVICE_CAP(DEVICE_LIST_TIMEUTIL_READ, DEVICE_CAP_TIMEUTIL_READ);
58
59     ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_TIMEUTIL_WRITE);
60     ACE_ADD_DEVICE_CAP(DEVICE_LIST_TIMEUTIL_WRITE, DEVICE_CAP_TIMEUTIL_WRITE);
61
62     /**
63      * API features
64      */
65     ACE_CREATE_FEATURE(FEATURE_TIMEUTIL, TIMEUTIL_FEATURE_API);
66     ACE_CREATE_FEATURE(FEATURE_READ, TIMEUTIL_FEATURE_API_READ);
67     ACE_CREATE_FEATURE(FEATURE_WRITE, TIMEUTIL_FEATURE_API_WRITE);
68
69
70     ACE_CREATE_FEATURE_LIST(TIMEUTIL_FEATURES_TIMEUTIL_READ);
71     ACE_ADD_API_FEATURE(TIMEUTIL_FEATURES_TIMEUTIL_READ, FEATURE_TIMEUTIL);
72     ACE_ADD_API_FEATURE(TIMEUTIL_FEATURES_TIMEUTIL_READ, FEATURE_READ);
73
74     ACE_CREATE_FEATURE_LIST(TIMEUTIL_FEATURES_TIMEUTIL_WRITE);
75     ACE_ADD_API_FEATURE(TIMEUTIL_FEATURES_TIMEUTIL_WRITE, FEATURE_TIMEUTIL);
76     ACE_ADD_API_FEATURE(TIMEUTIL_FEATURES_TIMEUTIL_WRITE, FEATURE_WRITE);
77
78     ACE_CREATE_FEATURE_LIST(TIMEUTIL_FEATURES_TIMEUTIL);
79     ACE_ADD_API_FEATURE(TIMEUTIL_FEATURES_TIMEUTIL, FEATURE_TIMEUTIL);
80
81     ACE_CREATE_FEATURE_LIST(TIMEUTIL_FEATURES_READ);
82     ACE_ADD_API_FEATURE(TIMEUTIL_FEATURES_TIMEUTIL, FEATURE_READ);
83
84     ACE_CREATE_FEATURE_LIST(TIMEUTIL_FEATURES_WRITE);
85     ACE_ADD_API_FEATURE(TIMEUTIL_FEATURES_TIMEUTIL, FEATURE_WRITE);
86
87     /**
88      * Functions
89      */
90
91     FunctionMapping TimeUtilFunctions;
92
93         AceFunction timeutilReadFuncs = ACE_CREATE_FUNCTION(
94             FUNCTION_TIMEUTIL_READ_FUNCTIONS,
95             TIMEUTIL_FUNCTION_API_READ_FUNCS,
96             TIMEUTIL_FEATURES_TIMEUTIL_READ,
97             DEVICE_LIST_TIMEUTIL_READ);
98
99     TimeUtilFunctions.insert(std::make_pair(
100                                TIMEUTIL_FUNCTION_API_READ_FUNCS,
101                                timeutilReadFuncs));
102         
103         AceFunction setCurrentDateTimeFunc = ACE_CREATE_FUNCTION(
104             FUNCTION_SET_CURRENT_DATETIME,
105             TIMEUTIL_FUNCTION_API_SET_CURRENT_DATE_TIME,
106             TIMEUTIL_FEATURES_TIMEUTIL_WRITE,
107             DEVICE_LIST_TIMEUTIL_WRITE);
108
109     TimeUtilFunctions.insert(std::make_pair(
110                                TIMEUTIL_FUNCTION_API_SET_CURRENT_DATE_TIME,
111                                setCurrentDateTimeFunc));
112
113     return TimeUtilFunctions;
114 }
115 } // namespace Tizen1_0
116 } // namespace TizenApis
117
118 #undef TIMEUTIL_FEATURE_API
119 #undef TIMEUTIL_FEATURE_API_READ
120 #undef TIMEUTIL_FEATURE_API_WRITE
121 #undef TIMEUTIL_DEVICE_CAP_READ
122 #undef TIMEUTIL_DEVICE_CAP_WRITE