Libical API Documentation 4.0 UNRELEASED Go to the stable 3.0 documentation
Loading...
Searching...
No Matches
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
11
12#include "icalparameter_cxx.hpp"
13
14extern "C" {
15#include "icalerror_p.h"
16}
17
18#include <string>
19#include <vector>
20
21using 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
43 imp = NULL;
44
45 imp = icalparameter_clone(v.imp);
46 if (imp == NULL) {
47 throw icalerrno;
48 }
49
50 return *this;
51}
52
53void ICalParameter::detach()
54{
55 imp = NULL;
56}
57
62
63ICalParameter::ICalParameter(icalparameter *v)
64 : imp(v)
65{
66}
67
68ICalParameter::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
76ICalParameter::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
84ICalParameter::ICalParameter(const icalparameter_kind &kind)
85 : imp(icalparameter_new(kind))
86{
87 if (imp == NULL) {
88 throw icalerrno;
89 }
90}
91
92std::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
103bool ICalParameter::is_valid()
104{
105 if (imp == NULL) {
106 return false;
107 }
108 return icalparameter_isa_parameter(static_cast<void *>(imp));
109}
110
111icalparameter_kind ICalParameter::isa()
112{
113 return icalparameter_isa(imp);
114}
115
116/* cppcheck-suppress functionStatic */
117bool 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 */
124void ICalParameter::set_xname(ICalParameter &param, const std::string &v)
125{
126 icalparameter_set_xname(param, v.c_str());
127}
128
129/* cppcheck-suppress constParameterReference */
130std::string ICalParameter::get_xname(ICalParameter &param)
131{
132 return static_cast<std::string>(icalparameter_get_xname(param));
133}
134
135/* cppcheck-suppress constParameterReference */
136void ICalParameter::set_xvalue(ICalParameter &param, const std::string &v)
137{
138 icalparameter_set_xvalue(param, v.c_str());
139}
140
141/* cppcheck-suppress constParameterReference */
142std::string ICalParameter::get_xvalue(ICalParameter &param)
143{
144 return static_cast<std::string>(icalparameter_get_xvalue(param));
145}
146
147/* Convert enumerations */
148std::string ICalParameter::kind_to_string(const icalparameter_kind &kind)
149{
150 return static_cast<std::string>(icalparameter_kind_to_string(kind));
151}
152
153icalparameter_kind ICalParameter::string_to_kind(const std::string &str)
154{
155 return icalparameter_string_to_kind(str.c_str());
156}
157
158/* DELEGATED-FROM */
159std::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
171void 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 */
181icalparameter_related ICalParameter::get_related() const
182{
183 return icalparameter_get_related(imp);
184}
185
186void ICalParameter::set_related(const icalparameter_related &v)
187{
188 icalparameter_set_related(imp, v);
189}
190
191/* SENT-BY */
192std::string ICalParameter::get_sentby() const
193{
194 return static_cast<std::string>(icalparameter_get_sentby(imp));
195}
196
197void ICalParameter::set_sentby(const std::string &v)
198{
199 icalparameter_set_sentby(imp, v.c_str());
200}
201
202/* LANGUAGE */
203std::string ICalParameter::get_language() const
204{
205 return static_cast<std::string>(icalparameter_get_language(imp));
206}
207
208void ICalParameter::set_language(const std::string &v)
209{
210 icalparameter_set_language(imp, v.c_str());
211}
212
213/* RELTYPE */
214icalparameter_reltype ICalParameter::get_reltype() const
215{
216 return icalparameter_get_reltype(imp);
217}
218
219void ICalParameter::set_reltype(const icalparameter_reltype &v)
220{
221 icalparameter_set_reltype(imp, v);
222}
223
224/* ENCODING */
225icalparameter_encoding ICalParameter::get_encoding() const
226{
227 return icalparameter_get_encoding(imp);
228}
229
230void ICalParameter::set_encoding(const icalparameter_encoding &v)
231{
232 icalparameter_set_encoding(imp, v);
233}
234
235/* ALTREP */
236std::string ICalParameter::get_altrep() const
237{
238 return static_cast<std::string>(icalparameter_get_language(imp));
239}
240
241void ICalParameter::set_altrep(const std::string &v)
242{
243 icalparameter_set_altrep(imp, v.c_str());
244}
245
246/* FMTTYPE */
247std::string ICalParameter::get_fmttype() const
248{
249 return static_cast<std::string>(icalparameter_get_fmttype(imp));
250}
251
252void ICalParameter::set_fmttype(const std::string &v)
253{
254 icalparameter_set_fmttype(imp, v.c_str());
255}
256
257/* FBTYPE */
258icalparameter_fbtype ICalParameter::get_fbtype() const
259{
260 return icalparameter_get_fbtype(imp);
261}
262
263void ICalParameter::set_fbtype(const icalparameter_fbtype &v)
264{
265 icalparameter_set_fbtype(imp, v);
266}
267
268/* RSVP */
269icalparameter_rsvp ICalParameter::get_rsvp() const
270{
271 return icalparameter_get_rsvp(imp);
272}
273
274void ICalParameter::set_rsvp(const icalparameter_rsvp &v)
275{
276 icalparameter_set_rsvp(imp, v);
277}
278
279/* RANGE */
280icalparameter_range ICalParameter::get_range() const
281{
282 return icalparameter_get_range(imp);
283}
284
285void ICalParameter::set_range(const icalparameter_range &v)
286{
287 icalparameter_set_range(imp, v);
288}
289
290/* DELEGATED-TO */
291std::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
303void 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 */
313std::string ICalParameter::get_cn() const
314{
315 return static_cast<std::string>(icalparameter_get_cn(imp));
316}
317
318void ICalParameter::set_cn(const std::string &v)
319{
320 icalparameter_set_cn(imp, v.c_str());
321}
322
323/* ROLE */
324icalparameter_role ICalParameter::get_role() const
325{
326 return icalparameter_get_role(imp);
327}
328
329void ICalParameter::set_role(const icalparameter_role &v)
330{
331 icalparameter_set_role(imp, v);
332}
333
334/* X-LIC-COMPARETYPE */
335icalparameter_xliccomparetype ICalParameter::get_xliccomparetype() const
336{
337 return icalparameter_get_xliccomparetype(imp);
338}
339
340void ICalParameter::set_xliccomparetype(const icalparameter_xliccomparetype &v)
341{
342 icalparameter_set_xliccomparetype(imp, v);
343}
344
345/* PARTSTAT */
346icalparameter_partstat ICalParameter::get_partstat() const
347{
348 return icalparameter_get_partstat(imp);
349}
350
351void ICalParameter::set_partstat(const icalparameter_partstat &v)
352{
353 icalparameter_set_partstat(imp, v);
354}
355
356/* X-LIC-ERRORTYPE */
357icalparameter_xlicerrortype ICalParameter::get_xlicerrortype() const
358{
359 return icalparameter_get_xlicerrortype(imp);
360}
361
362void ICalParameter::set_xlicerrortype(const icalparameter_xlicerrortype &v)
363{
364 icalparameter_set_xlicerrortype(imp, v);
365}
366
367/* MEMBER */
368std::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
380void 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 */
390std::string ICalParameter::get_x() const
391{
392 return static_cast<std::string>(icalparameter_get_x(imp));
393}
394
395void ICalParameter::set_x(const std::string &v)
396{
397 icalparameter_set_x(imp, v.c_str());
398}
399
400/* CUTYPE */
401icalparameter_cutype ICalParameter::get_cutype() const
402{
403 return icalparameter_get_cutype(imp);
404}
405
406void ICalParameter::set_cutype(const icalparameter_cutype &v)
407{
408 icalparameter_set_cutype(imp, v);
409}
410
411/* TZID */
412std::string ICalParameter::get_tzid() const
413{
414 return static_cast<std::string>(icalparameter_get_tzid(imp));
415}
416
417void ICalParameter::set_tzid(const std::string &v)
418{
419 icalparameter_set_tzid(imp, v.c_str());
420}
421
422/* VALUE */
423icalparameter_value ICalParameter::get_value() const
424{
425 return icalparameter_get_value(imp);
426}
427
428void ICalParameter::set_value(const icalparameter_value &v)
429{
430 icalparameter_set_value(imp, v);
431}
432
433/* DIR */
434std::string ICalParameter::get_dir() const
435{
436 return static_cast<std::string>(icalparameter_get_dir(imp));
437}
438
439void ICalParameter::set_dir(const std::string &v)
440{
441 icalparameter_set_dir(imp, v.c_str());
442}
ICalParameter & operator=(const ICalParameter &)
#define icalerrno
Access the current icalerrno value.
Definition icalerror.h:130
bool icalparameter_isa_parameter(void *parameter)
void icalparameter_free(icalparameter *param)
Frees an icalparameter object.
const char * icalparameter_get_xvalue(const icalparameter *param)
Returns the X-value of param.
icalparameter * icalparameter_new(icalparameter_kind kind)
Creates new icalparameter object.
void icalparameter_set_xname(icalparameter *param, const char *v)
Sets the X-name of param to v.
icalparameter * icalparameter_new_from_string(const char *str)
Creates new icalparameter object from string.
const char * icalparameter_get_xname(const icalparameter *param)
Returns the X-name of param.
icalparameter_kind icalparameter_isa(const icalparameter *parameter)
icalparameter * icalparameter_clone(const icalparameter *old)
Creates new icalparameter as a clone of the given one.
void icalparameter_set_xvalue(icalparameter *param, const char *v)
Sets the X-value of param to v.
char * icalparameter_as_ical_string(icalparameter *param)
Converts icalparameter into a string representation.
icalparameter_kind icalparameter_string_to_kind(const char *string)
Returns the icalparameter_kind for a given string.
const char * icalparameter_kind_to_string(icalparameter_kind kind)
Returns a string representing the given icalparameter_kind.
icalparameter * icalparameter_new_from_value_string(icalparameter_kind kind, const char *value)
Creates new icalparameter of a given kind with a given value.
Definition of C++ Wrapper for icalparameter.c.
const char * icalstrarray_element_at(icalstrarray *array, size_t position)
Accesses a string stored in the array.
void icalstrarray_append(icalstrarray *array, const char *elem)
Appends a string to the array.
size_t icalstrarray_size(const icalstrarray *array)
Indicates the count of strings stored in the array.
#define icalstrarray_new(increment_size)
Creates a new icalstrarray object.