1 /**
2 * @file icalparameter_cxx.cpp
3 * @author fnguyen (12/10/01)
4 * @brief Implementation of C++ Wrapper for icalparameter.c
5 *
6 * (C) COPYRIGHT 2001, Critical Path
7
8 This library is free software; you can redistribute it and/or modify
9 it under the terms of either:
10
11 The LGPL as published by the Free Software Foundation, version
12 2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html
13
14 Or:
15
16 The Mozilla Public License Version 2.0. You may obtain a copy of
17 the License at https://www.mozilla.org/MPL/
18 */
19
20 #include "icalparameter_cxx.h"
21 using namespace LibICal;
22
ICalParameter()23 ICalParameter::ICalParameter() : imp(icalparameter_new(ICAL_ANY_PARAMETER))
24 {
25 }
26
ICalParameter(const ICalParameter & v)27 ICalParameter::ICalParameter(const ICalParameter &v) : imp(icalparameter_new_clone(v.imp))
28 {
29 if (imp == NULL) {
30 throw icalerrno;
31 }
32 }
33
operator =(const ICalParameter & v)34 ICalParameter &ICalParameter::operator=(const ICalParameter &v)
35 {
36 if (this == &v) {
37 return *this;
38 }
39
40 if (imp != NULL) {
41 icalparameter_free(imp);
42 imp = icalparameter_new_clone(v.imp);
43 if (imp == NULL) {
44 throw icalerrno;
45 }
46 }
47
48 return *this;
49 }
50
detach()51 void ICalParameter::detach()
52 {
53 imp = NULL;
54 }
55
~ICalParameter()56 ICalParameter::~ICalParameter()
57 {
58 if (imp != NULL) {
59 icalparameter_free(imp);
60 }
61 }
62
ICalParameter(icalparameter * v)63 ICalParameter::ICalParameter(icalparameter *v) : imp(v)
64 {
65 }
66
67 /// Create from string of form "PARAMNAME=VALUE"
ICalParameter(const std::string & str)68 ICalParameter::ICalParameter(const std::string &str)
69 : imp(icalparameter_new_from_string(str.c_str()))
70 {
71 if (imp == NULL) {
72 throw icalerrno;
73 }
74 }
75
76 /// Create from just the value, the part after the "="
ICalParameter(const icalparameter_kind & kind,const std::string & str)77 ICalParameter::ICalParameter(const icalparameter_kind &kind, const std::string &str)
78 : imp(icalparameter_new_from_value_string(kind, str.c_str()))
79 {
80 if (imp == NULL) {
81 throw icalerrno;
82 }
83 }
84
ICalParameter(const icalparameter_kind & kind)85 ICalParameter::ICalParameter(const icalparameter_kind &kind) : imp(icalparameter_new(kind))
86 {
87 if (imp == NULL) {
88 throw icalerrno;
89 }
90 }
91
as_ical_string()92 std::string ICalParameter::as_ical_string()
93 {
94 char *str = icalparameter_as_ical_string(imp);
95
96 if (str == NULL) {
97 throw icalerrno;
98 }
99
100 return str;
101 }
102
is_valid()103 bool ICalParameter::is_valid()
104 {
105 if (imp == NULL) {
106 return false;
107 }
108 return (icalparameter_isa_parameter(static_cast<void *>(imp)) != 0);
109 }
110
isa()111 icalparameter_kind ICalParameter::isa()
112 {
113 return icalparameter_isa(imp);
114 }
115
isa_parameter(void * param)116 int ICalParameter::isa_parameter(void *param)
117 {
118 return icalparameter_isa_parameter(param);
119 }
120
121 /* Access the name of an X parameter */
set_xname(ICalParameter & param,const std::string & v)122 void ICalParameter::set_xname(ICalParameter ¶m, const std::string &v)
123 {
124 icalparameter_set_xname(param, v.c_str());
125 }
126
get_xname(ICalParameter & param)127 std::string ICalParameter::get_xname(ICalParameter ¶m)
128 {
129 return static_cast<std::string>(icalparameter_get_xname(param));
130 }
131
set_xvalue(ICalParameter & param,const std::string & v)132 void ICalParameter::set_xvalue(ICalParameter ¶m, const std::string &v)
133 {
134 icalparameter_set_xvalue(param, v.c_str());
135 }
136
get_xvalue(ICalParameter & param)137 std::string ICalParameter::get_xvalue(ICalParameter ¶m)
138 {
139 return static_cast<std::string>(icalparameter_get_xvalue(param));
140 }
141
142 /* Convert enumerations */
kind_to_string(const icalparameter_kind & kind)143 std::string ICalParameter::kind_to_string(const icalparameter_kind &kind)
144 {
145 return static_cast<std::string>(icalparameter_kind_to_string(kind));
146 }
147
string_to_kind(const std::string & str)148 icalparameter_kind ICalParameter::string_to_kind(const std::string &str)
149 {
150 return icalparameter_string_to_kind(str.c_str());
151 }
152
153 /* DELEGATED-FROM */
get_delegatedfrom() const154 std::string ICalParameter::get_delegatedfrom() const
155 {
156 return static_cast<std::string>(icalparameter_get_delegatedfrom(imp));
157 }
158
set_delegatedfrom(const std::string & v)159 void ICalParameter::set_delegatedfrom(const std::string &v)
160 {
161 icalparameter_set_delegatedfrom(imp, v.c_str());
162 }
163
164 /* RELATED */
get_related() const165 icalparameter_related ICalParameter::get_related() const
166 {
167 return icalparameter_get_related(imp);
168 }
169
set_related(const icalparameter_related & v)170 void ICalParameter::set_related(const icalparameter_related &v)
171 {
172 icalparameter_set_related(imp, v);
173 }
174
175 /* SENT-BY */
get_sentby() const176 std::string ICalParameter::get_sentby() const
177 {
178 return static_cast<std::string>(icalparameter_get_sentby(imp));
179 }
180
set_sentby(const std::string & v)181 void ICalParameter::set_sentby(const std::string &v)
182 {
183 icalparameter_set_sentby(imp, v.c_str());
184 }
185
186 /* LANGUAGE */
get_language() const187 std::string ICalParameter::get_language() const
188 {
189 return static_cast<std::string>(icalparameter_get_language(imp));
190 }
191
set_language(const std::string & v)192 void ICalParameter::set_language(const std::string &v)
193 {
194 icalparameter_set_language(imp, v.c_str());
195 }
196
197 /* RELTYPE */
get_reltype() const198 icalparameter_reltype ICalParameter::get_reltype() const
199 {
200 return icalparameter_get_reltype(imp);
201 }
202
set_reltype(const icalparameter_reltype & v)203 void ICalParameter::set_reltype(const icalparameter_reltype &v)
204 {
205 icalparameter_set_reltype(imp, v);
206 }
207
208 /* ENCODING */
get_encoding() const209 icalparameter_encoding ICalParameter::get_encoding() const
210 {
211 return icalparameter_get_encoding(imp);
212 }
213
set_encoding(const icalparameter_encoding & v)214 void ICalParameter::set_encoding(const icalparameter_encoding &v)
215 {
216 icalparameter_set_encoding(imp, v);
217 }
218
219 /* ALTREP */
get_altrep() const220 std::string ICalParameter::get_altrep() const
221 {
222 return static_cast<std::string>(icalparameter_get_language(imp));
223 }
224
set_altrep(const std::string & v)225 void ICalParameter::set_altrep(const std::string &v)
226 {
227 icalparameter_set_altrep(imp, v.c_str());
228 }
229
230 /* FMTTYPE */
get_fmttype() const231 std::string ICalParameter::get_fmttype() const
232 {
233 return static_cast<std::string>(icalparameter_get_fmttype(imp));
234 }
235
set_fmttype(const std::string & v)236 void ICalParameter::set_fmttype(const std::string &v)
237 {
238 icalparameter_set_fmttype(imp, v.c_str());
239 }
240
241 /* FBTYPE */
get_fbtype() const242 icalparameter_fbtype ICalParameter::get_fbtype() const
243 {
244 return icalparameter_get_fbtype(imp);
245 }
246
set_fbtype(const icalparameter_fbtype & v)247 void ICalParameter::set_fbtype(const icalparameter_fbtype &v)
248 {
249 icalparameter_set_fbtype(imp, v);
250 }
251
252 /* RSVP */
get_rsvp() const253 icalparameter_rsvp ICalParameter::get_rsvp() const
254 {
255 return icalparameter_get_rsvp(imp);
256 }
257
set_rsvp(const icalparameter_rsvp & v)258 void ICalParameter::set_rsvp(const icalparameter_rsvp &v)
259 {
260 icalparameter_set_rsvp(imp, v);
261 }
262
263 /* RANGE */
get_range() const264 icalparameter_range ICalParameter::get_range() const
265 {
266 return icalparameter_get_range(imp);
267 }
268
set_range(const icalparameter_range & v)269 void ICalParameter::set_range(const icalparameter_range &v)
270 {
271 icalparameter_set_range(imp, v);
272 }
273
274 /* DELEGATED-TO */
get_delegatedto() const275 std::string ICalParameter::get_delegatedto() const
276 {
277 return static_cast<std::string>(icalparameter_get_delegatedto(imp));
278 }
279
set_delegatedto(const std::string & v)280 void ICalParameter::set_delegatedto(const std::string &v)
281 {
282 icalparameter_set_delegatedto(imp, v.c_str());
283 }
284
285 /* CN */
get_cn() const286 std::string ICalParameter::get_cn() const
287 {
288 return static_cast<std::string>(icalparameter_get_cn(imp));
289 }
290
set_cn(const std::string & v)291 void ICalParameter::set_cn(const std::string &v)
292 {
293 icalparameter_set_cn(imp, v.c_str());
294 }
295
296 /* ROLE */
get_role() const297 icalparameter_role ICalParameter::get_role() const
298 {
299 return icalparameter_get_role(imp);
300 }
301
set_role(const icalparameter_role & v)302 void ICalParameter::set_role(const icalparameter_role &v)
303 {
304 icalparameter_set_role(imp, v);
305 }
306
307 /* X-LIC-COMPARETYPE */
get_xliccomparetype() const308 icalparameter_xliccomparetype ICalParameter::get_xliccomparetype() const
309 {
310 return icalparameter_get_xliccomparetype(imp);
311 }
312
set_xliccomparetype(const icalparameter_xliccomparetype & v)313 void ICalParameter::set_xliccomparetype(const icalparameter_xliccomparetype &v)
314 {
315 icalparameter_set_xliccomparetype(imp, v);
316 }
317
318 /* PARTSTAT */
get_partstat() const319 icalparameter_partstat ICalParameter::get_partstat() const
320 {
321 return icalparameter_get_partstat(imp);
322 }
323
set_partstat(const icalparameter_partstat & v)324 void ICalParameter::set_partstat(const icalparameter_partstat &v)
325 {
326 icalparameter_set_partstat(imp, v);
327 }
328
329 /* X-LIC-ERRORTYPE */
get_xlicerrortype() const330 icalparameter_xlicerrortype ICalParameter::get_xlicerrortype() const
331 {
332 return icalparameter_get_xlicerrortype(imp);
333 }
334
set_xlicerrortype(const icalparameter_xlicerrortype & v)335 void ICalParameter::set_xlicerrortype(const icalparameter_xlicerrortype &v)
336 {
337 icalparameter_set_xlicerrortype(imp, v);
338 }
339
340 /* MEMBER */
get_member() const341 std::string ICalParameter::get_member() const
342 {
343 return static_cast<std::string>(icalparameter_get_member(imp));
344 }
345
set_member(const std::string & v)346 void ICalParameter::set_member(const std::string &v)
347 {
348 icalparameter_set_member(imp, v.c_str());
349 }
350
351 /* X */
get_x() const352 std::string ICalParameter::get_x() const
353 {
354 return static_cast<std::string>(icalparameter_get_x(imp));
355 }
356
set_x(const std::string & v)357 void ICalParameter::set_x(const std::string &v)
358 {
359 icalparameter_set_x(imp, v.c_str());
360 }
361
362 /* CUTYPE */
get_cutype() const363 icalparameter_cutype ICalParameter::get_cutype() const
364 {
365 return icalparameter_get_cutype(imp);
366 }
367
set_cutype(const icalparameter_cutype & v)368 void ICalParameter::set_cutype(const icalparameter_cutype &v)
369 {
370 icalparameter_set_cutype(imp, v);
371 }
372
373 /* TZID */
get_tzid() const374 std::string ICalParameter::get_tzid() const
375 {
376 return static_cast<std::string>(icalparameter_get_tzid(imp));
377 }
378
set_tzid(const std::string & v)379 void ICalParameter::set_tzid(const std::string &v)
380 {
381 icalparameter_set_tzid(imp, v.c_str());
382 }
383
384 /* VALUE */
get_value() const385 icalparameter_value ICalParameter::get_value() const
386 {
387 return icalparameter_get_value(imp);
388 }
389
set_value(const icalparameter_value & v)390 void ICalParameter::set_value(const icalparameter_value &v)
391 {
392 icalparameter_set_value(imp, v);
393 }
394
395 /* DIR */
get_dir() const396 std::string ICalParameter::get_dir() const
397 {
398 return static_cast<std::string>(icalparameter_get_dir(imp));
399 }
400
set_dir(const std::string & v)401 void ICalParameter::set_dir(const std::string &v)
402 {
403 icalparameter_set_dir(imp, v.c_str());
404 }
405