$darkmode
Libical API Documentation 4.0 STABLE VERSION Visit the v3.0 documentation
icalparameter_cxx.cpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2001, Critical Path
3  * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
4  */
5 
12 #include "icalparameter_cxx.hpp"
13 
14 extern "C" {
15 #include "icalerror_p.h"
16 }
17 
18 #include <string>
19 #include <vector>
20 
21 using namespace LibICal;
22 
24  : imp(icalparameter_new(ICAL_ANY_PARAMETER))
25 {
26 }
27 
29  : imp(icalparameter_clone(v.imp))
30 {
31  if (imp == NULL) {
32  throw icalerrno;
33  }
34 }
35 
37 {
38  if (this == &v) {
39  return *this;
40  }
41 
42  icalparameter_free(imp);
43  imp = NULL;
44 
45  imp = icalparameter_clone(v.imp);
46  if (imp == NULL) {
47  throw icalerrno;
48  }
49 
50  return *this;
51 }
52 
53 void ICalParameter::detach()
54 {
55  imp = NULL;
56 }
57 
59 {
60  icalparameter_free(imp);
61 }
62 
63 ICalParameter::ICalParameter(icalparameter *v)
64  : imp(v)
65 {
66 }
67 
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 ICalParameter::ICalParameter(const icalparameter_kind &kind, const std::string &str)
77  : imp(icalparameter_new_from_value_string(kind, str.c_str()))
78 {
79  if (imp == NULL) {
80  throw icalerrno;
81  }
82 }
83 
84 ICalParameter::ICalParameter(const icalparameter_kind &kind)
85  : imp(icalparameter_new(kind))
86 {
87  if (imp == NULL) {
88  throw icalerrno;
89  }
90 }
91 
92 std::string ICalParameter::as_ical_string()
93 {
94  const char *str = icalparameter_as_ical_string(imp);
95 
96  if (str == NULL) {
97  throw icalerrno;
98  }
99 
100  return str;
101 }
102 
103 bool ICalParameter::is_valid()
104 {
105  if (imp == NULL) {
106  return false;
107  }
108  return icalparameter_isa_parameter(static_cast<void *>(imp));
109 }
110 
111 icalparameter_kind ICalParameter::isa()
112 {
113  return icalparameter_isa(imp);
114 }
115 
116 /* cppcheck-suppress functionStatic */
117 bool ICalParameter::isa_parameter(void *param) //NOLINT(readability-convert-member-functions-to-static)
118 {
119  return icalparameter_isa_parameter(param);
120 }
121 
122 /* Access the name of an X parameter */
123 /* cppcheck-suppress constParameterReference */
124 void ICalParameter::set_xname(ICalParameter &param, const std::string &v)
125 {
126  icalparameter_set_xname(param, v.c_str());
127 }
128 
129 /* cppcheck-suppress constParameterReference */
130 std::string ICalParameter::get_xname(ICalParameter &param)
131 {
132  return static_cast<std::string>(icalparameter_get_xname(param));
133 }
134 
135 /* cppcheck-suppress constParameterReference */
136 void ICalParameter::set_xvalue(ICalParameter &param, const std::string &v)
137 {
138  icalparameter_set_xvalue(param, v.c_str());
139 }
140 
141 /* cppcheck-suppress constParameterReference */
142 std::string ICalParameter::get_xvalue(ICalParameter &param)
143 {
144  return static_cast<std::string>(icalparameter_get_xvalue(param));
145 }
146 
147 /* Convert enumerations */
148 std::string ICalParameter::kind_to_string(const icalparameter_kind &kind)
149 {
150  return static_cast<std::string>(icalparameter_kind_to_string(kind));
151 }
152 
153 icalparameter_kind ICalParameter::string_to_kind(const std::string &str)
154 {
155  return icalparameter_string_to_kind(str.c_str());
156 }
157 
158 /* DELEGATED-FROM */
159 std::vector<std::string> ICalParameter::get_delegatedfrom() const
160 {
161  std::vector<std::string> vals;
162  icalstrarray *c_vals = icalparameter_get_delegatedfrom(imp);
163  if (c_vals != NULL) {
164  for (size_t i = 0; i < icalstrarray_size(c_vals); ++i) {
165  vals.push_back(std::string(icalstrarray_element_at(c_vals, i)));
166  }
167  }
168  return vals;
169 }
170 
171 void ICalParameter::set_delegatedfrom(const std::vector<std::string> &v)
172 {
173  icalstrarray *c_vals = icalstrarray_new(v.size());
174  for (size_t i = 0; i < v.size(); i++) {
175  icalstrarray_append(c_vals, v[i].c_str());
176  }
177  icalparameter_set_delegatedfrom(imp, c_vals);
178 }
179 
180 /* RELATED */
181 icalparameter_related ICalParameter::get_related() const
182 {
183  return icalparameter_get_related(imp);
184 }
185 
186 void ICalParameter::set_related(const icalparameter_related &v)
187 {
188  icalparameter_set_related(imp, v);
189 }
190 
191 /* SENT-BY */
192 std::string ICalParameter::get_sentby() const
193 {
194  return static_cast<std::string>(icalparameter_get_sentby(imp));
195 }
196 
197 void ICalParameter::set_sentby(const std::string &v)
198 {
199  icalparameter_set_sentby(imp, v.c_str());
200 }
201 
202 /* LANGUAGE */
203 std::string ICalParameter::get_language() const
204 {
205  return static_cast<std::string>(icalparameter_get_language(imp));
206 }
207 
208 void ICalParameter::set_language(const std::string &v)
209 {
210  icalparameter_set_language(imp, v.c_str());
211 }
212 
213 /* RELTYPE */
214 icalparameter_reltype ICalParameter::get_reltype() const
215 {
216  return icalparameter_get_reltype(imp);
217 }
218 
219 void ICalParameter::set_reltype(const icalparameter_reltype &v)
220 {
221  icalparameter_set_reltype(imp, v);
222 }
223 
224 /* ENCODING */
225 icalparameter_encoding ICalParameter::get_encoding() const
226 {
227  return icalparameter_get_encoding(imp);
228 }
229 
230 void ICalParameter::set_encoding(const icalparameter_encoding &v)
231 {
232  icalparameter_set_encoding(imp, v);
233 }
234 
235 /* ALTREP */
236 std::string ICalParameter::get_altrep() const
237 {
238  return static_cast<std::string>(icalparameter_get_language(imp));
239 }
240 
241 void ICalParameter::set_altrep(const std::string &v)
242 {
243  icalparameter_set_altrep(imp, v.c_str());
244 }
245 
246 /* FMTTYPE */
247 std::string ICalParameter::get_fmttype() const
248 {
249  return static_cast<std::string>(icalparameter_get_fmttype(imp));
250 }
251 
252 void ICalParameter::set_fmttype(const std::string &v)
253 {
254  icalparameter_set_fmttype(imp, v.c_str());
255 }
256 
257 /* FBTYPE */
258 icalparameter_fbtype ICalParameter::get_fbtype() const
259 {
260  return icalparameter_get_fbtype(imp);
261 }
262 
263 void ICalParameter::set_fbtype(const icalparameter_fbtype &v)
264 {
265  icalparameter_set_fbtype(imp, v);
266 }
267 
268 /* RSVP */
269 icalparameter_rsvp ICalParameter::get_rsvp() const
270 {
271  return icalparameter_get_rsvp(imp);
272 }
273 
274 void ICalParameter::set_rsvp(const icalparameter_rsvp &v)
275 {
276  icalparameter_set_rsvp(imp, v);
277 }
278 
279 /* RANGE */
280 icalparameter_range ICalParameter::get_range() const
281 {
282  return icalparameter_get_range(imp);
283 }
284 
285 void ICalParameter::set_range(const icalparameter_range &v)
286 {
287  icalparameter_set_range(imp, v);
288 }
289 
290 /* DELEGATED-TO */
291 std::vector<std::string> ICalParameter::get_delegatedto() const
292 {
293  std::vector<std::string> vals;
294  icalstrarray *c_vals = icalparameter_get_delegatedto(imp);
295  if (c_vals != NULL) {
296  for (size_t i = 0; i < icalstrarray_size(c_vals); ++i) {
297  vals.push_back(std::string(icalstrarray_element_at(c_vals, i)));
298  }
299  }
300  return vals;
301 }
302 
303 void ICalParameter::set_delegatedto(const std::vector<std::string> &v)
304 {
305  icalstrarray *c_vals = icalstrarray_new(v.size());
306  for (size_t i = 0; i < v.size(); i++) {
307  icalstrarray_append(c_vals, v[i].c_str());
308  }
309  icalparameter_set_delegatedto(imp, c_vals);
310 }
311 
312 /* CN */
313 std::string ICalParameter::get_cn() const
314 {
315  return static_cast<std::string>(icalparameter_get_cn(imp));
316 }
317 
318 void ICalParameter::set_cn(const std::string &v)
319 {
320  icalparameter_set_cn(imp, v.c_str());
321 }
322 
323 /* ROLE */
324 icalparameter_role ICalParameter::get_role() const
325 {
326  return icalparameter_get_role(imp);
327 }
328 
329 void ICalParameter::set_role(const icalparameter_role &v)
330 {
331  icalparameter_set_role(imp, v);
332 }
333 
334 /* X-LIC-COMPARETYPE */
335 icalparameter_xliccomparetype ICalParameter::get_xliccomparetype() const
336 {
337  return icalparameter_get_xliccomparetype(imp);
338 }
339 
340 void ICalParameter::set_xliccomparetype(const icalparameter_xliccomparetype &v)
341 {
342  icalparameter_set_xliccomparetype(imp, v);
343 }
344 
345 /* PARTSTAT */
346 icalparameter_partstat ICalParameter::get_partstat() const
347 {
348  return icalparameter_get_partstat(imp);
349 }
350 
351 void ICalParameter::set_partstat(const icalparameter_partstat &v)
352 {
353  icalparameter_set_partstat(imp, v);
354 }
355 
356 /* X-LIC-ERRORTYPE */
357 icalparameter_xlicerrortype ICalParameter::get_xlicerrortype() const
358 {
359  return icalparameter_get_xlicerrortype(imp);
360 }
361 
362 void ICalParameter::set_xlicerrortype(const icalparameter_xlicerrortype &v)
363 {
364  icalparameter_set_xlicerrortype(imp, v);
365 }
366 
367 /* MEMBER */
368 std::vector<std::string> ICalParameter::get_member() const
369 {
370  std::vector<std::string> vals;
371  icalstrarray *c_vals = icalparameter_get_member(imp);
372  if (c_vals != NULL) {
373  for (size_t i = 0; i < icalstrarray_size(c_vals); ++i) {
374  vals.push_back(std::string(icalstrarray_element_at(c_vals, i)));
375  }
376  }
377  return vals;
378 }
379 
380 void ICalParameter::set_member(const std::vector<std::string> &v)
381 {
382  icalstrarray *c_vals = icalstrarray_new(v.size());
383  for (size_t i = 0; i < v.size(); i++) {
384  icalstrarray_append(c_vals, v[i].c_str());
385  }
386  icalparameter_set_member(imp, c_vals);
387 }
388 
389 /* X */
390 std::string ICalParameter::get_x() const
391 {
392  return static_cast<std::string>(icalparameter_get_x(imp));
393 }
394 
395 void ICalParameter::set_x(const std::string &v)
396 {
397  icalparameter_set_x(imp, v.c_str());
398 }
399 
400 /* CUTYPE */
401 icalparameter_cutype ICalParameter::get_cutype() const
402 {
403  return icalparameter_get_cutype(imp);
404 }
405 
406 void ICalParameter::set_cutype(const icalparameter_cutype &v)
407 {
408  icalparameter_set_cutype(imp, v);
409 }
410 
411 /* TZID */
412 std::string ICalParameter::get_tzid() const
413 {
414  return static_cast<std::string>(icalparameter_get_tzid(imp));
415 }
416 
417 void ICalParameter::set_tzid(const std::string &v)
418 {
419  icalparameter_set_tzid(imp, v.c_str());
420 }
421 
422 /* VALUE */
423 icalparameter_value ICalParameter::get_value() const
424 {
425  return icalparameter_get_value(imp);
426 }
427 
428 void ICalParameter::set_value(const icalparameter_value &v)
429 {
430  icalparameter_set_value(imp, v);
431 }
432 
433 /* DIR */
434 std::string ICalParameter::get_dir() const
435 {
436  return static_cast<std::string>(icalparameter_get_dir(imp));
437 }
438 
439 void ICalParameter::set_dir(const std::string &v)
440 {
441  icalparameter_set_dir(imp, v.c_str());
442 }
icalparameter_kind icalparameter_isa(const icalparameter *parameter)
size_t icalstrarray_size(const icalstrarray *array)
Indicates the count of strings stored in the array.
Definition: icalstrarray.c:24
void icalparameter_free(icalparameter *param)
Frees an icalparameter object.
Definition: icalparameter.c:58
icalparameter * icalparameter_clone(const icalparameter *old)
Creates new icalparameter as a clone of the given one.
Definition: icalparameter.c:86
#define icalstrarray_new(increment_size)
Creates a new icalstrarray object.
Definition: icalstrarray.h:47
const char * icalparameter_kind_to_string(icalparameter_kind kind)
Returns a string representing the given icalparameter_kind.
const char * icalstrarray_element_at(icalstrarray *array, size_t position)
Accesses a string stored in the array.
Definition: icalstrarray.c:32
bool icalparameter_isa_parameter(void *parameter)
void icalparameter_set_xvalue(icalparameter *param, const char *v)
Sets the X-value of param to v.
ICalParameter & operator=(const ICalParameter &)
Definition of C++ Wrapper for icalparameter.c.
char * icalparameter_as_ical_string(icalparameter *param)
Converts icalparameter into a string representation.
const char * icalparameter_get_xvalue(const icalparameter *param)
Returns the X-value of param.
void icalstrarray_append(icalstrarray *array, const char *elem)
Appends a string to the array.
Definition: icalstrarray.c:59
void icalparameter_set_xname(icalparameter *param, const char *v)
Sets the X-name of param to v.
icalparameter * icalparameter_new_from_value_string(icalparameter_kind kind, const char *value)
Creates new icalparameter of a given kind with a given value.
icalparameter_kind icalparameter_string_to_kind(const char *string)
Returns the icalparameter_kind for a given string.
const char * icalparameter_get_xname(const icalparameter *param)
Returns the X-name of param.
#define icalerrno
Access the current icalerrno value.
Definition: icalerror.h:133
icalparameter * icalparameter_new(icalparameter_kind kind)
Creates new icalparameter object.
Definition: icalparameter.c:51
icalparameter * icalparameter_new_from_string(const char *str)
Creates new icalparameter object from string.