3
3
<title>LibOFX: ofx_sgml.cpp Source File</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
<!-- Generated by Doxygen 1.3.7 -->
6
<!-- Generated by Doxygen 1.3.9.1 -->
7
7
<div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
8
<h1>ofx_sgml.cpp</h1><a href="ofx__sgml_8cpp.html">Go to the documentation of this file.</a><pre class="fragment"><div>00001 <span class="comment">/***************************************************************************</span>
9
<a class="el" href="dir_000002.html">lib</a></div>
10
<h1>ofx_sgml.cpp</h1><a href="ofx__sgml_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/***************************************************************************</span>
9
11
00002 <span class="comment"> ofx_sgml.cpp</span>
10
12
00003 <span class="comment"> -------------------</span>
11
13
00004 <span class="comment"> copyright : (C) 2002 by Benoit Gr�goire</span>
63
65
<a name="l00067"></a><a class="code" href="classOFXApplication.html#a1">00067</a> <span class="keywordtype">void</span> <a class="code" href="classOFXApplication.html#a1">startElement</a> (<span class="keyword">const</span> StartElementEvent & event)
65
67
00069 string identifier;
66
00070 <a class="code" href="fx-0_87_80_2lib_2ofx__utilities_8hh.html#a2">CharStringtostring</a> (event.gi, identifier);
67
00071 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"startElement event received from OpenSP for element "</span> + identifier);
68
00070 <a class="code" href="fx-0_88_80_2lib_2ofx__utilities_8hh.html#a2">CharStringtostring</a> (event.gi, identifier);
69
00071 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"startElement event received from OpenSP for element "</span> + identifier);
69
71
00073 <a class="code" href="messages_8cpp.html#a1">position</a> = event.pos;
71
73
00075 <span class="keywordflow">switch</span> (event.contentType)
73
00077 <span class="keywordflow">case</span> StartElementEvent::empty: <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"StartElementEvent::empty\n"</span>);
75
00077 <span class="keywordflow">case</span> StartElementEvent::empty: <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"StartElementEvent::empty\n"</span>);
74
76
00078 <span class="keywordflow">break</span>;
75
00079 <span class="keywordflow">case</span> StartElementEvent::cdata: <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"StartElementEvent::cdata\n"</span>);
77
00079 <span class="keywordflow">case</span> StartElementEvent::cdata: <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"StartElementEvent::cdata\n"</span>);
76
78
00080 <span class="keywordflow">break</span>;
77
00081 <span class="keywordflow">case</span> StartElementEvent::rcdata: <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"StartElementEvent::rcdata\n"</span>);
79
00081 <span class="keywordflow">case</span> StartElementEvent::rcdata: <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"StartElementEvent::rcdata\n"</span>);
78
80
00082 <span class="keywordflow">break</span>;
79
00083 <span class="keywordflow">case</span> StartElementEvent::mixed: <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"StartElementEvent::mixed"</span>);
81
00083 <span class="keywordflow">case</span> StartElementEvent::mixed: <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"StartElementEvent::mixed"</span>);
80
82
00084 is_data_element = <span class="keyword">true</span>;
81
83
00085 <span class="keywordflow">break</span>;
82
00086 <span class="keywordflow">case</span> StartElementEvent::element: <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"StartElementEvent::element"</span>);
84
00086 <span class="keywordflow">case</span> StartElementEvent::element: <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"StartElementEvent::element"</span>);
83
85
00087 is_data_element = <span class="keyword">false</span>;
84
86
00088 <span class="keywordflow">break</span>;
85
87
00089 <span class="keywordflow">default</span>:
86
00090 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"Unknow SGML content type?!?!?!? OpenSP interface changed?"</span>);
88
00090 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"Unknow SGML content type?!?!?!? OpenSP interface changed?"</span>);
89
91
00093 <span class="keywordflow">if</span> (is_data_element == <span class="keyword">false</span>)
93
95
00097 <span class="keywordflow">if</span> (identifier == <span class="stringliteral">"OFX"</span>)
95
00099 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
97
00099 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
96
98
00100 MainContainer = <span class="keyword">new</span> <a class="code" href="classOfxMainContainer.html">OfxMainContainer</a> (libofx_context, curr_container_element, identifier);
97
99
00101 curr_container_element = MainContainer;
99
101
00103 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (identifier == <span class="stringliteral">"STATUS"</span>)
101
00105 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
103
00105 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
102
104
00106 curr_container_element = <span class="keyword">new</span> <a class="code" href="classOfxStatusContainer.html">OfxStatusContainer</a> (libofx_context, curr_container_element, identifier);
104
106
00108 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (identifier == <span class="stringliteral">"STMTRS"</span> ||
105
107
00109 identifier == <span class="stringliteral">"CCSTMTRS"</span> ||
106
108
00110 identifier == <span class="stringliteral">"INVSTMTRS"</span>)
108
00112 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
110
00112 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
109
111
00113 curr_container_element = <span class="keyword">new</span> <a class="code" href="classOfxStatementContainer.html">OfxStatementContainer</a> (libofx_context, curr_container_element, identifier);
111
113
00115 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (identifier == <span class="stringliteral">"BANKTRANLIST"</span>)
113
00117 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
115
00117 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
114
116
00118 <span class="comment">//BANKTRANLIST ignored, we will process it's attributes directly inside the STATEMENT,</span>
115
117
00119 <span class="keywordflow">if</span>(curr_container_element-><a class="code" href="classOfxGenericContainer.html#o0">type</a>!=<span class="stringliteral">"STATEMENT"</span>)
117
00121 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found while not inside a STATEMENT container"</span>);
119
00121 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found while not inside a STATEMENT container"</span>);
119
121
00123 <span class="keywordflow">else</span>
147
149
00151 identifier == <span class="stringliteral">"SPLIT"</span> ||
148
150
00152 identifier == <span class="stringliteral">"TRANSFER"</span> )
150
00154 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
152
00154 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
151
153
00155 curr_container_element = <span class="keyword">new</span> <a class="code" href="classOfxInvestmentTransactionContainer.html">OfxInvestmentTransactionContainer</a> (libofx_context, curr_container_element, identifier);
153
155
00157 <span class="comment">/*The following is a list of OFX elements whose attributes will be processed by the parent container*/</span>
156
158
00160 identifier == <span class="stringliteral">"INVTRAN"</span> ||
157
159
00161 identifier == <span class="stringliteral">"SECID"</span>)
159
00163 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
161
00163 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
160
162
00164 curr_container_element = <span class="keyword">new</span> <a class="code" href="classOfxPushUpContainer.html">OfxPushUpContainer</a> (libofx_context, curr_container_element, identifier);
163
165
00167 <span class="comment">/* The different types of accounts */</span>
164
166
00168 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (identifier == <span class="stringliteral">"BANKACCTFROM"</span> || identifier == <span class="stringliteral">"CCACCTFROM"</span> || identifier == <span class="stringliteral">"INVACCTFROM"</span>)
166
00170 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
168
00170 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
167
169
00171 curr_container_element = <span class="keyword">new</span> <a class="code" href="classOfxAccountContainer.html">OfxAccountContainer</a> (libofx_context, curr_container_element, identifier);
169
171
00173 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (identifier == <span class="stringliteral">"SECINFO"</span>)
171
00175 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
173
00175 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
172
174
00176 curr_container_element = <span class="keyword">new</span> <a class="code" href="classOfxSecurityContainer.html">OfxSecurityContainer</a> (libofx_context, curr_container_element, identifier);
174
176
00178 <span class="comment">/* The different types of balances */</span>
175
177
00179 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (identifier == <span class="stringliteral">"LEDGERBAL"</span> || identifier == <span class="stringliteral">"AVAILBAL"</span>)
177
00181 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
179
00181 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" found"</span>);
178
180
00182 curr_container_element = <span class="keyword">new</span> <a class="code" href="classOfxBalanceContainer.html">OfxBalanceContainer</a> (libofx_context, curr_container_element, identifier);
180
182
00184 <span class="keywordflow">else</span>
186
188
00190 <span class="keywordflow">else</span>
188
190
00192 <span class="comment">/* The element was a data element. OpenSP will call one or several data() callback with the data */</span>
189
00193 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Data element "</span> + identifier + <span class="stringliteral">" found"</span>);
191
00193 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Data element "</span> + identifier + <span class="stringliteral">" found"</span>);
190
192
00194 <span class="comment">/* There is a bug in OpenSP 1.3.4, which won't send endElement Event for some elements, and will instead send an error like "document type does not allow element "MESSAGE" here". Incoming_data should be empty in such a case, but it will not be if the endElement event was skiped. So we empty it, so at least the last element has a chance of having valid data */</span>
191
193
00195 <span class="keywordflow">if</span> (incoming_data != <span class="stringliteral">""</span>)
193
00197 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a9">ERROR</a>, <span class="stringliteral">"startElement: incoming_data should be empty! You are probably using OpenSP <= 1.3.4. The folowing data was lost: "</span> + incoming_data );
195
00197 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a9">ERROR</a>, <span class="stringliteral">"startElement: incoming_data should be empty! You are probably using OpenSP <= 1.3.4. The folowing data was lost: "</span> + incoming_data );
194
196
00198 incoming_data.assign (<span class="stringliteral">""</span>);
201
203
00209 string identifier;
202
204
00210 <span class="keywordtype">bool</span> end_element_for_data_element;
204
00212 <a class="code" href="fx-0_87_80_2lib_2ofx__utilities_8hh.html#a2">CharStringtostring</a> (event.gi, identifier);
206
00212 <a class="code" href="fx-0_88_80_2lib_2ofx__utilities_8hh.html#a2">CharStringtostring</a> (event.gi, identifier);
205
207
00213 end_element_for_data_element=is_data_element;
206
00214 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"endElement event received from OpenSP for element "</span> + identifier);
208
00214 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"endElement event received from OpenSP for element "</span> + identifier);
208
210
00216 <a class="code" href="messages_8cpp.html#a1">position</a> = event.pos;
209
211
00217 <span class="keywordflow">if</span> (curr_container_element == NULL)
211
00219 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"Tried to close a "</span>+identifier+<span class="stringliteral">" without a open element (NULL pointer)"</span>);
213
00219 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a9">ERROR</a>,<span class="stringliteral">"Tried to close a "</span>+identifier+<span class="stringliteral">" without a open element (NULL pointer)"</span>);
212
214
00220 incoming_data.assign (<span class="stringliteral">""</span>);
214
216
00222 <span class="keywordflow">else</span> <span class="comment">//curr_container_element != NULL</span>
216
218
00224 <span class="keywordflow">if</span> (end_element_for_data_element == <span class="keyword">true</span>)
218
00226 incoming_data = <a class="code" href="fx-0_87_80_2lib_2ofx__utilities_8hh.html#a6">strip_whitespace</a>(incoming_data);
220
00226 incoming_data = <a class="code" href="fx-0_88_80_2lib_2ofx__utilities_8hh.html#a6">strip_whitespace</a>(incoming_data);
220
222
00228 curr_container_element-><a class="code" href="classOfxGenericContainer.html#a4">add_attribute</a> (identifier, incoming_data);
221
00229 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"endElement: Added data '"</span> + incoming_data + <span class="stringliteral">"' from "</span> + identifier + <span class="stringliteral">" to "</span> + curr_container_element-><a class="code" href="classOfxGenericContainer.html#o0">type</a> + <span class="stringliteral">" container_element"</span>);
223
00229 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>,<span class="stringliteral">"endElement: Added data '"</span> + incoming_data + <span class="stringliteral">"' from "</span> + identifier + <span class="stringliteral">" to "</span> + curr_container_element-><a class="code" href="classOfxGenericContainer.html#o0">type</a> + <span class="stringliteral">" container_element"</span>);
222
224
00230 incoming_data.assign (<span class="stringliteral">""</span>);
223
225
00231 is_data_element=<span class="keyword">false</span>;
248
250
00256 <span class="keywordflow">if</span>(MainContainer != NULL)
250
252
00258 tmp_container_element-><a class="code" href="classOfxGenericContainer.html#a6">add_to_main_tree</a>();
251
00259 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" closed, object added to MainContainer"</span>);
253
00259 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"Element "</span> + identifier + <span class="stringliteral">" closed, object added to MainContainer"</span>);
253
255
00261 <span class="keywordflow">else</span>
255
00263 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a9">ERROR</a>, <span class="stringliteral">"MainContainer is NULL trying to add element "</span> + identifier);
257
00263 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a9">ERROR</a>, <span class="stringliteral">"MainContainer is NULL trying to add element "</span> + identifier);
259
261
00267 <span class="keywordflow">else</span>
261
00269 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a9">ERROR</a>, <span class="stringliteral">"Tried to close a "</span>+identifier+<span class="stringliteral">" but a "</span>+curr_container_element-><a class="code" href="classOfxGenericContainer.html#o0">type</a>+<span class="stringliteral">" is currently open."</span>);
263
00269 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (<a class="code" href="messages_8hh.html#a12a9">ERROR</a>, <span class="stringliteral">"Tried to close a "</span>+identifier+<span class="stringliteral">" but a "</span>+curr_container_element-><a class="code" href="classOfxGenericContainer.html#o0">type</a>+<span class="stringliteral">" is currently open."</span>);
269
271
00281 string tmp;
270
272
00282 <a class="code" href="messages_8cpp.html#a1">position</a> = event.pos;
271
00283 <a class="code" href="fx-0_87_80_2lib_2ofx__utilities_8hh.html#a3">AppendCharStringtostring</a> (event.data, incoming_data);
272
00284 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"data event received from OpenSP, incoming_data is now: "</span> + incoming_data);
273
00283 <a class="code" href="fx-0_88_80_2lib_2ofx__utilities_8hh.html#a3">AppendCharStringtostring</a> (event.data, incoming_data);
274
00284 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a10">PARSER</a>, <span class="stringliteral">"data event received from OpenSP, incoming_data is now: "</span> + incoming_data);
275
277
<a name="l00291"></a><a class="code" href="classOFXApplication.html#a4">00291</a> <span class="keywordtype">void</span> <a class="code" href="classOFXApplication.html#a4">error</a> (<span class="keyword">const</span> ErrorEvent & event)
277
279
00293 string message;
278
280
00294 string string_buf;
279
00295 <a class="code" href="messages_8hh.html#a12">OfxMsgType</a> error_type = <a class="code" href="messages_8hh.html#a12a9">ERROR</a>;
281
00295 <a class="code" href="messages_8hh.html#a12">OfxMsgType</a> error_type = ERROR;
281
283
00297 <a class="code" href="messages_8cpp.html#a1">position</a> = event.pos;
282
284
00298 message = message + <span class="stringliteral">"OpenSP parser: "</span>;
283
285
00299 <span class="keywordflow">switch</span> (event.type){
284
286
00300 <span class="keywordflow">case</span> SGMLApplication::ErrorEvent::quantity:
285
287
00301 message = message + <span class="stringliteral">"quantity (Exceeding a quantity limit):"</span>;
286
00302 error_type = <a class="code" href="messages_8hh.html#a12a9">ERROR</a>;
288
00302 error_type = ERROR;
287
289
00303 <span class="keywordflow">break</span>;
288
290
00304 <span class="keywordflow">case</span> SGMLApplication::ErrorEvent::idref:
289
291
00305 message = message + <span class="stringliteral">"idref (An IDREF to a non-existent ID):"</span>;
290
00306 error_type = <a class="code" href="messages_8hh.html#a12a9">ERROR</a>;
292
00306 error_type = ERROR;
291
293
00307 <span class="keywordflow">break</span>;
292
294
00308 <span class="keywordflow">case</span> SGMLApplication::ErrorEvent::capacity:
293
295
00309 message = message + <span class="stringliteral">"capacity (Exceeding a capacity limit):"</span>;
294
00310 error_type = <a class="code" href="messages_8hh.html#a12a9">ERROR</a>;
296
00310 error_type = ERROR;
295
297
00311 <span class="keywordflow">break</span>;
296
298
00312 <span class="keywordflow">case</span> SGMLApplication::ErrorEvent::otherError:
297
299
00313 message = message + <span class="stringliteral">"otherError (misc parse error):"</span>;
298
00314 error_type = <a class="code" href="messages_8hh.html#a12a9">ERROR</a>;
300
00314 error_type = ERROR;
299
301
00315 <span class="keywordflow">break</span>;
300
302
00316 <span class="keywordflow">case</span> SGMLApplication::ErrorEvent::warning:
301
303
00317 message = message + <span class="stringliteral">"warning (Not actually an error.):"</span>;
302
00318 error_type = <a class="code" href="messages_8hh.html#a12a8">WARNING</a>;
304
00318 error_type = WARNING;
303
305
00319 <span class="keywordflow">break</span>;
304
306
00320 <span class="keywordflow">case</span> SGMLApplication::ErrorEvent::info:
305
307
00321 message = message + <span class="stringliteral">"info (An informationnal message. Not actually an error):"</span>;
306
00322 error_type = <a class="code" href="messages_8hh.html#a12a7">INFO</a>;
308
00322 error_type = INFO;
307
309
00323 <span class="keywordflow">break</span>;
308
310
00324 <span class="keywordflow">default</span>:
309
311
00325 message = message + <span class="stringliteral">"OpenSP sent an unknown error to LibOFX (You probably have a newer version of OpenSP):"</span>;
311
00327 message = message + <span class="stringliteral">"\n"</span> + <a class="code" href="fx-0_87_80_2lib_2ofx__utilities_8hh.html#a2">CharStringtostring</a> (event.message, string_buf);
312
00328 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a> (error_type, message);
313
00327 message = message + <span class="stringliteral">"\n"</span> + <a class="code" href="fx-0_88_80_2lib_2ofx__utilities_8hh.html#a2">CharStringtostring</a> (event.message, string_buf);
314
00328 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a> (error_type, message);
315
317
<a name="l00335"></a><a class="code" href="classOFXApplication.html#a5">00335</a> <span class="keywordtype">void</span> <a class="code" href="classOFXApplication.html#a5">openEntityChange</a> (<span class="keyword">const</span> OpenEntityPtr & para_entity_ptr)
317
00337 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,<span class="stringliteral">"openEntityChange()\n"</span>);
319
00337 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,<span class="stringliteral">"openEntityChange()\n"</span>);
318
320
00338 <a class="code" href="messages_8cpp.html#a0">entity_ptr</a> = para_entity_ptr;
322
324
00342 <span class="keyword">private</span>:
325
<a name="l00348"></a><a class="code" href="fx-0_87_80_2lib_2ofx__sgml_8hh.html#a0">00348</a> <span class="keywordtype">int</span> <a class="code" href="fx-0_87_80_2lib_2ofx__sgml_8hh.html#a0">ofx_proc_sgml</a>(LibofxContext * libofx_context, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])
327
<a name="l00348"></a><a class="code" href="fx-0_88_80_2lib_2ofx__sgml_8hh.html#a0">00348</a> <span class="keywordtype">int</span> <a class="code" href="fx-0_88_80_2lib_2ofx__sgml_8hh.html#a0">ofx_proc_sgml</a>(LibofxContext * libofx_context, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])
327
00350 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,<span class="stringliteral">"Begin ofx_proc_sgml()"</span>);
328
00351 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,argv[0]);
329
00352 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,argv[1]);
330
00353 <a class="code" href="fx-0_87_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,argv[2]);
329
00350 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,<span class="stringliteral">"Begin ofx_proc_sgml()"</span>);
330
00351 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,argv[0]);
331
00352 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,argv[1]);
332
00353 <a class="code" href="fx-0_88_80_2lib_2messages_8hh.html#a11">message_out</a>(<a class="code" href="messages_8hh.html#a12a0">DEBUG</a>,argv[2]);
332
334
00355 ParserEventGeneratorKit parserKit;
333
335
00356 parserKit.setOption (ParserEventGeneratorKit::showOpenEntities);