Portability Libraries  2015.2.0.0
Common Methods and Objects for Platform Independance.
options.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 // THIS SOFTWARE AND MANUAL ARE BOTH PROTECTED BY UNITED STATES
14 // COPYRIGHT LAW (TITLE 17 UNITED STATES CODE). UNAUTHORIZED REPRODUCTION
15 // AND/OR SALE MAY RESULT IN IMPRISONMENT OF UP TO ONE YEAR AND FINES
16 // OF UP TO $100,000 (17 USC 506). COPYRIGHT INFRINGERS MAY ALSO
17 // BE SUBJECT TO CIVIL LIABILITY.
18 //
19 // THIS NOTICE AND THE ABOVE COPYRIGHT NOTICE MUST REMAIN IN ALL
20 // COPIES AND ANY DERIVED WORK.
21 //
22 // ALL OF THIS CODE IS ORIGINAL WORK BY THE COPYRIGHT HOLDER.
23 //
24 // THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN IS
25 // PROVIDED ON AN "AS IS" BASIS AND INET-CONSULTING.COM, INC.
26 // DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
27 // NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
28 // HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
29 // WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
30 // PURPOSE. ANY SERVICE CONTRACT WILL BE UNDER A SEPARATE
31 // LICENSE.
32 //
33 // END_DOUGLAS_MARK_ROYER_COPYRIGHT
34 //
35 
36 /**
37  * @author Doug Royer / SoftwareAndServices
38  * @file
39  * This is a class and interfaces in C and C++ that represents calendar OPTIONS
40  * parameter. It is designed to be compatible with RFC-iCalendar, RFC-iTIP, RFC-iMIP,
41  * CAP, and current WebDAV and CalDAV calendars.
42  */
43 #ifndef __DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_OPTIONS_HPP__
44 #define __DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_OPTIONS_HPP__
45 
46 #ifndef EXPORT_ICALENDAR
47 #ifdef BUILDING_LIBRARY_ICALENDAR
48 #define EXPORT_ICALENDAR EXPORT_OUT
49 #else
50 #define EXPORT_ICALENDAR EXPORT_IN
51 #endif
52 #endif
53 
54 #ifdef BUILDING_LIBRARY_ICALENDAR
55 #include "iCalendar.hpp"
56 #include "text_parameter.hpp"
57 #else
58 #include <SaS/iCalendar/iCalendar.hpp>
59 #include <SaS/iCalendar/text_parameter.hpp>
60 #endif
61 
62 using namespace std;
66 
67 namespace SoftwareAndServices
68 {
69  namespace Library
70  {
71  namespace iCalendar
72  {
73 
74  /**
75  * @class options
76  * An RFC-iCalendar implementation of OPTIONS parameter.
77  */
78  class EXPORT_ICALENDAR options
79  : public text_parameter
80  {
81 
82  public:
83 
84  /**
85  * options Constructor.
86  */
87  options();
88 
89  /**
90  * options Constructor.
91  *
92  * @param Value The initial value.
93  */
94  options(const char * Value);
95 
96  /**
97  * options Constructor.
98  *
99  * @param Value The initial value.
100  */
101  options(const text * Value);
102 
103  /**
104  * options Destructor.
105  */
106  virtual ~options();
107 
108  /**
109  * @return TRUE if the options values are correct.
110  */
111  virtual bool valid() const;
112  };
113 
114  /**
115  * @typedef optionsVec
116  * An array of options.
117  */
118  typedef vector<options*> optionsVec;
119 
120  }
121  }
122 }
123 
124 #endif /*__DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_OPTIONS_HPP__*/
STL namespace.