Software and Services, Portable Libraries  2019.Mar.01
A library for managing digital certificates
iCalendar.hpp
Go to the documentation of this file.
1 //
2 // BEGIN_DOUGLAS_MARK_ROYER_COPYRIGHT
3 //
4 // Copyright (C) 1993-2012 Douglas Mark Royer, All Rights Reserved.
5 //
6 // NOTICE:
7 //
8 // THIS SOURCE CODE BELONGS TO DOUGLAS MARK ROYER
9 // THIS CODE IS CONSIDERED A
10 // TRADE SECRET AND IS NOT TO BE DIVULGED OR USED BY PARTIES WHO HAVE
11 // NOT RECEIVED WRITTEN AUTHORIZATION FROM THE OWNER.
12 //
13 //
14 // THIS SOFTWARE AND MANUAL ARE BOTH PROTECTED BY UNITED STATES
15 // COPYRIGHT LAW (TITLE 17 UNITED STATES CODE). UNAUTHORIZED REPRODUCTION
16 // AND/OR SALE MAY RESULT IN IMPRISONMENT OF UP TO ONE YEAR AND FINES
17 // OF UP TO $100,000 (17 USC 506). COPYRIGHT INFRINGERS MAY ALSO
18 // BE SUBJECT TO CIVIL LIABILITY.
19 //
20 // THIS NOTICE AND THE ABOVE COPYRIGHT NOTICE MUST REMAIN IN ALL
21 // COPIES AND ANY DERIVED WORK.
22 //
23 // ALL OF THIS CODE IS ORIGINAL WORK BY THE COPYRIGHT HOLDER.
24 //
25 // THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN IS
26 // PROVIDED ON AN "AS IS" BASIS AND INET-CONSULTING.COM, INC.
27 // DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
28 // NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
29 // HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
30 // WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
31 // PURPOSE. ANY SERVICE CONTRACT WILL BE UNDER A SEPARATE
32 // LICENSE.
33 //
34 // END_DOUGLAS_MARK_ROYER_COPYRIGHT
35 //
36 #ifndef __DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_HPP__
37 #define __DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_HPP__
38 
39 #ifndef EXPORT_ICALENDAR
40 #ifdef BUILDING_LIBRARY_ICALENDAR
41 #define EXPORT_ICALENDAR EXPORT_OUT
42 #else
43 #define EXPORT_ICALENDAR EXPORT_IN
44 #endif
45 #endif
46 
47 #include <SaS/Common/osver.h>
48 #include <SaS/Common/String.hpp>
49 #include <SaS/Common/StringCache.hpp>
50 #include <SaS/Common/Parse.hpp>
51 #include <SaS/Common/DateTime.hpp>
52 #include <SaS/RfcBasic/Uri.hpp>
53 #include <SaS/Common/Error.hpp>
54 #include <SaS/Common/File.hpp>
55 
63 #ifdef BUILDING_LIBRARY_ICALENDAR
64 #include "dbiCalTokens.hpp"
65 #else
66 #include <SaS/iCalendar/dbiCalTokens.hpp>
67 #endif
68 
69 #include <memory.h>
70 #include <stdlib.h>
71 #include <sys/types.h>
72 #include <string>
73 #include <vector>
74 #include <map>
75 #include <SaS/Common/winWrappers.hpp>
76 
77 #include <assert.h>
78 
79 #include <SaS/iCalendar/BaseValueType.hpp>
80 
81 using namespace std;
84 //using namespace SoftwareAndServices::Library::iCalendar;
85 
86 #ifdef ComponentId_t
87 #undef ComponentId_t
88 #endif
89 
90 #ifdef PropertyId_t
91 #undef PropertyId_t
92 #endif
93 
94 #ifdef ParameterId_t
95 #undef ParameterId_t
96 #endif
97 
98 #ifdef WIN32
99 // * This warning message tells us that data members that
101 // * use the vector<> std template, can not be accessible
102 // * from outside the class (from a derived class) unless the
103 // * data type is EXPORTED, yet MS-.NET rejects the EXPORT tag
104 // * for ALL vector typedefs. If this is an issue make the member
105 // * variable private and create a method to return the value
106 //* and not the <vector> array.
107 // */
108 #pragma warning(disable: 4251)
109 
114 #ifdef OPAQUE
115 #undef OPAQUE
116 #endif
117 #ifdef TRANSPARENT
118 #undef TRANSPARENT
119 #endif
120 #ifdef DEFAULT_CHARSET
121 #undef DEFAULT_CHARSET
122 #endif
123 
124 #endif
125 
126 extern "C" {
127  void _BaseValueType_once_proc();
128  void _iCalendar_once_proc();
129 }
130 
139 namespace SoftwareAndServices
140 {
141  namespace Library
142  {
143  namespace iCalendar
144  {
150  EXPORT_ICALENDAR extern const char * CRLF_s;
151  EXPORT_ICALENDAR extern const String * CRLF_S;
152 
153  EXPORT_ICALENDAR extern const char * L_COLON_s;
154 
155  EXPORT_ICALENDAR extern const char * L_H_s;
156  EXPORT_ICALENDAR extern const char * L_M_s;
157  EXPORT_ICALENDAR extern const char * L_MINUS_s;
158  EXPORT_ICALENDAR extern const char * L_P_s;
159  EXPORT_ICALENDAR extern const char * L_PLUS_s;
160  EXPORT_ICALENDAR extern const char * L_S_s;
161  EXPORT_ICALENDAR extern const char * L_SEMICOLON_s;
162  EXPORT_ICALENDAR extern const char * L_SLASH_s;
163  EXPORT_ICALENDAR extern const char * L_T_s;
164  EXPORT_ICALENDAR extern const char * L_W_s;
165  EXPORT_ICALENDAR extern const char * L_Z_s;
166 
167 
168  class EXPORT_ICALENDAR action;
169  class EXPORT_ICALENDAR action_param;
170  class EXPORT_ICALENDAR allow_conflict;
171  class EXPORT_ICALENDAR altrep;
172  class EXPORT_ICALENDAR att_counter;
173  class EXPORT_ICALENDAR attach;
174  class EXPORT_ICALENDAR attendee;
175  class EXPORT_ICALENDAR binary;
176  class EXPORT_ICALENDAR binary_parameter;
177  class EXPORT_ICALENDAR binary_property;
178  class EXPORT_ICALENDAR boolean;
179  class EXPORT_ICALENDAR boolean_parameter;
180  class EXPORT_ICALENDAR boolean_property;
181  class EXPORT_ICALENDAR cal_address;
182  class EXPORT_ICALENDAR cal_address_parameter;
183  class EXPORT_ICALENDAR cal_address_property;
184  class EXPORT_ICALENDAR cal_query;
185  class EXPORT_ICALENDAR cal_query_parameter;
186  class EXPORT_ICALENDAR cal_query_property;
187  class EXPORT_ICALENDAR calid;
188  class EXPORT_ICALENDAR calmaster;
189  class EXPORT_ICALENDAR calscale;
190  class EXPORT_ICALENDAR cap_version;
191  class EXPORT_ICALENDAR car_level;
192  class EXPORT_ICALENDAR carid;
193  class EXPORT_ICALENDAR categories;
194  class EXPORT_ICALENDAR class_prop;
195  class EXPORT_ICALENDAR cmd;
196  class EXPORT_ICALENDAR comment;
197  class EXPORT_ICALENDAR component;
198  class EXPORT_ICALENDAR components;
199  class EXPORT_ICALENDAR contact;
200  class EXPORT_ICALENDAR create;
201  class EXPORT_ICALENDAR created;
202  class EXPORT_ICALENDAR csid;
203  class EXPORT_ICALENDAR cutype;
204  class EXPORT_ICALENDAR date;
205  class EXPORT_ICALENDAR date_parameter;
206  class EXPORT_ICALENDAR date_property;
207  class EXPORT_ICALENDAR date_time;
208  class EXPORT_ICALENDAR date_time_parameter;
209  class EXPORT_ICALENDAR date_time_property;
210  class EXPORT_ICALENDAR daylightValue;
211  class EXPORT_ICALENDAR decreed;
212  class EXPORT_ICALENDAR default_charset;
213  class EXPORT_ICALENDAR default_locale;
214  class EXPORT_ICALENDAR default_tzid;
215  class EXPORT_ICALENDAR default_vcars;
216  class EXPORT_ICALENDAR delegated_from;
217  class EXPORT_ICALENDAR delegated_to;
218  class EXPORT_ICALENDAR deny;
219  class EXPORT_ICALENDAR description;
220  class EXPORT_ICALENDAR dir;
221  class EXPORT_ICALENDAR dtend;
222  class EXPORT_ICALENDAR dtstamp;
223  class EXPORT_ICALENDAR dtstart;
224  class EXPORT_ICALENDAR due;
225  class EXPORT_ICALENDAR dur_parameter;
226  class EXPORT_ICALENDAR dur_property;
227  class EXPORT_ICALENDAR dur_value;
228  class EXPORT_ICALENDAR duration;
229  class EXPORT_ICALENDAR enable;
230  class EXPORT_ICALENDAR encoding;
231  class EXPORT_ICALENDAR exdate;
232  class EXPORT_ICALENDAR expand;
233  class EXPORT_ICALENDAR exrule;
234  class EXPORT_ICALENDAR fbtype;
235  class EXPORT_ICALENDAR float_parameter;
236  class EXPORT_ICALENDAR float_property;
237  class EXPORT_ICALENDAR float_value;
238  class EXPORT_ICALENDAR fmttype;
239  class EXPORT_ICALENDAR fn;
240  class EXPORT_ICALENDAR freebush;
241  class EXPORT_ICALENDAR geo;
242  class EXPORT_ICALENDAR grant;
243  class EXPORT_ICALENDAR iCalError;
244  class EXPORT_ICALENDAR iCalendar;
245  class EXPORT_ICALENDAR icalbody;
246  class EXPORT_ICALENDAR icaldata;
247  class EXPORT_ICALENDAR id;
248  class EXPORT_ICALENDAR integer;
249  class EXPORT_ICALENDAR integer_parameter;
250  class EXPORT_ICALENDAR integer_property;
251  class EXPORT_ICALENDAR itip_version;
252  class EXPORT_ICALENDAR label;
253  class EXPORT_ICALENDAR language;
254  class EXPORT_ICALENDAR last_modified;
255  class EXPORT_ICALENDAR latency;
256  class EXPORT_ICALENDAR local;
257  class EXPORT_ICALENDAR localize;
258  class EXPORT_ICALENDAR location;
259  class EXPORT_ICALENDAR max_comp_size;
260  class EXPORT_ICALENDAR maxdate;
261  class EXPORT_ICALENDAR member;
262  class EXPORT_ICALENDAR method;
263  class EXPORT_ICALENDAR mindate;
264  class EXPORT_ICALENDAR multipart;
265  class EXPORT_ICALENDAR name;
266  class EXPORT_ICALENDAR options;
267  class EXPORT_ICALENDAR organizer;
268  class EXPORT_ICALENDAR owner;
269  class EXPORT_ICALENDAR parameter;
270  class EXPORT_ICALENDAR parser;
271  class EXPORT_ICALENDAR partstat;
272  class EXPORT_ICALENDAR percent_complete;
273  class EXPORT_ICALENDAR period;
274  class EXPORT_ICALENDAR period_parameter;
275  class EXPORT_ICALENDAR period_property;
276  class EXPORT_ICALENDAR permission;
277  class EXPORT_ICALENDAR photo;
278  class EXPORT_ICALENDAR priority;
279  class EXPORT_ICALENDAR property;
280  class EXPORT_ICALENDAR query;
281  class EXPORT_ICALENDAR query_level;
282  class EXPORT_ICALENDAR queryid;
283  class EXPORT_ICALENDAR range;
284  class EXPORT_ICALENDAR rdate;
285  class EXPORT_ICALENDAR recur;
286  class EXPORT_ICALENDAR recur_accepted;
287  class EXPORT_ICALENDAR recur_expanded;
288  class EXPORT_ICALENDAR recur_limit;
289  class EXPORT_ICALENDAR recur_parameter;
290  class EXPORT_ICALENDAR recur_property;
291  class EXPORT_ICALENDAR recurrence_id;
292  class EXPORT_ICALENDAR related;
293  class EXPORT_ICALENDAR related_to;
294  class EXPORT_ICALENDAR reltype;
295  class EXPORT_ICALENDAR repeat;
296  class EXPORT_ICALENDAR request_status;
297  class EXPORT_ICALENDAR resources;
298  class EXPORT_ICALENDAR restriction;
299  class EXPORT_ICALENDAR role;
300  class EXPORT_ICALENDAR rrule;
301  class EXPORT_ICALENDAR rsvp;
302  class EXPORT_ICALENDAR scope;
303  class EXPORT_ICALENDAR sent_by;
304  class EXPORT_ICALENDAR sequence;
305  class EXPORT_ICALENDAR sort_string;
306  class EXPORT_ICALENDAR sound;
307  class EXPORT_ICALENDAR standardValue;
308  class EXPORT_ICALENDAR status;
309  class EXPORT_ICALENDAR stores_expanded;
310  class EXPORT_ICALENDAR summary;
311  class EXPORT_ICALENDAR target;
312  class EXPORT_ICALENDAR text;
313  class EXPORT_ICALENDAR text_parameter;
314  class EXPORT_ICALENDAR text_property;
315  class EXPORT_ICALENDAR time;
316  class EXPORT_ICALENDAR time_parameter;
317  class EXPORT_ICALENDAR time_property;
318  class EXPORT_ICALENDAR title;
319  class EXPORT_ICALENDAR transp;
320  class EXPORT_ICALENDAR trigger;
321  class EXPORT_ICALENDAR tzid;
322  class EXPORT_ICALENDAR tzid_param;
323  class EXPORT_ICALENDAR tznameValue;
324  class EXPORT_ICALENDAR tzoffsetfrom;
325  class EXPORT_ICALENDAR tzoffsetto;
326  class EXPORT_ICALENDAR tzurl;
327  class EXPORT_ICALENDAR uid;
328  class EXPORT_ICALENDAR upn_filter;
329  class EXPORT_ICALENDAR upn_filter_parameter;
330  class EXPORT_ICALENDAR upn_filter_property;
331  class EXPORT_ICALENDAR upn_parameter;
332  class EXPORT_ICALENDAR upn_value;
333  class EXPORT_ICALENDAR uri;
334  class EXPORT_ICALENDAR uri_parameter;
335  class EXPORT_ICALENDAR uri_property;
336  class EXPORT_ICALENDAR url;
337  class EXPORT_ICALENDAR utc_offset;
338  class EXPORT_ICALENDAR utc_offset_parameter;
339  class EXPORT_ICALENDAR utc_offset_property;
340  class EXPORT_ICALENDAR vagenda;
341  class EXPORT_ICALENDAR valarm;
342  class EXPORT_ICALENDAR value;
343  class EXPORT_ICALENDAR BaseValueType;
344  class EXPORT_ICALENDAR value_datum;
345  class EXPORT_ICALENDAR valuetype;
346  class EXPORT_ICALENDAR vc_version;
347  class EXPORT_ICALENDAR vcalendar;
348  class EXPORT_ICALENDAR vcalstore;
349  class EXPORT_ICALENDAR vcar;
350  class EXPORT_ICALENDAR version;
351  class EXPORT_ICALENDAR vevent;
352  class EXPORT_ICALENDAR vfreebusy;
353  class EXPORT_ICALENDAR vjournal;
354  class EXPORT_ICALENDAR vquery;
355  class EXPORT_ICALENDAR vreply;
356  class EXPORT_ICALENDAR vrights;
357  class EXPORT_ICALENDAR vtimezone;
358  class EXPORT_ICALENDAR vtodo;
359  class EXPORT_ICALENDAR x_component;
360  class EXPORT_ICALENDAR x_inet_color;
361  class EXPORT_ICALENDAR x_inet_fixed_recur;
362  class EXPORT_ICALENDAR x_inet_id;
363  class EXPORT_ICALENDAR x_inet_invited;
364  class EXPORT_ICALENDAR x_inet_local;
365  class EXPORT_ICALENDAR x_inet_parent;
366  class EXPORT_ICALENDAR x_intellical_group;
367  class EXPORT_ICALENDAR x_intellical_image;
368  class EXPORT_ICALENDAR x_intellical_photo;
369  class EXPORT_ICALENDAR x_intellical_sound;
370  class EXPORT_ICALENDAR x_param;
371  class EXPORT_ICALENDAR x_prop;
372 
376  EXPORT_ICALENDAR typedef uint64_t CalendarId_t;
377 
382  EXPORT_ICALENDAR typedef uint64_t ComponentId_t;
383 
387  EXPORT_ICALENDAR typedef uint64_t PropertyId_t;
388 
392  EXPORT_ICALENDAR typedef uint64_t ParameterId_t;
393 
397  EXPORT_ICALENDAR typedef uint64_t GroupId_t;
398 
402  EXPORT_ICALENDAR typedef vector<time_t> time_tVec;
403 
407  EXPORT_ICALENDAR typedef vector<icalbody*> icalbodyVec;
408 
413  EXPORT_ICALENDAR typedef vector<iCalendar*> iCalendarVec;
414 
419  EXPORT_ICALENDAR typedef vector<component*> componentVec;
420 
425  EXPORT_ICALENDAR typedef vector<property*> propertyVec;
426 
434  class EXPORT_ICALENDAR iCalendar
435  : virtual public instance<iCalendar>
436  {
437 
438  public:
439 
443  iCalendar();
444 
450  iCalendar(iCalendar * ExistingiCalendarObject);
451 
457  iCalendar(icalbody * ExistingVCalendarObject);
458 
462  virtual ~iCalendar();
463 
472  void setUserData(const void * userData);
473 
479  void * getUserData() const;
480 
492  bool parse(const char * in, component * errors);
493 
494 
506  bool parse(File * in, component * errors);
507 
520  bool parse(Parse & in, component * errors);
521 
528  bool valid() const;
529 
537  bool add(const iCalendar * anotheriCal);
538 
546  bool add(const icalbody * body);
547 
555  bool add(const component * comp);
556 
564  bool add(const property * prop);
565 
574  bool sprint(String * Results) const;
575 
576 
582  unsigned int getiCalCount() const;
583 
591  iCalendar * getiCal(unsigned int nTh) const;
592 
598  unsigned int getBodyCount() const;
599 
607  icalbody * getiCalBody(unsigned int nTh) const;
608 
614  unsigned int getComponentCount() const;
615 
623  unsigned int getComponentCount(Tokens_t typeToCount) const;
624 
632  component * getComponent(unsigned int nTh) const;
633 
643  component * getComponent(Tokens_t typeToGet, unsigned int nTh) const;
644 
650  unsigned int getPropertyCount() const;
651 
659  property * getProperty(unsigned int nTh) const;
660 
661  protected:
662  iCalendarVec * _icalList;
663  icalbodyVec * _bodyList;
664  componentVec * _componentList;
665  propertyVec * _propertyList;
666  void * _userData;
667  };
668 
673  //typedef vector<iCalendar*> iCalendarVec;
674 
683  EXPORT_ICALENDAR const char * token2text(Tokens_t token);
684 
694  EXPORT_ICALENDAR Tokens_t text2token(const char * TokenString, size_t Length = 0);
695 
700  struct EXPORT_ICALENDAR requiredList {
701 
705  Tokens_t token;
706 
711  bool required;
712 
717  unsigned char maxInstances;
718 
722  unsigned char minInstances;
723 
724  };
725 
739  EXPORT_ICALENDAR typedef parameter * (*PAdispatch_f)(const char * text);
740  EXPORT_ICALENDAR typedef property * (*POdispatch_f)(const char * text);
741 
753  struct EXPORT_ICALENDAR dispatchTable {
754  const char * string;
755  PAdispatch_f pa_func;
756  POdispatch_f po_func;
757  };
758 
759  }
760  }
761 }
762 
763 #endif /*__DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_HPP__ */
764 
An RFC-iCalendar implementation of DUE property.
Definition: due.hpp:82
std::vector< icalbody * > icalbodyVec
An array of icalbody.
Definition: icalbody.hpp:109
An RFC-iCalendar implementation of a CAL-QUERY parameter.
An implementation of a RFC-CAP VALARM component.
Definition: valarm.hpp:82
This class contains, processes, and formats iCalendar errors.
Definition: iCalError.hpp:90
An RFC-iCalendar implementation of DIR parameter.
Definition: dir.hpp:80
An RFC-iCalendar implementation of CAP-VERSION property.
Definition: cap_version.hpp:82
An RFC-iCalendar implementation of TZURL property.
Definition: tzurl.hpp:86
An RFC-iCalendar implementation of REPEAT parameter.
Definition: repeat.hpp:80
An RFC-iCalendar implementation of DESCRIPTION property.
Definition: description.hpp:87
An RFC-iCalendar implementation of PRIORITY property.
Definition: priority.hpp:85
An RFC-iCalendar implementation of FBTYPE parameter.
Definition: fbtype.hpp:78
bool required
When TRUE, a component, property, parameter, or value of type &#39;token&#39; must be supplied in the object...
Definition: iCalendar.hpp:711
An RFC-iCalendar implementation of CALSCALE property.
Definition: calscale.hpp:82
An RFC-iCalendar implementation of RECUR-ACCEPTED property.
An RFC-iCalendar implementation of VERSION property.
Like &#39;FILE&#39;, except C++ implementation and allows sockets and disk files to use same object on WINDOW...
Definition: File.hpp:150
An RFC-iCalendar METHOD property.
Definition: method.hpp:81
An RFC-iCalendar implementation of DEFAULT-LOCALE property.
An RFC-iCalendar implementation of QUERY-LEVEL property.
Definition: query_level.hpp:76
An RFC-iCalendar implementation of DTSTAMP property.
Definition: dtstamp.hpp:80
An RFC-iCalendar implementation of CUTYPE parameter.
Definition: cutype.hpp:82
An RFC-iCalendar implementation of CLASS property.
Definition: class_prop.hpp:82
An RFC-iCalendar implementation of QUERY property.
Definition: query.hpp:78
vector< component * > componentVec
An array of component.
Definition: component.hpp:86
An RFC-iCalendar implementation of MEMBER parameter.
Definition: member.hpp:78
An RFC-iCalendar implementation of DURATION property.
Definition: duration.hpp:78
This object represents an RFC-iCalendar TIME object.
Definition: time.hpp:74
An RFC-iCalendar implementation of RELTYPE parameter.
Definition: reltype.hpp:83
An RFC-iCalendar implementation of ENCODING parameter.
Definition: encoding.hpp:77
An RFC-iCalendar implementation of ORGANZER property.
Definition: organizer.hpp:78
EXPORT_ICALENDAR typedef vector< iCalendar * > iCalendarVec
An array of iCalendar.
Definition: iCalendar.hpp:413
An RFC-iCalendar implementation of MINDATE parameter.
Definition: mindate.hpp:80
An RFC-iCalendar implementation of TRIGGER parameter.
Definition: trigger.hpp:78
An RFC-iCalendar implementation of RANGE parameter.
Definition: range.hpp:78
An RFC-iCalendar implementation of FMTTYPE parameter.
Definition: fmttype.hpp:77
An RFC-iCalendar implementation of EXDATE property.
Definition: exdate.hpp:85
STL namespace.
An RFC-iCalendar implementation of CSID property.
Definition: csid.hpp:84
EXPORT_ICALENDAR typedef parameter *(* PAdispatch_f)(const char *text)
This is the start of a parsing idea.
Definition: iCalendar.hpp:739
An RFC-iCalendar implementation of SEQUENCE property.
Definition: sequence.hpp:80
An RFC-iCalendar implementation of DTSTART property.
Definition: dtstart.hpp:80
Base class for all text property objects.
An implementation of a RFC-CAP VCALSTORE component.
Definition: vcalstore.hpp:83
An object representing an RFC-iCalendar URI parameter.
An RFC-iCalendar PERIOD value.
Definition: period.hpp:81
An RFC-iCalendar implementation of RSVP parameter.
Definition: rsvp.hpp:78
An RFC-iCalendar implementation of TZID property.
Definition: tzid.hpp:82
This class represents any iCalendar TEXT value type.
Definition: text.hpp:76
Generic text parsing routines.
Definition: Parse.hpp:102
An RFC-iCalendar implementation of QUERYID property.
Definition: queryid.hpp:78
An implementation of a RFC-CAP VCAR component.
Definition: vcar.hpp:83
The dispatch table will contain the string name (of a property pr parameter), then depending on the c...
Definition: iCalendar.hpp:753
An RFC-iCalendar implementation of DELEGATED-FROM parameter.
An RFC-iCalendar implementation of MAXDATE property.
Definition: maxdate.hpp:80
An RFC-iCalendar implementation of UID property.
Definition: uid.hpp:78
An RFC-iCalendar implementation of EXRULE property.
Definition: exrule.hpp:78
An RFC-iCalendar implementation of LAST-MODEFIED parameter.
An RFC-iCalendar implementation of DEFAULT-CHARSET property.
An RFC-iCalendar implementation of EXPAND property.
Definition: expand.hpp:80
An RFC-iCalendar implementation of TZOFFSETTO property.
Definition: tzoffsetto.hpp:80
An implementation of a RFC-CAP VQUERY component.
Definition: vquery.hpp:82
unsigned char maxInstances
The maximum number of times the token type can be included.
Definition: iCalendar.hpp:717
EXPORT_ICALENDAR const char * token2text(Tokens_t token)
Convert the object token ID into a string.
An RFC-iCalendar implementation of CMD property.
Definition: cmd.hpp:82
An implementation of a RFC-CAP VTODO component.
Definition: vtodo.hpp:82
An RFC-iCalendar implementation of a INTEGER parameter.
An RFC-iCalendar implementation of GRANT property.
Definition: grant.hpp:84
An implementation of a RFC-CAP DAYLIGHT component.
An RFC-iCalendar implementation of id parameter.
Definition: id.hpp:77
An RFC-iCalendar implementation of DECREED property.
Definition: decreed.hpp:80
An RFC-iCalendar implementation of CONTACT property.
Definition: contact.hpp:78
An RFC-iCalendar implementation of a DATE-TIME parameter.
Definition: date_time.hpp:90
An RFC-iCalendar implementation of DENY property.
Definition: deny.hpp:82
An RFC-iCalendar implementation of RESOURCES property.
Definition: resources.hpp:78
An RFC-iCalendar implementation of RECURRENCE-ID parameter.
Base class for all RFC-iCalendar properties.
Definition: property.hpp:79
An RFC-iCalendar implementation of default_tzid property.
An RFC-iCalendar implementation of STORES-EXPANDED property.
An RFC-iCalendar implementation of SENT-BY parameter.
Definition: sent_by.hpp:78
An RFC-iCalendar implementation of SUMMARY property.
Definition: summary.hpp:78
An RFC-iCalendar implementation of a TIME parameter.
This is the base class for all values, that includes parameters and properties.
Definition: value.hpp:78
An implementation of a RFC-CAP ICALBODY component.
Definition: icalbody.hpp:82
An RFC-iCalendar implementation of RELATED parameter.
Definition: related.hpp:78
An RFC-iCalendar implementation of TZOFFSETFROM property.
An RFC-iCalendar implementation of local parameter.
Definition: local.hpp:78
An RFC-iCalendar implementation of ENABLE parameter.
Definition: enable.hpp:78
vector< time_t > time_tVec
An array of time_t.
Definition: component.hpp:92
An RFC-iCalendar implementation of NAME property.
Definition: name.hpp:78
An RFC-iCalendar integer value.
Definition: integer.hpp:79
unsigned char minInstances
The minimum number of times the token type can be included.
Definition: iCalendar.hpp:722
An RFC-iCalendar implementation of PERCENT-COMPLETE parameter.
EXPORT_ICALENDAR Tokens_t text2token(const char *TokenString, size_t Length=0)
Convert a string into an object token ID.
An RFC-iCalendar implementation of ROLE parameter.
Definition: role.hpp:78
Tokens_t token
A token (type of object) that it can have.
Definition: iCalendar.hpp:705
An RFC-iCalendar implementation of STATUS property.
Definition: status.hpp:78
Instance counting and tracking.
Definition: instance.hpp:90
EXPORT_ICALENDAR const char * CRLF_s
These are some shortcut variables that are defined so that multiple instances of const strings are no...
An RFC-iCalendar implementation of DELEGATED-TO parameter.
An RFC-iCalendar implementation of RDATE property.
Definition: rdate.hpp:80
An RFC-iCalendar implementation of REQUEST-STATUS property.
An RFC-iCalendar implementation of CAR-LEVEL property.
Definition: car_level.hpp:82
An RFC-iCalendar implementation of MULTIPART property.
Definition: multipart.hpp:78
An RFC-iCalendar implementation of TARGET property.
Definition: target.hpp:82
An RFC-iCalendar implementation of OPTIONS parameter.
Definition: options.hpp:78
An implementation of a RFC-CAP X-COMPONENT component.
Definition: x-component.hpp:83
The base class for URI property properties.
An RFC-iCalendar UPN-FILTER value type.
Definition: upn_filter.hpp:78
EXPORT_ICALENDAR typedef vector< property * > propertyVec
An array of property.
Definition: iCalendar.hpp:425
An RFC-iCalendar implementation of a FLOAT parameter.
Definition: float_value.hpp:73
Base class for all upn_filter_value property.
An RFC-iCalendar implementation of VALUETYPE parameter.
Definition: valuetype.hpp:78
This is a class that allows:
Definition: String.hpp:114
An RFC-iCalendar implementation of MAX-COMP-SIZE property.
An implementation of a RFC-CAP VTIMEZONE component.
Definition: vtimezone.hpp:82
An RFC-iCalendar implementation of a UPN-FILTER parameter.
Copyright Douglas Mark Royer DouglasRoyer@gmail.com.
Definition: Base.hpp:98
An RFC-iCalendar implementation of RRULE property.
Definition: rrule.hpp:78
An RFC-iCalendar implementation of CALID property.
Definition: calid.hpp:82
An RFC-iCalendar implementation of ITIP-VERSION property.
An RFC-iCalendar implementation of CARID property.
Definition: carid.hpp:82
An RFC-iCalendar implementation of DEFAULT-VCARS property.
An RFC-iCalendar implementation of LOCATION property.
Definition: location.hpp:80
A class that represents an RFC-iCalendar UTC-OFFSET parameter.
The base class for calendar objects.
Definition: iCalendar.hpp:434
An RFC-iCalendar implementation of URL property.
Definition: url.hpp:86
This object represents a RFC-iCalendar UTC-OFFSET value.
Definition: utc_offset.hpp:78
An implementation of a RFC-CAP VFREEBUSY component.
Definition: vfreebusy.hpp:82
The class is an RFC-iCalendar RECUR object.
Definition: recur.hpp:84
An RFC-iCalendar implementation of transp property.
Definition: transp.hpp:78
An RFC-iCalendar implementation of SCOPE property.
Definition: scope.hpp:78
All (almost all) values are derived from this base class.
An RFC-iCalendar implementation of OWNER parameter.
Definition: owner.hpp:80
An implementation of a RFC-CAP STANDARD component.
An implementation of a RFC-CAP VEVENT component.
Definition: vevent.hpp:82
An RFC-iCalendar implementation of X-PROPERTY (experimental) property.
Definition: x-prop.hpp:79
An implementation of a RFC-CAP VJOURNAL component.
Definition: vjournal.hpp:82
An RFC-iCalendar implementation of LOCALIZE parameter.
Definition: localize.hpp:78
Storage for an RFC-iCalendar URI value.
Definition: uri.hpp:88
An RFC-iCalendar implementation of CATEGORIES property.
Definition: categories.hpp:82
An RFC-iCalendar implementation of a PERIOD parameter.
An RFC-iCalendar implementation of COMMENT property.
Definition: comment.hpp:87
An RFC-iCalendar implementation of PERMISSION property.
Definition: permission.hpp:78
An RFC-iCalendar implementation of a DUR parameter.
Definition: dur_value.hpp:82
An RFC-iCalendar implementation of LATENCY parameter.
Definition: latency.hpp:78
Many of the methods in the iCalendar namespace will define their own valid() function.
Definition: iCalendar.hpp:700
An RFC-iCalendar implementation of a UPN parameter.
An RFC-iCalendar implementation of COMPONENTS property.
Definition: components.hpp:82
An implementation of RFC-iCalendar CAL-QUERY.
Definition: cal_query.hpp:78
An implementation of a RFC-CAP VAGENDA component.
Definition: vagenda.hpp:82
This object represents an RFC-iCalendar DATE object.
Definition: date.hpp:80
Base class for all RFC-iCalendar components.
Definition: component.hpp:98
An RFC-iCalendar implementation of DTEND property.
Definition: dtend.hpp:80
An implementation of a RFC-CAP VCALENDAR component.
Definition: vcalendar.hpp:82
An RFC-iCalendar implementation of recur_limit parameter.
Definition: recur_limit.hpp:80
An RFC-iCalendar CAL-ADDRESS parameter implementation.
An RFC-iCalendar implementation of GEO property.
Definition: geo.hpp:80
An implementation of a RFC-CAP VREPLY component.
Definition: vreply.hpp:77