Libical API Documentation  3.0
icalvalue_cxx.h
1 /*======================================================================
2  FILE: icalvalue_cxx.h
3  CREATOR: fnguyen 12/13/01
4  (C) COPYRIGHT 2001, Critical Path
5 
6  This library is free software; you can redistribute it and/or modify
7  it under the terms of either:
8 
9  The LGPL as published by the Free Software Foundation, version
10  2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html
11 
12  Or:
13 
14  The Mozilla Public License Version 2.0. You may obtain a copy of
15  the License at https://www.mozilla.org/MPL/
16 ======================================================================*/
17 
18 #ifndef ICALVALUE_CXX_H
19 #define ICALVALUE_CXX_H
20 
21 #include "libical_ical_export.h"
22 #include "icptrholder_cxx.h"
23 
24 extern "C"
25 {
26 #include "icalerror.h"
27 #include "icalvalue.h"
28 }
29 
30 #include <string>
31 
32 namespace LibICal
33 {
34 
35 class LIBICAL_ICAL_EXPORT ICalValue
36 {
37 public:
38  ICalValue();
39  ICalValue(const ICalValue &);
40  ICalValue &operator=(const ICalValue &);
41  ~ICalValue();
42 
43  explicit ICalValue(icalvalue *);
44  explicit ICalValue(const icalvalue_kind &kind);
45  ICalValue(const icalvalue_kind &kind, const std::string &str);
46 
47  operator icalvalue *()
48  {
49  return imp;
50  }
51 
52  void detach();
53 
54 public:
55  std::string as_ical_string();
56  bool is_valid();
57  icalvalue_kind isa();
58  int isa_value(void *);
59 
60  /* Special, non autogenerated value accessors */
61  void set_recur(const struct icalrecurrencetype &v);
62  struct icalrecurrencetype get_recur();
63 
64  void set_trigger(const struct icaltriggertype &v);
65  struct icaltriggertype get_trigger();
66 
67  void set_datetimeperiod(const struct icaldatetimeperiodtype &v);
68  struct icaldatetimeperiodtype get_datetimeperiod();
69 
70 public:
71  static icalparameter_xliccomparetype compare(ICalValue &a, ICalValue &b);
72 
73  /* Convert enumerations */
74  static icalvalue_kind string_to_kind(const std::string &str);
75  std::string kind_to_string(const icalvalue_kind &kind);
76 
77 public:
78  /* BOOLEAN */
79  int get_boolean() const;
80  void set_boolean(const int &v);
81 
82  /* UTC-OFFSET */
83  int get_utcoffset() const;
84  void set_utcoffset(const int &v);
85 
86  /* METHOD */
87  enum icalproperty_method get_method() const;
88  void set_method(const enum icalproperty_method &v);
89 
90  /* CAL-ADDRESS */
91  std::string get_caladdress() const;
92  void set_caladdress(const std::string &v);
93 
94  /* PERIOD */
95  struct icalperiodtype get_period() const;
96  void set_period(const struct icalperiodtype &v);
97 
98  /* STATUS */
99  enum icalproperty_status get_status() const;
100  void set_status(const enum icalproperty_status &v);
101 
102  /* BINARY */
103  std::string get_binary() const;
104  void set_binary(const std::string &v);
105 
106  /* TEXT */
107  std::string get_text() const;
108  void set_text(const std::string &v);
109 
110  /* DURATION */
111  struct icaldurationtype get_duration() const;
112  void set_duration(const struct icaldurationtype &v);
113 
114  /* INTEGER */
115  int get_integer() const;
116  void set_integer(const int &v);
117 
118  /* URI */
119  std::string get_uri() const;
120  void set_uri(const std::string &v);
121 
122  /* ATTACH */
123  icalattach *get_attach();
124  void set_attach(icalattach *v);
125 
126  /* CLASS */
127  enum icalproperty_class get_class() const;
128  void set_class(const enum icalproperty_class &v);
129 
130  /* FLOAT */
131  float get_float() const;
132  void set_float(const float &v);
133 
134  /* QUERY */
135  std::string get_query() const;
136  void set_query(const std::string &v);
137 
138  /* STRING */
139  std::string get_string() const;
140  void set_string(const std::string &v);
141 
142  /* TRANSP */
143  enum icalproperty_transp get_transp() const;
144  void set_transp(const enum icalproperty_transp &v);
145 
146  /* DATE-TIME */
147  struct icaltimetype get_datetime() const;
148  void set_datetime(const struct icaltimetype &v);
149 
150  /* GEO */
151  struct icalgeotype get_geo() const;
152  void set_geo(const struct icalgeotype &v);
153 
154  /* DATE */
155  struct icaltimetype get_date() const;
156  void set_date(const struct icaltimetype &v);
157 
158  /* ACTION */
159  enum icalproperty_action get_action() const;
160  void set_action(const enum icalproperty_action &v);
161 
162 private:
163  icalvalue *imp;
164 };
165 
166 } // namespace LibICal
167 
169 
170 #endif
Definition: icptrholder_cxx.h:48
Definition: icalvalue_cxx.h:36
Error handling for libical.
C++ template classes for managing C++ pointers returned by VComponent::get_..._component,...
Definition: icalattachimpl.h:26
Definition: icaltypes.h:28
A struct representing a duration.
Definition: icalduration.h:37
Definition: icaltypes.h:34
Struct to represent a period in time.
Definition: icalperiod.h:38
Definition: icalrecur.h:152
Definition: icaltime.h:105
Definition: icaltypes.h:40