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 Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Data 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 <config.h></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 <string></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(&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(&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>) > 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>) > 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>) > 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>& _msgType, <span class="keyword">const</span> <span class="keywordtype">string</span>& _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>& _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
<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>
|