summaryrefslogtreecommitdiff
path: root/apidocs/icalrecur_8h_source.html
blob: 8da8c70d9a6ffc2470cefaad5706b8c5a2b4f6d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Libical API Documentation: icalrecur.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Libical API Documentation
   &#160;<span id="projectnumber">3.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b7a0ea939f6e83384f3c571d31a84be9.html">libical</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">icalrecur.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="icalrecur_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*======================================================================</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> FILE: icalrecur.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> CREATOR: eric 20 March 2000</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> (C) COPYRIGHT 2000, Eric Busboom &lt;eric@civicknowledge.com&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> This library is free software; you can redistribute it and/or modify</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> it under the terms of either:</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">    The LGPL as published by the Free Software Foundation, version</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">    2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> Or:</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">    The Mozilla Public License Version 2.0. You may obtain a copy of</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">    the License at https://www.mozilla.org/MPL/</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">========================================================================*/</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#ifndef ICALRECUR_H</span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#define ICALRECUR_H</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#include &quot;libical_ical_export.h&quot;</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="icalarray_8h.html">icalarray.h</a>&quot;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="icaltime_8h.html">icaltime.h</a>&quot;</span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment"> * Recurrence enumerations</span></div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> icalrecurrencetype_frequency</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;{</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="comment">/* These enums are used to index an array, so don&#39;t change the</span></div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">       order or the integers */</span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    ICAL_SECONDLY_RECURRENCE = 0,</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    ICAL_MINUTELY_RECURRENCE = 1,</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    ICAL_HOURLY_RECURRENCE = 2,</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    ICAL_DAILY_RECURRENCE = 3,</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    ICAL_WEEKLY_RECURRENCE = 4,</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    ICAL_MONTHLY_RECURRENCE = 5,</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    ICAL_YEARLY_RECURRENCE = 6,</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    ICAL_NO_RECURRENCE = 7</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;} icalrecurrencetype_frequency;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> icalrecurrencetype_weekday</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;{</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    ICAL_NO_WEEKDAY,</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    ICAL_SUNDAY_WEEKDAY,</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    ICAL_MONDAY_WEEKDAY,</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    ICAL_TUESDAY_WEEKDAY,</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    ICAL_WEDNESDAY_WEEKDAY,</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    ICAL_THURSDAY_WEEKDAY,</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    ICAL_FRIDAY_WEEKDAY,</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    ICAL_SATURDAY_WEEKDAY</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;} icalrecurrencetype_weekday;</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> icalrecurrencetype_skip</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;{</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    ICAL_SKIP_BACKWARD = 0,</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    ICAL_SKIP_FORWARD,</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    ICAL_SKIP_OMIT,</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    ICAL_SKIP_UNDEFINED</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;} icalrecurrencetype_skip;</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="keyword">enum</span> icalrecurrence_array_max_values</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;{</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    ICAL_RECURRENCE_ARRAY_MAX = 0x7f7f,</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    ICAL_RECURRENCE_ARRAY_MAX_BYTE = 0x7f</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;};</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment"> * Recurrence enumerations conversion routines.</span></div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;LIBICAL_ICAL_EXPORT icalrecurrencetype_frequency icalrecur_string_to_freq(<span class="keyword">const</span> <span class="keywordtype">char</span> *str);</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;LIBICAL_ICAL_EXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> *icalrecur_freq_to_string(icalrecurrencetype_frequency kind);</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;LIBICAL_ICAL_EXPORT icalrecurrencetype_skip icalrecur_string_to_skip(<span class="keyword">const</span> <span class="keywordtype">char</span> *str);</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;LIBICAL_ICAL_EXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> *icalrecur_skip_to_string(icalrecurrencetype_skip kind);</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;LIBICAL_ICAL_EXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> *icalrecur_weekday_to_string(icalrecurrencetype_weekday kind);</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;LIBICAL_ICAL_EXPORT icalrecurrencetype_weekday icalrecur_string_to_weekday(<span class="keyword">const</span> <span class="keywordtype">char</span> *str);</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">/* See RFC 5545 Section 3.3.10, RECUR Value, and RFC 7529</span></div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment"> * for an explanation of the values and fields in struct icalrecurrencetype.</span></div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="comment"> * The maximums below are based on lunisolar leap years (13 months)</span></div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor">#define ICAL_BY_SECOND_SIZE     62      </span><span class="comment">/* 0 to 60 */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="icalrecur_8h.html#acec51b2d651f24e31b00627b60b12728">  141</a></span>&#160;<span class="preprocessor">#define ICAL_BY_MINUTE_SIZE     61      </span><span class="comment">/* 0 to 59 */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#define ICAL_BY_HOUR_SIZE       25      </span><span class="comment">/* 0 to 23 */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="preprocessor">#define ICAL_BY_MONTH_SIZE      14      </span><span class="comment">/* 1 to 13 */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="preprocessor">#define ICAL_BY_MONTHDAY_SIZE   32      </span><span class="comment">/* 1 to 31 */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="preprocessor">#define ICAL_BY_WEEKNO_SIZE     56      </span><span class="comment">/* 1 to 55 */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="preprocessor">#define ICAL_BY_YEARDAY_SIZE    386     </span><span class="comment">/* 1 to 385 */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="preprocessor">#define ICAL_BY_SETPOS_SIZE     ICAL_BY_YEARDAY_SIZE          </span><span class="comment">/* 1 to N */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="preprocessor">#define ICAL_BY_DAY_SIZE        7*(ICAL_BY_WEEKNO_SIZE-1)+1   </span><span class="comment">/* 1 to N */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structicalrecurrencetype.html">  151</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structicalrecurrencetype.html">icalrecurrencetype</a></div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;{</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    icalrecurrencetype_frequency freq;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="comment">/* until and count are mutually exclusive. */</span></div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keyword">struct </span><a class="code" href="structicaltimetype.html">icaltimetype</a> until;</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordtype">int</span> count;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordtype">short</span> interval;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    icalrecurrencetype_weekday week_start;</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="comment">/* The BY* parameters can each take a list of values. Here I</span></div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="comment">     * assume that the list of values will not be larger than the</span></div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment">     * range of the value -- that is, the client will not name a</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment">     * value more than once.</span></div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="comment">     * Each of the lists is terminated with the value</span></div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="comment">     * ICAL_RECURRENCE_ARRAY_MAX unless the list is full.</span></div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keywordtype">short</span> by_second[<a class="code" href="icalrecur_8h.html#acec51b2d651f24e31b00627b60b12728">ICAL_BY_SECOND_SIZE</a>];</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="keywordtype">short</span> by_minute[ICAL_BY_MINUTE_SIZE];</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordtype">short</span> by_hour[ICAL_BY_HOUR_SIZE];</div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structicalrecurrencetype.html#abf0eb04e3bb9028e18c9c4c1e0462b9d">  175</a></span>&#160;    <span class="keywordtype">short</span> <a class="code" href="structicalrecurrencetype.html#abf0eb04e3bb9028e18c9c4c1e0462b9d">by_day</a>[ICAL_BY_DAY_SIZE];             </div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="keywordtype">short</span> by_month_day[ICAL_BY_MONTHDAY_SIZE];</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="keywordtype">short</span> by_year_day[ICAL_BY_YEARDAY_SIZE];</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordtype">short</span> by_week_no[ICAL_BY_WEEKNO_SIZE];</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structicalrecurrencetype.html#af3f6d789f51c7772879b6c8e3101af9e">  188</a></span>&#160;    <span class="keywordtype">short</span> <a class="code" href="structicalrecurrencetype.html#af3f6d789f51c7772879b6c8e3101af9e">by_month</a>[ICAL_BY_MONTH_SIZE];         </div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordtype">short</span> by_set_pos[ICAL_BY_SETPOS_SIZE];</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="comment">/* For RSCALE extension (RFC 7529) */</span></div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordtype">char</span> *rscale;</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    icalrecurrencetype_skip skip;</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;};</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">int</span> icalrecurrencetype_rscale_is_supported(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;LIBICAL_ICAL_EXPORT <a class="code" href="struct__icalarray.html">icalarray</a> *icalrecurrencetype_rscale_supported_calendars(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">void</span> icalrecurrencetype_clear(<span class="keyword">struct</span> <a class="code" href="structicalrecurrencetype.html">icalrecurrencetype</a> *r);</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment"> * Routines to decode the day values of the by_day array</span></div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;LIBICAL_ICAL_EXPORT <span class="keyword">enum</span> icalrecurrencetype_weekday <a class="code" href="icalrecur_8h.html#a96c160e7e6b16e0e369c540f2ee164c7">icalrecurrencetype_day_day_of_week</a>(<span class="keywordtype">short</span> day);</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">int</span> <a class="code" href="icalrecur_8h.html#aa730e9ac327064456902076b718400f4">icalrecurrencetype_day_position</a>(<span class="keywordtype">short</span> day);</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160; </div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment"> * Routines to decode the &#39;month&#39; element of the by_month array</span></div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">int</span> icalrecurrencetype_month_is_leap(<span class="keywordtype">short</span> <a class="code" href="structicaltimetype.html#abfb15dfde907211cafd3cd6cafa5531d">month</a>);</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">int</span> icalrecurrencetype_month_month(<span class="keywordtype">short</span> <a class="code" href="structicaltimetype.html#abfb15dfde907211cafd3cd6cafa5531d">month</a>);</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="comment"> * Recurrence rule parser</span></div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;LIBICAL_ICAL_EXPORT <span class="keyword">struct </span><a class="code" href="structicalrecurrencetype.html">icalrecurrencetype</a> <a class="code" href="icalrecur_8h.html#a0e8ebcf355ba22299f553f8f5e657926">icalrecurrencetype_from_string</a>(const char *str);</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">char</span> *icalrecurrencetype_as_string(<span class="keyword">struct</span> <a class="code" href="structicalrecurrencetype.html">icalrecurrencetype</a> *recur);</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">char</span> *icalrecurrencetype_as_string_r(<span class="keyword">struct</span> <a class="code" href="structicalrecurrencetype.html">icalrecurrencetype</a> *recur);</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="comment"> * Recurrence iteration routines</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structicalrecur__iterator__impl.html">icalrecur_iterator_impl</a> <a class="code" href="structicalrecur__iterator__impl.html">icalrecur_iterator</a>;</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;LIBICAL_ICAL_EXPORT <a class="code" href="structicalrecur__iterator__impl.html">icalrecur_iterator</a> *<a class="code" href="icalrecur_8h.html#a3259c2b9b03763d8ee02868816d6261a">icalrecur_iterator_new</a>(<span class="keyword">struct</span> <a class="code" href="structicalrecurrencetype.html">icalrecurrencetype</a> rule,</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;                                                               <span class="keyword">struct</span> <a class="code" href="structicaltimetype.html">icaltimetype</a> dtstart);</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160; </div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">int</span> <a class="code" href="icalrecur_8h.html#ab632c95c37375ef11d62d8742e8406d5">icalrecur_iterator_set_start</a>(<a class="code" href="structicalrecur__iterator__impl.html">icalrecur_iterator</a> *impl,</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;                                                     <span class="keyword">struct</span> <a class="code" href="structicaltimetype.html">icaltimetype</a> start);</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;LIBICAL_ICAL_EXPORT <span class="keyword">struct </span><a class="code" href="structicaltimetype.html">icaltimetype</a> <a class="code" href="icalrecur_8h.html#a2e10af320612cd7ab8c6fb6177ade3e3">icalrecur_iterator_next</a>(<a class="code" href="structicalrecur__iterator__impl.html">icalrecur_iterator</a> *);</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160; </div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">void</span> <a class="code" href="icalrecur_8h.html#a14daf9df313fdad9f536a7d9242b4cdc">icalrecur_iterator_free</a>(<a class="code" href="structicalrecur__iterator__impl.html">icalrecur_iterator</a> *);</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160; </div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;LIBICAL_ICAL_EXPORT <span class="keywordtype">int</span> <a class="code" href="icalrecur_8h.html#a08bc5e484eb46ba9e02fb037e2e01c29">icalrecur_expand_recurrence</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *rule, time_t start,</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                                                    <span class="keywordtype">int</span> count, time_t *array);</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aicalrecur_8h_html_a14daf9df313fdad9f536a7d9242b4cdc"><div class="ttname"><a href="icalrecur_8h.html#a14daf9df313fdad9f536a7d9242b4cdc">icalrecur_iterator_free</a></div><div class="ttdeci">void icalrecur_iterator_free(icalrecur_iterator *)</div><div class="ttdef"><b>Definition:</b> icalrecur.c:1943</div></div>
<div class="ttc" id="astruct__icalarray_html"><div class="ttname"><a href="struct__icalarray.html">_icalarray</a></div><div class="ttdef"><b>Definition:</b> icalarray.h:36</div></div>
<div class="ttc" id="aicalrecur_8h_html_a0e8ebcf355ba22299f553f8f5e657926"><div class="ttname"><a href="icalrecur_8h.html#a0e8ebcf355ba22299f553f8f5e657926">icalrecurrencetype_from_string</a></div><div class="ttdeci">struct icalrecurrencetype icalrecurrencetype_from_string(const char *str)</div><div class="ttdef"><b>Definition:</b> icalrecur.c:551</div></div>
<div class="ttc" id="aicalarray_8h_html"><div class="ttname"><a href="icalarray_8h.html">icalarray.h</a></div><div class="ttdoc">An array of arbitrarily-sized elements which grows dynamically as elements are added.</div></div>
<div class="ttc" id="aicalrecur_8h_html_ab632c95c37375ef11d62d8742e8406d5"><div class="ttname"><a href="icalrecur_8h.html#ab632c95c37375ef11d62d8742e8406d5">icalrecur_iterator_set_start</a></div><div class="ttdeci">int icalrecur_iterator_set_start(icalrecur_iterator *impl, struct icaltimetype start)</div><div class="ttdef"><b>Definition:</b> icalrecur.c:3003</div></div>
<div class="ttc" id="astructicaltimetype_html"><div class="ttname"><a href="structicaltimetype.html">icaltimetype</a></div><div class="ttdef"><b>Definition:</b> icaltime.h:105</div></div>
<div class="ttc" id="aicalrecur_8h_html_a08bc5e484eb46ba9e02fb037e2e01c29"><div class="ttname"><a href="icalrecur_8h.html#a08bc5e484eb46ba9e02fb037e2e01c29">icalrecur_expand_recurrence</a></div><div class="ttdeci">int icalrecur_expand_recurrence(const char *rule, time_t start, int count, time_t *array)</div><div class="ttdoc">Fills an array with the 'count' number of occurrences generated by the rrule.</div><div class="ttdef"><b>Definition:</b> icalrecur.c:3079</div></div>
<div class="ttc" id="aicalrecur_8h_html_a2e10af320612cd7ab8c6fb6177ade3e3"><div class="ttname"><a href="icalrecur_8h.html#a2e10af320612cd7ab8c6fb6177ade3e3">icalrecur_iterator_next</a></div><div class="ttdeci">struct icaltimetype icalrecur_iterator_next(icalrecur_iterator *)</div><div class="ttdef"><b>Definition:</b> icalrecur.c:2795</div></div>
<div class="ttc" id="aicalrecur_8h_html_aa730e9ac327064456902076b718400f4"><div class="ttname"><a href="icalrecur_8h.html#aa730e9ac327064456902076b718400f4">icalrecurrencetype_day_position</a></div><div class="ttdeci">int icalrecurrencetype_day_position(short day)</div><div class="ttdoc">Decodes a day to a position of the weekday.</div><div class="ttdef"><b>Definition:</b> icalrecur.c:3050</div></div>
<div class="ttc" id="astructicalrecur__iterator__impl_html"><div class="ttname"><a href="structicalrecur__iterator__impl.html">icalrecur_iterator_impl</a></div><div class="ttdef"><b>Definition:</b> icalrecur.c:859</div></div>
<div class="ttc" id="aicalrecur_8h_html_a96c160e7e6b16e0e369c540f2ee164c7"><div class="ttname"><a href="icalrecur_8h.html#a96c160e7e6b16e0e369c540f2ee164c7">icalrecurrencetype_day_day_of_week</a></div><div class="ttdeci">enum icalrecurrencetype_weekday icalrecurrencetype_day_day_of_week(short day)</div><div class="ttdoc">Decodes a day to a weekday.</div><div class="ttdef"><b>Definition:</b> icalrecur.c:3045</div></div>
<div class="ttc" id="astructicalrecurrencetype_html_abf0eb04e3bb9028e18c9c4c1e0462b9d"><div class="ttname"><a href="structicalrecurrencetype.html#abf0eb04e3bb9028e18c9c4c1e0462b9d">icalrecurrencetype::by_day</a></div><div class="ttdeci">short by_day[7 *(56 -1)+1]</div><div class="ttdoc">Encoded value.</div><div class="ttdef"><b>Definition:</b> icalrecur.h:175</div></div>
<div class="ttc" id="aicalrecur_8h_html_a3259c2b9b03763d8ee02868816d6261a"><div class="ttname"><a href="icalrecur_8h.html#a3259c2b9b03763d8ee02868816d6261a">icalrecur_iterator_new</a></div><div class="ttdeci">icalrecur_iterator * icalrecur_iterator_new(struct icalrecurrencetype rule, struct icaltimetype dtstart)</div><div class="ttdef"><b>Definition:</b> icalrecur.c:1830</div></div>
<div class="ttc" id="astructicalrecurrencetype_html"><div class="ttname"><a href="structicalrecurrencetype.html">icalrecurrencetype</a></div><div class="ttdef"><b>Definition:</b> icalrecur.h:152</div></div>
<div class="ttc" id="astructicalrecurrencetype_html_af3f6d789f51c7772879b6c8e3101af9e"><div class="ttname"><a href="structicalrecurrencetype.html#af3f6d789f51c7772879b6c8e3101af9e">icalrecurrencetype::by_month</a></div><div class="ttdeci">short by_month[14]</div><div class="ttdoc">Encoded value.</div><div class="ttdef"><b>Definition:</b> icalrecur.h:188</div></div>
<div class="ttc" id="aicalrecur_8h_html_acec51b2d651f24e31b00627b60b12728"><div class="ttname"><a href="icalrecur_8h.html#acec51b2d651f24e31b00627b60b12728">ICAL_BY_SECOND_SIZE</a></div><div class="ttdeci">#define ICAL_BY_SECOND_SIZE</div><div class="ttdef"><b>Definition:</b> icalrecur.h:140</div></div>
<div class="ttc" id="astructicaltimetype_html_abfb15dfde907211cafd3cd6cafa5531d"><div class="ttname"><a href="structicaltimetype.html#abfb15dfde907211cafd3cd6cafa5531d">icaltimetype::month</a></div><div class="ttdeci">int month</div><div class="ttdef"><b>Definition:</b> icaltime.h:107</div></div>
<div class="ttc" id="aicaltime_8h_html"><div class="ttname"><a href="icaltime_8h.html">icaltime.h</a></div><div class="ttdoc">struct icaltimetype is a pseudo-object that abstracts time handling.</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>