LibOFX

context.cpp

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