Commit a modified version of Matthieu Patou <mat@matws.net> path on disabling tdb2...
[jelmer/openchange-proposed.git/.git] / libexchange2ical / libexchange2ical.h
1 /*
2    Convert Exchange appointments to ICAL
3
4    OpenChange Project
5
6    Copyright (C) Julien Kerihuel 2008
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 3 of the License, or
11    (at your option) any later version.
12    
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17    
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 */
21
22 #include <libexchange2ical/exchange2ical.h>
23 #ifndef __LIBEXCHANGE2ICAL_H_
24 #define __LIBEXCHANGE2ICAL_H_
25
26 /**
27    \details Retrieve entire exchange calendar as an Icalendar
28
29    This function returns an Icalendar of the entire exchange calendar inside the obj_folder
30
31    \param obj_folder the folder to operate in
32   
33    \return Icalendar on success, otherwise Null
34
35    \note Developers should call ical_component_free() on the returned icalendar after use.
36
37  */
38 icalcomponent * Exchange2Ical(mapi_object_t *obj_folder);
39
40 /**
41    \details Retrieve a range of exchange appointments as an Icalendar
42
43    This function returns an Icalendar of exchange appointments that begin within the specified range.
44
45    \param obj_folder the folder to operate in
46    \param begin a tm that specifies the start date of the range
47    \param end a tm that specifies the end date of the range
48
49    \return Icalendar on success, otherwise Null
50
51    \note Developers should call ical_component_free() on the returned icalendar after use.
52    If no events are within the specified range, an icalendar will be returned without any vevents.
53
54  */
55 icalcomponent * Exchange2IcalRange(mapi_object_t *obj_folder, struct tm *begin, struct tm *end);
56
57
58 /**
59    \details Retrieve a specific exchange appointment as an Icalendar
60
61    This function returns an Icalendar with an appointments that match
62    the specified GlobalObjectId and sequence number.
63
64    \param obj_folder the folder to operate in
65    \param GlobalObjectId the unique GlobalObjectId of the appointment
66    \param Sequence the sequence number of the appointment
67
68    \return Icalendar on success, otherwise Null
69
70    \note Developers should call ical_component_free() on the returned icalendar after use.
71    If no event's GlobalObjectId match the specifid GlobalObjectId, an icalendar will be returned without any vevents.
72
73  */
74 icalcomponent *Exchange2IcalEvent(mapi_object_t *obj_folder, struct GlobalObjectId *GlobalObjectId, uint32_t Sequence);
75
76
77 /**
78    \details Retrieve an exchange appointment and its occurrences as an Icalendar
79
80    This function returns an Icalendar with any appointments that match
81    the specified GlobalObjectId and sequence number.
82    
83    \param obj_folder the folder to operate in
84    \param GlobalObjectId the unique GlobalObjectId of the appointment
85
86    \return Icalendar on success, otherwise Null
87
88    \note Developers should call ical_component_free() on the returned icalendar after use.
89    If no event's GlobalObjectId match the specifid GlobalObjectId, an icalendar will be returned without any vevents.
90
91  */
92 icalcomponent *Exchange2IcalEvents(mapi_object_t *obj_folder, struct GlobalObjectId *GlobalObjectId);
93
94 #endif /* __LIBEXCHANGE2ICAL_H_ */