Tizen 2.1 base
[platform/core/pim/calendar-service.git] / common / cal_view.h
1 /*
2  * Calendar Service
3  *
4  * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19 #ifndef __CALENDAR_SVC_VIEW_H__
20 #define __CALENDAR_SVC_VIEW_H__
21
22 #include "calendar_view.h"
23
24 _CALENDAR_BEGIN_VIEW()
25     _CALENDAR_PROPERTY_INT( event_id )
26     _CALENDAR_PROPERTY_CALTIME( start_time )
27     _CALENDAR_PROPERTY_CALTIME( end_time )
28     _CALENDAR_PROPERTY_STR( summary )
29     _CALENDAR_PROPERTY_STR( location )
30     _CALENDAR_PROPERTY_INT( calendar_book_id )
31     _CALENDAR_PROPERTY_STR( description )
32     _CALENDAR_PROPERTY_INT( busy_status )
33     _CALENDAR_PROPERTY_INT( event_status )
34     _CALENDAR_PROPERTY_INT( priority )
35     _CALENDAR_PROPERTY_INT( sensitivity )
36     _CALENDAR_PROPERTY_INT( has_rrule )
37     _CALENDAR_PROPERTY_DOUBLE( latitude )
38     _CALENDAR_PROPERTY_DOUBLE( longitude )
39     _CALENDAR_PROPERTY_INT( has_alarm )
40     _CALENDAR_PROPERTY_INT( original_event_id )
41     _CALENDAR_PROPERTY_LLI( last_modified_time )
42 _CALENDAR_END_VIEW( _calendar_instance_normal )    // read_only
43
44 _CALENDAR_BEGIN_VIEW()
45     _CALENDAR_PROPERTY_INT( event_id )
46     _CALENDAR_PROPERTY_CALTIME( start_time )
47     _CALENDAR_PROPERTY_CALTIME( end_time )
48     _CALENDAR_PROPERTY_STR( summary )
49     _CALENDAR_PROPERTY_STR( location )
50     _CALENDAR_PROPERTY_INT( calendar_book_id )
51     _CALENDAR_PROPERTY_STR( description )
52     _CALENDAR_PROPERTY_INT( busy_status )
53     _CALENDAR_PROPERTY_INT( event_status )
54     _CALENDAR_PROPERTY_INT( priority )
55     _CALENDAR_PROPERTY_INT( sensitivity )
56     _CALENDAR_PROPERTY_INT( has_rrule )
57     _CALENDAR_PROPERTY_DOUBLE( latitude )
58     _CALENDAR_PROPERTY_DOUBLE( longitude )
59     _CALENDAR_PROPERTY_INT( has_alarm )
60     _CALENDAR_PROPERTY_INT( original_event_id )
61     _CALENDAR_PROPERTY_LLI( last_modified_time )
62 _CALENDAR_END_VIEW( _calendar_instance_allday )    // read_only
63
64 // db record view // get, get_list, insert, update, delete, filter
65 #define CALENDAR_VIEW_CALENDAR              "tizen.calendar_view.calendar"
66 #define CALENDAR_VIEW_EVENT                 "tizen.calendar_view.event"
67 #define CALENDAR_VIEW_TODO                  "tizen.calendar_view.todo"
68 #define CALENDAR_VIEW_TIMEZONE              "tizen.calendar_view.timezone"
69 // child view
70 #define CALENDAR_VIEW_ATTENDEE              "tizen.calendar_view.attendee"
71 #define CALENDAR_VIEW_ALARM                 "tizen.calendar_view.alarm"
72
73 // logical view  // get_list, filter
74 #define CALENDAR_VIEW_INSTANCE_NORMAL       "tizen.calendar_view.instance_normal"
75 #define CALENDAR_VIEW_INSTANCE_ALLDAY       "tizen.calendar_view.instance_allday"
76
77 // updated info  // get_list
78 #define CALENDAR_VIEW_UPDATED_INFO          "tizen.calendar_view.updated_info"
79
80 // extended_table
81 #define CALENDAR_VIEW_EXTENDED              "tizen,calendar_view.extended_property"
82
83 // only for query (filter)
84 #define CALENDAR_VIEW_EVENT_CALENDAR             "tizen.calendar_view.event/calendar"
85 #define CALENDAR_VIEW_TODO_CALENDAR             "tizen.calendar_view.todo/calendar"
86 #define CALENDAR_VIEW_EVENT_CALENDAR_ATTENDEE    "tizen.calendar_view.event/calendar/attendee"
87 #define CALENDAR_VIEW_INSTANCE_NORMAL_CALENDAR   "tizen.calendar_view.instance_normal/calendar"
88 #define CALENDAR_VIEW_INSTANCE_ALLDAY_CALENDAR   "tizen.calendar_view.instance_allday/calendar"
89
90 // for type check         // data_type mask 0x000FF000
91 #define CAL_PROPERTY_DATA_TYPE_MASK             0x000FF000
92 #define CAL_PROPERTY_DATA_TYPE_INT              0x00001000
93 #define CAL_PROPERTY_DATA_TYPE_STR              0x00002000
94 #define CAL_PROPERTY_DATA_TYPE_DOUBLE           0x00003000
95 #define CAL_PROPERTY_DATA_TYPE_LLI              0x00004000
96 #define CAL_PROPERTY_DATA_TYPE_CALTIME          0x00005000
97 #define CAL_PROPERTY_DATA_TYPE_REC              0x00006000
98 #define CAL_PROPERTY_CHECK_DATA_TYPE(property_id,data_type) \
99     ((property_id&CAL_PROPERTY_DATA_TYPE_MASK) == data_type ? true : false)
100 // for property                             //  0xFF000000
101 #define CAL_PROPERTY_MASK                       0xFF000000
102 #define CAL_PROPERTY_CALENDAR                   0x01000000
103 #define CAL_PROPERTY_EVENT                      0x02000000
104 #define CAL_PROPERTY_TODO                       0x03000000
105 #define CAL_PROPERTY_TIMEZONE                   0x04000000
106 #define CAL_PROPERTY_ATTENDEE                   0x05000000
107 #define CAL_PROPERTY_ALARM                      0x06000000
108 #define CAL_PROPERTY_INSTANCE_NORMAL            0x07000000
109 #define CAL_PROPERTY_INSTANCE_ALLDAY            0x08000000
110 #define CAL_PROPERTY_UPDATED_INFO               0x09000000
111 #define CAL_PROPERTY_EXTENDED                   0x0A000000
112 #define CAL_PROPERTY_CHECK(property_id,data_type) \
113     ((property_id&CAL_PROPERTY_MASK) == data_type ? true : false)
114
115 #define CAL_PROPERTY_FLAGS_MASK                 0x00F00000
116 #define CAL_PROPERTY_FLAGS_FILTER               0x00100000
117 #define CAL_PROPERTY_FLAGS_PROJECTION           0x00200000
118 #define CAL_PROPERTY_FLAGS_READ_ONLY            0x00300000
119 #define CAL_PROPERTY_CHECK_FLAGS(property_id,data_type) \
120     ((property_id&CAL_PROPERTY_FLAGS_MASK) == data_type ? true : false)
121
122 typedef enum {
123         CAL_PROPERTY_CALENDAR_ID                = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY),
124         CAL_PROPERTY_CALENDAR_UID               = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +1,
125         CAL_PROPERTY_CALENDAR_NAME              = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +2,
126         CAL_PROPERTY_CALENDAR_DESCRIPTION       = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +3,
127         CAL_PROPERTY_CALENDAR_COLOR             = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +4,
128         CAL_PROPERTY_CALENDAR_LOCATION          = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +5,
129         CAL_PROPERTY_CALENDAR_VISIBILITY        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_INT) +6,
130         CAL_PROPERTY_CALENDAR_SYNC_EVENT        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_INT) +7,
131         CAL_PROPERTY_CALENDAR_IS_DELETED        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_INT) +8,
132         CAL_PROPERTY_CALENDAR_ACCOUNT_ID        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_INT) +9,
133         CAL_PROPERTY_CALENDAR_STORE_TYPE        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_INT) +10,
134         CAL_PROPERTY_CALENDAR_SYNC_DATA1        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +11,
135         CAL_PROPERTY_CALENDAR_SYNC_DATA2        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +12,
136         CAL_PROPERTY_CALENDAR_SYNC_DATA3        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +13,
137         CAL_PROPERTY_CALENDAR_SYNC_DATA4        = (CAL_PROPERTY_CALENDAR|CAL_PROPERTY_DATA_TYPE_STR) +14,
138
139         CAL_PROPERTY_EVENT_ID                   = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY),
140         CAL_PROPERTY_EVENT_CALENDAR_ID          = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +1,
141         CAL_PROPERTY_EVENT_SUMMARY              = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +2,
142         CAL_PROPERTY_EVENT_DESCRIPTION          = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +3,
143         CAL_PROPERTY_EVENT_LOCATION             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +4,
144         CAL_PROPERTY_EVENT_CATEGORIES           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +5,
145         CAL_PROPERTY_EVENT_EXDATE               = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +6,
146         CAL_PROPERTY_EVENT_EVENT_STATUS         = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +7,
147         CAL_PROPERTY_EVENT_PRIORITY             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +8,
148         CAL_PROPERTY_EVENT_TIMEZONE             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +9,
149         CAL_PROPERTY_EVENT_CONTACT_ID           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +10,
150         CAL_PROPERTY_EVENT_BUSY_STATUS          = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +11,
151         CAL_PROPERTY_EVENT_SENSITIVITY          = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +12,
152         CAL_PROPERTY_EVENT_UID                  = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +13,
153         CAL_PROPERTY_EVENT_ORGANIZER_NAME       = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +14,
154         CAL_PROPERTY_EVENT_ORGANIZER_EMAIL      = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +15,
155         CAL_PROPERTY_EVENT_MEETING_STATUS       = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +16,
156         CAL_PROPERTY_EVENT_ORIGINAL_EVENT_ID    = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +17,
157         CAL_PROPERTY_EVENT_LATITUDE             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_DOUBLE) +18,
158         CAL_PROPERTY_EVENT_LONGITUDE            = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_DOUBLE) +19,
159         CAL_PROPERTY_EVENT_EMAIL_ID             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +20,
160         CAL_PROPERTY_EVENT_CREATED_TIME         = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_LLI) +21,
161         CAL_PROPERTY_EVENT_LAST_MODIFIED_TIME   = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_LLI) +22,
162         CAL_PROPERTY_EVENT_IS_DELETED           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY) +23,
163         CAL_PROPERTY_EVENT_FREQ                 = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +24,
164         CAL_PROPERTY_EVENT_RANGE_TYPE           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +25,
165         CAL_PROPERTY_EVENT_UNTIL                = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_CALTIME) +26,
166         CAL_PROPERTY_EVENT_COUNT                = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +27,
167         CAL_PROPERTY_EVENT_INTERVAL             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +28,
168         CAL_PROPERTY_EVENT_BYSECOND             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +29,
169         CAL_PROPERTY_EVENT_BYMINUTE             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +30,
170         CAL_PROPERTY_EVENT_BYHOUR               = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +31,
171         CAL_PROPERTY_EVENT_BYDAY                = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +32,
172         CAL_PROPERTY_EVENT_BYMONTHDAY           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +33,
173         CAL_PROPERTY_EVENT_BYYEARDAY            = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +34,
174         CAL_PROPERTY_EVENT_BYWEEKNO             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +35,
175         CAL_PROPERTY_EVENT_BYMONTH              = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +36,
176         CAL_PROPERTY_EVENT_BYSETPOS             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +37,
177         CAL_PROPERTY_EVENT_WKST                 = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +38,
178         CAL_PROPERTY_EVENT_RECURRENCE_ID        = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +39,
179         CAL_PROPERTY_EVENT_RDATE                = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +40,
180         CAL_PROPERTY_EVENT_HAS_ATTENDEE         = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY) +41,
181         CAL_PROPERTY_EVENT_HAS_ALARM            = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY) +42,
182         CAL_PROPERTY_EVENT_SYNC_DATA1           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +43,
183         CAL_PROPERTY_EVENT_SYNC_DATA2           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +44,
184         CAL_PROPERTY_EVENT_SYNC_DATA3           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +45,
185         CAL_PROPERTY_EVENT_SYNC_DATA4           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +46,
186         CAL_PROPERTY_EVENT_START                = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_CALTIME) +47,
187         CAL_PROPERTY_EVENT_END                  = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_CALTIME) +48,
188         CAL_PROPERTY_EVENT_CALENDAR_ALARM       = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_REC) +49,
189         CAL_PROPERTY_EVENT_CALENDAR_ATTENDEE    = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_REC) +50,
190     CAL_PROPERTY_EVENT_CALENDAR_SYSTEM_TYPE = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT) +51,
191     CAL_PROPERTY_EVENT_START_TZID           = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +52,
192     CAL_PROPERTY_EVENT_END_TZID             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_STR) +53,
193     CAL_PROPERTY_EVENT_EXCEPTION            = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_REC) +54,
194     CAL_PROPERTY_EVENT_EXTENDED             = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_REC) +55,
195     CAL_PROPERTY_EVENT_IS_ALLDAY            = (CAL_PROPERTY_EVENT|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY) +56,
196
197         CAL_PROPERTY_TODO_ID                    =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY),
198         CAL_PROPERTY_TODO_CALENDAR_ID           =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +1,
199         CAL_PROPERTY_TODO_SUMMARY               =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +2,
200         CAL_PROPERTY_TODO_DESCRIPTION           =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +3,
201         CAL_PROPERTY_TODO_LOCATION              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +4,
202         CAL_PROPERTY_TODO_CATEGORIES            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +5,
203         CAL_PROPERTY_TODO_TODO_STATUS           =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +6,
204         CAL_PROPERTY_TODO_PRIORITY              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +7,
205         CAL_PROPERTY_TODO_SENSITIVITY           =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +8,
206         CAL_PROPERTY_TODO_UID                   =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +9,
207         CAL_PROPERTY_TODO_LATITUDE              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_DOUBLE) +10,
208         CAL_PROPERTY_TODO_LONGITUDE             =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_DOUBLE) +11,
209         CAL_PROPERTY_TODO_PROGRESS              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +12,
210         CAL_PROPERTY_TODO_CREATED_TIME          =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_LLI) +13,
211         CAL_PROPERTY_TODO_LAST_MODIFIED_TIME    =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_LLI) +14,
212         CAL_PROPERTY_TODO_COMPLETED_TIME        =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_LLI) +15,
213         CAL_PROPERTY_TODO_IS_DELETED            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY) +16,
214         CAL_PROPERTY_TODO_FREQ                  =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +17,
215         CAL_PROPERTY_TODO_RANGE_TYPE            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +18,
216         CAL_PROPERTY_TODO_UNTIL                 =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_CALTIME) +19,
217         CAL_PROPERTY_TODO_COUNT                 =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +20,
218         CAL_PROPERTY_TODO_INTERVAL              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +21,
219         CAL_PROPERTY_TODO_BYSECOND              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +22,
220         CAL_PROPERTY_TODO_BYMINUTE              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +23,
221         CAL_PROPERTY_TODO_BYHOUR                =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +24,
222         CAL_PROPERTY_TODO_BYDAY                 =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +25,
223         CAL_PROPERTY_TODO_BYMONTHDAY            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +26,
224         CAL_PROPERTY_TODO_BYYEARDAY             =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +27,
225         CAL_PROPERTY_TODO_BYWEEKNO              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +28,
226         CAL_PROPERTY_TODO_BYMONTH               =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +29,
227         CAL_PROPERTY_TODO_BYSETPOS              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +30,
228         CAL_PROPERTY_TODO_WKST                  =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT) +31,
229         CAL_PROPERTY_TODO_HAS_ALARM             =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY) +32,
230         CAL_PROPERTY_TODO_SYNC_DATA1            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +33,
231         CAL_PROPERTY_TODO_SYNC_DATA2            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +34,
232         CAL_PROPERTY_TODO_SYNC_DATA3            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +35,
233         CAL_PROPERTY_TODO_SYNC_DATA4            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +36,
234         CAL_PROPERTY_TODO_START                 =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_CALTIME) +37,
235         CAL_PROPERTY_TODO_DUE                   =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_CALTIME) +38,
236         CAL_PROPERTY_TODO_CALENDAR_ALARM        =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_REC) +39,
237     CAL_PROPERTY_TODO_START_TZID            =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +40,
238     CAL_PROPERTY_TODO_DUE_TZID              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +41,
239     CAL_PROPERTY_TODO_ORGANIZER_NAME        =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +42,
240     CAL_PROPERTY_TODO_ORGANIZER_EMAIL       =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_STR) +43,
241     CAL_PROPERTY_TODO_HAS_ATTENDEE          =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY) +44,
242     CAL_PROPERTY_TODO_CALENDAR_ATTENDEE     =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_REC) +45,
243     CAL_PROPERTY_TODO_EXTENDED              =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_REC) +46,
244     CAL_PROPERTY_TODO_IS_ALLDAY             =(CAL_PROPERTY_TODO|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY) +47,
245
246         CAL_PROPERTY_TIMEZONE_ID                                                                =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY),
247         CAL_PROPERTY_TIMEZONE_TZ_OFFSET_FROM_GMT                =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+1,
248         CAL_PROPERTY_TIMEZONE_STANDARD_NAME                     =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_STR)+2,
249         CAL_PROPERTY_TIMEZONE_STD_START_MONTH                   =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+3,
250         CAL_PROPERTY_TIMEZONE_STD_START_POSITION_OF_WEEK        =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+4,
251         CAL_PROPERTY_TIMEZONE_STD_START_DAY                     =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+5,
252         CAL_PROPERTY_TIMEZONE_STD_START_HOUR                    =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+6,
253         CAL_PROPERTY_TIMEZONE_STANDARD_BIAS                     =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+7,
254         CAL_PROPERTY_TIMEZONE_DAY_LIGHT_NAME                    =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_STR)+8,
255         CAL_PROPERTY_TIMEZONE_DAY_LIGHT_START_MONTH             =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+9,
256         CAL_PROPERTY_TIMEZONE_DAY_LIGHT_START_POSITION_OF_WEEK  =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+10,
257         CAL_PROPERTY_TIMEZONE_DAY_LIGHT_START_DAY               =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+11,
258         CAL_PROPERTY_TIMEZONE_DAY_LIGHT_START_HOUR              =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+12,
259         CAL_PROPERTY_TIMEZONE_DAY_LIGHT_BIAS                    =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+13,
260         CAL_PROPERTY_TIMEZONE_CALENDAR_ID                       =(CAL_PROPERTY_TIMEZONE|CAL_PROPERTY_DATA_TYPE_INT)+14,
261
262
263         CAL_PROPERTY_ATTENDEE_NUMBER            =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_STR),
264         CAL_PROPERTY_ATTENDEE_TYPE              =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_INT)+1,
265         CAL_PROPERTY_ATTENDEE_CT_INDEX          =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_INT)+2,
266         CAL_PROPERTY_ATTENDEE_UID               =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_STR)+3,
267         CAL_PROPERTY_ATTENDEE_GROUP             =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_STR)+4,
268         CAL_PROPERTY_ATTENDEE_EMAIL             =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_STR)+5,
269         CAL_PROPERTY_ATTENDEE_ROLE              =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_INT)+6,
270         CAL_PROPERTY_ATTENDEE_STATUS            =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_INT)+7,
271         CAL_PROPERTY_ATTENDEE_RSVP              =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_INT)+8,
272         CAL_PROPERTY_ATTENDEE_DELEGATE_URI      =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_STR)+9,
273         CAL_PROPERTY_ATTENDEE_DELEGATOR_URI     =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_STR)+10,
274         CAL_PROPERTY_ATTENDEE_NAME              =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_STR)+11,
275         CAL_PROPERTY_ATTENDEE_EVENT_ID          =(CAL_PROPERTY_ATTENDEE|CAL_PROPERTY_DATA_TYPE_INT)+12,
276
277         CAL_PROPERTY_ALARM_TYPE                 =(CAL_PROPERTY_ALARM|CAL_PROPERTY_DATA_TYPE_INT),
278         CAL_PROPERTY_ALARM_TIME                 =(CAL_PROPERTY_ALARM|CAL_PROPERTY_DATA_TYPE_LLI)+1,
279         CAL_PROPERTY_ALARM_TICK                 =(CAL_PROPERTY_ALARM|CAL_PROPERTY_DATA_TYPE_INT)+2,
280         CAL_PROPERTY_ALARM_TICK_UNIT            =(CAL_PROPERTY_ALARM|CAL_PROPERTY_DATA_TYPE_INT)+3,
281         CAL_PROPERTY_ALARM_TONE                 =(CAL_PROPERTY_ALARM|CAL_PROPERTY_DATA_TYPE_STR)+4,
282         CAL_PROPERTY_ALARM_DESCRIPTION          =(CAL_PROPERTY_ALARM|CAL_PROPERTY_DATA_TYPE_STR)+5,
283         CAL_PROPERTY_ALARM_ID                   =(CAL_PROPERTY_ALARM|CAL_PROPERTY_DATA_TYPE_INT)+6,
284         CAL_PROPERTY_ALARM_EVENT_TODO_ID        =(CAL_PROPERTY_ALARM|CAL_PROPERTY_DATA_TYPE_INT)+7,
285
286     CAL_PROPERTY_INSTANCE_NORMAL_EVENT_ID       =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT),
287         CAL_PROPERTY_INSTANCE_NORMAL_START          =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_CALTIME) +1,
288         CAL_PROPERTY_INSTANCE_NORMAL_END            =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_CALTIME) +2,
289         CAL_PROPERTY_INSTANCE_NORMAL_SUMMARY        =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_STR)+3,
290         CAL_PROPERTY_INSTANCE_NORMAL_LOCATION       =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_STR)+4,
291         CAL_PROPERTY_INSTANCE_NORMAL_CALENDAR_ID    =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT)+5,
292         CAL_PROPERTY_INSTANCE_NORMAL_DESCRIPTION    =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_STR)+6,
293         CAL_PROPERTY_INSTANCE_NORMAL_BUSY_STATUS    =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT)+7,
294         CAL_PROPERTY_INSTANCE_NORMAL_EVENT_STATUS   =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT)+8,
295         CAL_PROPERTY_INSTANCE_NORMAL_PRIORITY       =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT)+9,
296         CAL_PROPERTY_INSTANCE_NORMAL_SENSITIVITY    =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT)+10,
297         CAL_PROPERTY_INSTANCE_NORMAL_HAS_RRULE      =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT)+11,
298         CAL_PROPERTY_INSTANCE_NORMAL_LATITUDE       =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_DOUBLE)+12,
299         CAL_PROPERTY_INSTANCE_NORMAL_LONGITUDE      =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_DOUBLE)+13,
300         CAL_PROPERTY_INSTANCE_NORMAL_HAS_ALARM      =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT)+14,
301         CAL_PROPERTY_INSTANCE_NORMAL_ORIGINAL_EVENT_ID  =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT)+15,
302         CAL_PROPERTY_INSTANCE_NORMAL_LAST_MODIFIED_TIME =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_LLI)+16,
303
304     CAL_PROPERTY_INSTANCE_ALLDAY_EVENT_ID       =(CAL_PROPERTY_INSTANCE_NORMAL|CAL_PROPERTY_DATA_TYPE_INT),
305         CAL_PROPERTY_INSTANCE_ALLDAY_START          =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_CALTIME) +1,
306     CAL_PROPERTY_INSTANCE_ALLDAY_END            =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_CALTIME) +2,
307         CAL_PROPERTY_INSTANCE_ALLDAY_SUMMARY        =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_STR)+3,
308         CAL_PROPERTY_INSTANCE_ALLDAY_LOCATION       =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_STR)+4,
309         CAL_PROPERTY_INSTANCE_ALLDAY_CALENDAR_ID    =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_INT)+5,
310         CAL_PROPERTY_INSTANCE_ALLDAY_DESCRIPTION    =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_STR)+6,
311         CAL_PROPERTY_INSTANCE_ALLDAY_BUSY_STATUS    =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_INT)+7,
312         CAL_PROPERTY_INSTANCE_ALLDAY_EVENT_STATUS   =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_INT)+8,
313         CAL_PROPERTY_INSTANCE_ALLDAY_PRIORITY       =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_INT)+9,
314         CAL_PROPERTY_INSTANCE_ALLDAY_SENSITIVITY    =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_INT)+10,
315         CAL_PROPERTY_INSTANCE_ALLDAY_HAS_RRULE      =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_INT)+11,
316         CAL_PROPERTY_INSTANCE_ALLDAY_LATITUDE       =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_DOUBLE)+12,
317         CAL_PROPERTY_INSTANCE_ALLDAY_LONGITUDE      =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_DOUBLE)+13,
318         CAL_PROPERTY_INSTANCE_ALLDAY_HAS_ALARM      =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_INT)+14,
319         CAL_PROPERTY_INSTANCE_ALLDAY_ORIGINAL_EVENT_ID  =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_INT)+15,
320         CAL_PROPERTY_INSTANCE_ALLDAY_LAST_MODIFIED_TIME =(CAL_PROPERTY_INSTANCE_ALLDAY|CAL_PROPERTY_DATA_TYPE_LLI)+16,
321
322         CAL_PROPERTY_UPDATED_INFO_ID                =(CAL_PROPERTY_UPDATED_INFO|CAL_PROPERTY_DATA_TYPE_INT),
323         CAL_PROPERTY_UPDATED_INFO_CALENDAR_ID       =(CAL_PROPERTY_UPDATED_INFO|CAL_PROPERTY_DATA_TYPE_INT)+1,
324         CAL_PROPERTY_UPDATED_INFO_TYPE              =(CAL_PROPERTY_UPDATED_INFO|CAL_PROPERTY_DATA_TYPE_INT)+2,
325         CAL_PROPERTY_UPDATED_INFO_VERSION           =(CAL_PROPERTY_UPDATED_INFO|CAL_PROPERTY_DATA_TYPE_INT)+3,
326
327         CAL_PROPERTY_EXTENDED_ID                    =(CAL_PROPERTY_EXTENDED|CAL_PROPERTY_DATA_TYPE_INT|CAL_PROPERTY_FLAGS_READ_ONLY),
328         CAL_PROPERTY_EXTENDED_RECORD_ID             =(CAL_PROPERTY_EXTENDED|CAL_PROPERTY_DATA_TYPE_INT)+1,
329         CAL_PROPERTY_EXTENDED_RECORD_TYPE           =(CAL_PROPERTY_EXTENDED|CAL_PROPERTY_DATA_TYPE_INT)+2,
330         CAL_PROPERTY_EXTENDED_KEY                   =(CAL_PROPERTY_EXTENDED|CAL_PROPERTY_DATA_TYPE_STR)+3,
331         CAL_PROPERTY_EXTENDED_VALUE                 =(CAL_PROPERTY_EXTENDED|CAL_PROPERTY_DATA_TYPE_STR)+4,
332
333 } cal_property_ids_e;
334
335 void _cal_view_initialize(void);
336 cal_record_type_e _cal_view_get_type(const char *view_uri);
337 void _cal_view_finalize(void);
338
339 const cal_property_info_s* _cal_view_get_property_info(const char *view_uri, int *count);
340
341 const char* _cal_view_get_uri(const char *view_uri);
342
343 #endif /* __CALENDAR_SVC_VIEW_H__ */