File: fx-0_89_80_2lib_2ofx__request_8cpp-source.html

package info (click to toggle)
libofx 1%3A0.9.0-3
  • links: PTS
  • area: main
  • in suites: lenny, squeeze
  • size: 9,864 kB
  • ctags: 31,331
  • sloc: sh: 8,861; cpp: 5,714; ansic: 2,524; makefile: 204; xml: 61
file content (137 lines) | stat: -rw-r--r-- 15,234 bytes parent folder | download
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>LibOFX: ofx_request.cpp Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
  </ul>
</div>
<h1>ofx_request.cpp</h1><a href="fx-0_89_80_2lib_2ofx__request_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/***************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment">         ofx_request.cpp </span>
<a name="l00003"></a>00003 <span class="comment">                             -------------------</span>
<a name="l00004"></a>00004 <span class="comment">    copyright            : (C) 2005 by Ace Jones</span>
<a name="l00005"></a>00005 <span class="comment">    email                : acejones@users.sourceforge.net</span>
<a name="l00006"></a>00006 <span class="comment">***************************************************************************/</span>
<a name="l00011"></a>00011 <span class="comment">/***************************************************************************</span>
<a name="l00012"></a>00012 <span class="comment"> *                                                                         *</span>
<a name="l00013"></a>00013 <span class="comment"> *   This program is free software; you can redistribute it and/or modify  *</span>
<a name="l00014"></a>00014 <span class="comment"> *   it under the terms of the GNU General Public License as published by  *</span>
<a name="l00015"></a>00015 <span class="comment"> *   the Free Software Foundation; either version 2 of the License, or     *</span>
<a name="l00016"></a>00016 <span class="comment"> *   (at your option) any later version.                                   *</span>
<a name="l00017"></a>00017 <span class="comment"> *                                                                         *</span>
<a name="l00018"></a>00018 <span class="comment"> ***************************************************************************/</span>
<a name="l00019"></a>00019 
<a name="l00020"></a>00020 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#include &lt;config.h&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#endif</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;string&gt;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="fx-0_89_80_2lib_2messages_8hh.html" title="Message IO functionality.">messages.hh</a>"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="libofx-0_89_80_2inc_2libofx_8h.html" title="Main header file containing the LibOfx API.">libofx.h</a>"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="fx-0_89_80_2lib_2ofx__request_8hh.html" title="Declaration of an OfxRequests to create an OFX file containing a generic request...">ofx_request.hh</a>"</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="keyword">using namespace </span>std;
<a name="l00030"></a>00030 
<a name="l00031"></a><a class="code" href="fx-0_89_80_2lib_2ofx__request_8cpp.html#2f86a163dc83453b02683f1d20d6b3d6">00031</a> <span class="keywordtype">string</span> <a class="code" href="ofx__request_8cpp.html#2f86a163dc83453b02683f1d20d6b3d6">time_t_to_ofxdatetime</a>( time_t time )
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033   <span class="keyword">static</span> <span class="keywordtype">char</span> buffer[51];
<a name="l00034"></a>00034 
<a name="l00035"></a>00035   strftime( buffer, 50, <span class="stringliteral">"%Y%m%d%H%M%S.000"</span>, localtime(&amp;time) );
<a name="l00036"></a>00036   buffer[50] = 0;
<a name="l00037"></a>00037   
<a name="l00038"></a>00038   <span class="keywordflow">return</span> string(buffer);
<a name="l00039"></a>00039 }
<a name="l00040"></a>00040 
<a name="l00041"></a><a class="code" href="fx-0_89_80_2lib_2ofx__request_8cpp.html#34e84f6346e9d35feba51592e3db190c">00041</a> <span class="keywordtype">string</span> <a class="code" href="ofx__request_8cpp.html#34e84f6346e9d35feba51592e3db190c">time_t_to_ofxdate</a>( time_t time )
<a name="l00042"></a>00042 {
<a name="l00043"></a>00043   <span class="keyword">static</span> <span class="keywordtype">char</span> buffer[51];
<a name="l00044"></a>00044 
<a name="l00045"></a>00045   strftime( buffer, 50, <span class="stringliteral">"%Y%m%d"</span>, localtime(&amp;time) );
<a name="l00046"></a>00046   buffer[50] = 0;
<a name="l00047"></a>00047   
<a name="l00048"></a>00048   <span class="keywordflow">return</span> string(buffer);
<a name="l00049"></a>00049 }
<a name="l00050"></a>00050 
<a name="l00051"></a><a class="code" href="fx-0_89_80_2lib_2ofx__request_8cpp.html#38a94b99f351615ee7a342f409db8499">00051</a> <span class="keywordtype">string</span> <a class="code" href="ofx__request_8cpp.html#38a94b99f351615ee7a342f409db8499">OfxHeader</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *hver){
<a name="l00052"></a>00052   <span class="keywordflow">if</span> (hver==NULL || hver[0]==0)
<a name="l00053"></a>00053     hver=<span class="stringliteral">"102"</span>;
<a name="l00054"></a>00054 
<a name="l00055"></a>00055   <span class="keywordflow">if</span> (strcmp(hver, <span class="stringliteral">"103"</span>)==0)
<a name="l00056"></a>00056     <span class="comment">/* TODO: check for differences in version 102 and 103 */</span>
<a name="l00057"></a>00057     <span class="keywordflow">return</span> string(<span class="stringliteral">"OFXHEADER:100\r\n"</span>
<a name="l00058"></a>00058                   <span class="stringliteral">"DATA:OFXSGML\r\n"</span>
<a name="l00059"></a>00059                   <span class="stringliteral">"VERSION:103\r\n"</span>
<a name="l00060"></a>00060                   <span class="stringliteral">"SECURITY:NONE\r\n"</span>
<a name="l00061"></a>00061                   <span class="stringliteral">"ENCODING:USASCII\r\n"</span>
<a name="l00062"></a>00062                   <span class="stringliteral">"CHARSET:1252\r\n"</span>
<a name="l00063"></a>00063                   <span class="stringliteral">"COMPRESSION:NONE\r\n"</span>
<a name="l00064"></a>00064                   <span class="stringliteral">"OLDFILEUID:NONE\r\n"</span>
<a name="l00065"></a>00065                   <span class="stringliteral">"NEWFILEUID:"</span>)
<a name="l00066"></a>00066       + <a class="code" href="ofx__request_8cpp.html#2f86a163dc83453b02683f1d20d6b3d6">time_t_to_ofxdatetime</a>( time(NULL) )
<a name="l00067"></a>00067       + string(<span class="stringliteral">"\r\n\r\n"</span>);
<a name="l00068"></a>00068   <span class="keywordflow">else</span>
<a name="l00069"></a>00069     <span class="keywordflow">return</span> string(<span class="stringliteral">"OFXHEADER:100\r\n"</span>
<a name="l00070"></a>00070                   <span class="stringliteral">"DATA:OFXSGML\r\n"</span>
<a name="l00071"></a>00071                   <span class="stringliteral">"VERSION:102\r\n"</span>
<a name="l00072"></a>00072                   <span class="stringliteral">"SECURITY:NONE\r\n"</span>
<a name="l00073"></a>00073                   <span class="stringliteral">"ENCODING:USASCII\r\n"</span>
<a name="l00074"></a>00074                   <span class="stringliteral">"CHARSET:1252\r\n"</span>
<a name="l00075"></a>00075                   <span class="stringliteral">"COMPRESSION:NONE\r\n"</span>
<a name="l00076"></a>00076                   <span class="stringliteral">"OLDFILEUID:NONE\r\n"</span>
<a name="l00077"></a>00077                   <span class="stringliteral">"NEWFILEUID:"</span>)
<a name="l00078"></a>00078       + <a class="code" href="ofx__request_8cpp.html#2f86a163dc83453b02683f1d20d6b3d6">time_t_to_ofxdatetime</a>( time(NULL) )
<a name="l00079"></a>00079       + string(<span class="stringliteral">"\r\n\r\n"</span>);
<a name="l00080"></a>00080 }
<a name="l00081"></a>00081 
<a name="l00082"></a>00082 <a class="code" href="classOfxAggregate.html" title="A single aggregate as described in the OFX 1.02 specification.">OfxAggregate</a> <a class="code" href="classOfxRequest.html#b653f985a56f4cff3e87a82c700f4450">OfxRequest::SignOnRequest</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
<a name="l00083"></a>00083 <span class="keyword"></span>{
<a name="l00084"></a>00084   <a class="code" href="classOfxAggregate.html" title="A single aggregate as described in the OFX 1.02 specification.">OfxAggregate</a> fiTag(<span class="stringliteral">"FI"</span>);
<a name="l00085"></a>00085   fiTag.Add( <span class="stringliteral">"ORG"</span>, <a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#8fac30b84cbaab576b14c1c9c9f583b2">org</a> );
<a name="l00086"></a>00086   <span class="keywordflow">if</span> ( strlen(<a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#ae44e5ea969520f461489956fce0ed58">fid</a>) &gt; 0 )
<a name="l00087"></a>00087     fiTag.Add( <span class="stringliteral">"FID"</span>, <a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#ae44e5ea969520f461489956fce0ed58">fid</a> );
<a name="l00088"></a>00088 
<a name="l00089"></a>00089   <a class="code" href="classOfxAggregate.html" title="A single aggregate as described in the OFX 1.02 specification.">OfxAggregate</a> sonrqTag(<span class="stringliteral">"SONRQ"</span>);
<a name="l00090"></a>00090   sonrqTag.Add( <span class="stringliteral">"DTCLIENT"</span>, <a class="code" href="ofx__request_8cpp.html#2f86a163dc83453b02683f1d20d6b3d6">time_t_to_ofxdatetime</a>( time(NULL) ) );
<a name="l00091"></a>00091   sonrqTag.Add( <span class="stringliteral">"USERID"</span>, <a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#655c23be41b28f250175501414523825">userid</a>);
<a name="l00092"></a>00092   sonrqTag.Add( <span class="stringliteral">"USERPASS"</span>, <a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#8507687737334b8e5559d8aafe190878">userpass</a>);
<a name="l00093"></a>00093   sonrqTag.Add( <span class="stringliteral">"LANGUAGE"</span>,<span class="stringliteral">"ENG"</span>);
<a name="l00094"></a>00094   sonrqTag.Add( fiTag );
<a name="l00095"></a>00095   <span class="keywordflow">if</span> ( strlen(<a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#0589bf38951c4e698236146c019d4cd1">appid</a>) &gt; 0 )
<a name="l00096"></a>00096       sonrqTag.Add( <span class="stringliteral">"APPID"</span>, <a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#0589bf38951c4e698236146c019d4cd1">appid</a>);
<a name="l00097"></a>00097   <span class="keywordflow">else</span>
<a name="l00098"></a>00098       sonrqTag.Add( <span class="stringliteral">"APPID"</span>,<span class="stringliteral">"QWIN"</span>);
<a name="l00099"></a>00099   <span class="keywordflow">if</span> ( strlen(<a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#f870ca3b27992fb53f203d23f33d097c">appver</a>) &gt; 0 )
<a name="l00100"></a>00100     sonrqTag.Add( <span class="stringliteral">"APPVER"</span>, <a class="code" href="classOfxRequest.html#9c831dd85c20955e6d062e8b5f660e00">m_login</a>.<a class="code" href="structOfxFiLogin.html#f870ca3b27992fb53f203d23f33d097c">appver</a>);
<a name="l00101"></a>00101   <span class="keywordflow">else</span>
<a name="l00102"></a>00102     sonrqTag.Add( <span class="stringliteral">"APPVER"</span>,<span class="stringliteral">"1400"</span>);
<a name="l00103"></a>00103 
<a name="l00104"></a>00104   <a class="code" href="classOfxAggregate.html" title="A single aggregate as described in the OFX 1.02 specification.">OfxAggregate</a> signonmsgTag(<span class="stringliteral">"SIGNONMSGSRQV1"</span>);
<a name="l00105"></a>00105   signonmsgTag.Add( sonrqTag );
<a name="l00106"></a>00106 
<a name="l00107"></a>00107   <span class="keywordflow">return</span> signonmsgTag;
<a name="l00108"></a>00108 }
<a name="l00109"></a>00109 
<a name="l00110"></a>00110 <a class="code" href="classOfxAggregate.html" title="A single aggregate as described in the OFX 1.02 specification.">OfxAggregate</a> <a class="code" href="classOfxRequest.html#e56ceb8ef12b9431dcd4d63eec60a377">OfxRequest::RequestMessage</a>(<span class="keyword">const</span> <span class="keywordtype">string</span>&amp; _msgType, <span class="keyword">const</span> <span class="keywordtype">string</span>&amp; _trnType, <span class="keyword">const</span> <a class="code" href="classOfxAggregate.html" title="A single aggregate as described in the OFX 1.02 specification.">OfxAggregate</a>&amp; _request)<span class="keyword"> const</span>
<a name="l00111"></a>00111 <span class="keyword"></span>{
<a name="l00112"></a>00112   <a class="code" href="classOfxAggregate.html" title="A single aggregate as described in the OFX 1.02 specification.">OfxAggregate</a> trnrqTag( _trnType+<span class="stringliteral">"TRNRQ"</span> );
<a name="l00113"></a>00113   trnrqTag.Add( <span class="stringliteral">"TRNUID"</span>, <a class="code" href="ofx__request_8cpp.html#2f86a163dc83453b02683f1d20d6b3d6">time_t_to_ofxdatetime</a>( time(NULL) ) );
<a name="l00114"></a>00114   trnrqTag.Add( <span class="stringliteral">"CLTCOOKIE"</span>,<span class="stringliteral">"1"</span> ); 
<a name="l00115"></a>00115   trnrqTag.Add( _request );
<a name="l00116"></a>00116     
<a name="l00117"></a>00117   <a class="code" href="classOfxAggregate.html" title="A single aggregate as described in the OFX 1.02 specification.">OfxAggregate</a> result( _msgType+<span class="stringliteral">"MSGSRQV1"</span> );
<a name="l00118"></a>00118   result.Add( trnrqTag );
<a name="l00119"></a>00119 
<a name="l00120"></a>00120   <span class="keywordflow">return</span> result;
<a name="l00121"></a>00121 }
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Mon Nov 19 20:27:59 2007 for LibOFX by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>