LibOFX
|
00001 00005 /*************************************************************************** 00006 * * 00007 * This program is free software; you can redistribute it and/or modify * 00008 * it under the terms of the GNU General Public License as published by * 00009 * the Free Software Foundation; either version 2 of the License, or * 00010 * (at your option) any later version. * 00011 * * 00012 ***************************************************************************/ 00013 #include <config.h> 00014 #include "context.hh" 00015 00016 using namespace std; 00017 00018 00019 00020 LibofxContext::LibofxContext() 00021 : _current_file_type(OFX) 00022 , _statusCallback(0) 00023 , _accountCallback(0) 00024 , _securityCallback(0) 00025 , _transactionCallback(0) 00026 , _statementCallback(0) 00027 , _statementData(0) 00028 , _accountData(0) 00029 , _transactionData(0) 00030 , _securityData(0) 00031 , _statusData(0) 00032 { 00033 00034 } 00035 00036 00037 00038 LibofxContext::~LibofxContext() 00039 { 00040 } 00041 00042 00043 00044 LibofxFileFormat LibofxContext::currentFileType() const 00045 { 00046 return _current_file_type; 00047 } 00048 00049 00050 00051 void LibofxContext::setCurrentFileType(LibofxFileFormat t) 00052 { 00053 _current_file_type = t; 00054 } 00055 00056 00057 00058 int LibofxContext::statementCallback(const struct OfxStatementData data) 00059 { 00060 if (_statementCallback) 00061 return _statementCallback(data, _statementData); 00062 return 0; 00063 } 00064 00065 00066 00067 int LibofxContext::accountCallback(const struct OfxAccountData data) 00068 { 00069 if (_accountCallback) 00070 return _accountCallback(data, _accountData); 00071 return 0; 00072 } 00073 00074 00075 00076 int LibofxContext::transactionCallback(const struct OfxTransactionData data) 00077 { 00078 if (_transactionCallback) 00079 return _transactionCallback(data, _transactionData); 00080 return 0; 00081 } 00082 00083 00084 00085 int LibofxContext::securityCallback(const struct OfxSecurityData data) 00086 { 00087 if (_securityCallback) 00088 return _securityCallback(data, _securityData); 00089 return 0; 00090 } 00091 00092 00093 00094 int LibofxContext::statusCallback(const struct OfxStatusData data) 00095 { 00096 if (_statusCallback) 00097 return _statusCallback(data, _statusData); 00098 return 0; 00099 } 00100 00101 00102 void LibofxContext::setStatusCallback(LibofxProcStatusCallback cb, 00103 void *user_data) 00104 { 00105 _statusCallback = cb; 00106 _statusData = user_data; 00107 } 00108 00109 00110 00111 void LibofxContext::setAccountCallback(LibofxProcAccountCallback cb, 00112 void *user_data) 00113 { 00114 _accountCallback = cb; 00115 _accountData = user_data; 00116 } 00117 00118 00119 00120 void LibofxContext::setSecurityCallback(LibofxProcSecurityCallback cb, 00121 void *user_data) 00122 { 00123 _securityCallback = cb; 00124 _securityData = user_data; 00125 } 00126 00127 00128 00129 void LibofxContext::setTransactionCallback(LibofxProcTransactionCallback cb, 00130 void *user_data) 00131 { 00132 _transactionCallback = cb; 00133 _transactionData = user_data; 00134 } 00135 00136 00137 00138 void LibofxContext::setStatementCallback(LibofxProcStatementCallback cb, 00139 void *user_data) 00140 { 00141 _statementCallback = cb; 00142 _statementData = user_data; 00143 } 00144 00145 00146 00147 00148 00149 00150 00153 LibofxContextPtr libofx_get_new_context() 00154 { 00155 return new LibofxContext(); 00156 } 00157 00158 int libofx_free_context( LibofxContextPtr libofx_context_param) 00159 { 00160 delete (LibofxContext *)libofx_context_param; 00161 return 0; 00162 } 00163 00164 00165 00166 void libofx_set_dtd_dir(LibofxContextPtr libofx_context, 00167 const char *s) 00168 { 00169 ((LibofxContext*)libofx_context)->setDtdDir(s); 00170 } 00171 00172 00173 00174 00175 00176 00177 extern "C" { 00178 void ofx_set_status_cb(LibofxContextPtr ctx, 00179 LibofxProcStatusCallback cb, 00180 void *user_data) 00181 { 00182 ((LibofxContext*)ctx)->setStatusCallback(cb, user_data); 00183 } 00184 00185 00186 void ofx_set_account_cb(LibofxContextPtr ctx, 00187 LibofxProcAccountCallback cb, 00188 void *user_data) 00189 { 00190 ((LibofxContext*)ctx)->setAccountCallback(cb, user_data); 00191 } 00192 00193 00194 00195 void ofx_set_security_cb(LibofxContextPtr ctx, 00196 LibofxProcSecurityCallback cb, 00197 void *user_data) 00198 { 00199 ((LibofxContext*)ctx)->setSecurityCallback(cb, user_data); 00200 } 00201 00202 00203 00204 void ofx_set_transaction_cb(LibofxContextPtr ctx, 00205 LibofxProcTransactionCallback cb, 00206 void *user_data) 00207 { 00208 ((LibofxContext*)ctx)->setTransactionCallback(cb, user_data); 00209 } 00210 00211 00212 00213 void ofx_set_statement_cb(LibofxContextPtr ctx, 00214 LibofxProcStatementCallback cb, 00215 void *user_data) 00216 { 00217 ((LibofxContext*)ctx)->setStatementCallback(cb, user_data); 00218 } 00219 00220 00221 00222 00223 } 00224 00225 00226 00227 00228 00229 00230 00231 00232 00233