Portability Libraries  2015.2.0.0
Common Methods and Objects for Platform Independance.
attach.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 // LICENSES ARE GRANTED TO:
34 // INET-Consulting LLC a CALIFORNIA Corporation
35 // INET-Consulting.com Inc a NEVADA Corporation
36 // INET-Products.com a NEVADA Company
37 //
38 // END_DOUGLAS_MARK_ROYER_COPYRIGHT
39 //
40 
41 /**
42 * @author Doug Royer / SoftwareAndServices
43 * @file
44 * This is a class and interfaces in C and C++ that represents calendar ATTACH
45 * data. It is designed to be compatible with RFC-iCalendar, RFC-iTIP, RFC-iMIP,
46 * CAP, and current WebDAV and CalDAV calendars.
47 */
48 #ifndef __DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_ATTACH_HPP__
49 #define __DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_ATTACH_HPP__
50 
51 #ifndef EXPORT_ICALENDAR
52 #ifdef BUILDING_LIBRARY_ICALENDAR
53 #define EXPORT_ICALENDAR EXPORT_OUT
54 #else
55 #define EXPORT_ICALENDAR EXPORT_IN
56 #endif
57 #endif
58 
59 #include <SaS/iCalendar/iCalendar.hpp>
60 #include <SaS/iCalendar/property.hpp>
61 #include <SaS/iCalendar/uri_property.hpp>
62 #include <SaS/iCalendar/uri.hpp>
63 #include <SaS/iCalendar/binary_property.hpp>
64 #include <SaS/iCalendar/binary.hpp>
65 
66 using namespace std;
70 
71 namespace SoftwareAndServices
72 {
73  namespace Library
74  {
75  namespace iCalendar
76  {
77 
78  /**
79  * @class attach
80  * An RFC-iCalendar implementation of ATTACH property.
81  */
82  class EXPORT_ICALENDAR attach
83  : public property
84  {
85 
86  public:
87 
88  /**
89  * attach Constructor.
90  */
91  attach();
92 
93  /**
94  * attach Constructor.
95  *
96  * @param Value The initial value.
97  */
98  attach(const binary * Value);
99 
100  /**
101  * attach Constructor.
102  *
103  * @param Value The initial value.
104  */
105  attach(const uri * Value);
106 
107  /**
108  * attach Destructor.
109  */
110  virtual ~attach();
111 
112  /**
113  * @return TRUE if the attach values are correct.
114  */
115  virtual bool valid() const;
116 
117  /**
118  * #Parse a attach.
119  *
120  * @param in An open Parse object.
121  *
122  * @param errors Where any errors may be stored.
123  *
124  * @return TRUE when the parse is successful.
125  */
126  virtual bool parse(Parse & in, component * errors);
127 
128  /**
129  * #Parse a attach.
130  *
131  * @param in A pointer to a string containing a attach.
132  *
133  * @param errors Where any errors may be stored.
134  *
135  * @return TRUE when the parse is successful.
136  */
137  bool parse(const char * in, component * errors);
138 
139  };
140 
141  /**
142  * @typedef attachVec
143  * An array of attach.
144  */
145  typedef vector<attach*> attachVec;
146 
147  }
148  }
149 }
150 
151 #endif /*__DOUGLAS_MARK_ROYER_LIBRARY_ICALENDAR_ATTACH_HPP__*/
STL namespace.
unsigned int errors[MAX_TESTS]