LibOFX
build/libofx-0.10.0/lib/context.cpp
1 
5 /***************************************************************************
6  * *
7  * This program is free software; you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation; either version 2 of the License, or *
10  * (at your option) any later version. *
11  * *
12  ***************************************************************************/
13 #include <config.h>
14 #include "context.hh"
15 
16 using namespace std;
17 
18 
19 
20 LibofxContext::LibofxContext()
21  : _current_file_type(OFX)
22  , _statusCallback(0)
23  , _accountCallback(0)
24  , _securityCallback(0)
25  , _transactionCallback(0)
26  , _statementCallback(0)
27  , _positionCallback(0)
28  , _statementData(0)
29  , _accountData(0)
30  , _transactionData(0)
31  , _securityData(0)
32  , _statusData(0)
33  , _positionData(0)
34 {
35 
36 }
37 
38 
39 
40 LibofxContext::~LibofxContext()
41 {
42 }
43 
44 
45 
46 LibofxFileFormat LibofxContext::currentFileType() const
47 {
48  return _current_file_type;
49 }
50 
51 
52 
53 void LibofxContext::setCurrentFileType(LibofxFileFormat t)
54 {
55  _current_file_type = t;
56 }
57 
58 
59 
60 int LibofxContext::statementCallback(const struct OfxStatementData data)
61 {
62  if (_statementCallback)
63  return _statementCallback(data, _statementData);
64  return 0;
65 }
66 
67 
68 
69 int LibofxContext::accountCallback(const struct OfxAccountData data)
70 {
71  if (_accountCallback)
72  return _accountCallback(data, _accountData);
73  return 0;
74 }
75 
76 
77 
78 int LibofxContext::transactionCallback(const struct OfxTransactionData data)
79 {
80  if (_transactionCallback)
81  return _transactionCallback(data, _transactionData);
82  return 0;
83 }
84 
85 
86 
87 int LibofxContext::securityCallback(const struct OfxSecurityData data)
88 {
89  if (_securityCallback)
90  return _securityCallback(data, _securityData);
91  return 0;
92 }
93 
94 
95 
96 int LibofxContext::statusCallback(const struct OfxStatusData data)
97 {
98  if (_statusCallback)
99  return _statusCallback(data, _statusData);
100  return 0;
101 }
102 
103 int LibofxContext::positionCallback(const struct OfxPositionData data)
104 {
105  if (_positionCallback)
106  return _positionCallback(data, _positionData);
107  return 0;
108 }
109 
110 
111 void LibofxContext::setStatusCallback(LibofxProcStatusCallback cb,
112  void *user_data)
113 {
114  _statusCallback = cb;
115  _statusData = user_data;
116 }
117 
118 
119 
120 void LibofxContext::setAccountCallback(LibofxProcAccountCallback cb,
121  void *user_data)
122 {
123  _accountCallback = cb;
124  _accountData = user_data;
125 }
126 
127 
128 
129 void LibofxContext::setSecurityCallback(LibofxProcSecurityCallback cb,
130  void *user_data)
131 {
132  _securityCallback = cb;
133  _securityData = user_data;
134 }
135 
136 
137 
138 void LibofxContext::setTransactionCallback(LibofxProcTransactionCallback cb,
139  void *user_data)
140 {
141  _transactionCallback = cb;
142  _transactionData = user_data;
143 }
144 
145 
146 
147 void LibofxContext::setStatementCallback(LibofxProcStatementCallback cb,
148  void *user_data)
149 {
150  _statementCallback = cb;
151  _statementData = user_data;
152 }
153 
154 void LibofxContext::setPositionCallback(LibofxProcPositionCallback cb,
155  void *user_data)
156 {
157  _positionCallback = cb;
158  _positionData = user_data;
159 }
160 
161 
162 
163 
164 
165 
166 
169 LibofxContextPtr libofx_get_new_context()
170 {
171  return new LibofxContext();
172 }
173 
174 int libofx_free_context( LibofxContextPtr libofx_context_param)
175 {
176  delete (LibofxContext *)libofx_context_param;
177  return 0;
178 }
179 
180 
181 
182 void libofx_set_dtd_dir(LibofxContextPtr libofx_context,
183  const char *s)
184 {
185  ((LibofxContext*)libofx_context)->setDtdDir(s);
186 }
187 
188 
189 
190 
191 
192 
193 extern "C" {
194  void ofx_set_status_cb(LibofxContextPtr ctx,
196  void *user_data)
197  {
198  ((LibofxContext*)ctx)->setStatusCallback(cb, user_data);
199  }
200 
201 
202  void ofx_set_account_cb(LibofxContextPtr ctx,
204  void *user_data)
205  {
206  ((LibofxContext*)ctx)->setAccountCallback(cb, user_data);
207  }
208 
209 
210 
211  void ofx_set_security_cb(LibofxContextPtr ctx,
213  void *user_data)
214  {
215  ((LibofxContext*)ctx)->setSecurityCallback(cb, user_data);
216  }
217 
218 
219 
220  void ofx_set_transaction_cb(LibofxContextPtr ctx,
222  void *user_data)
223  {
224  ((LibofxContext*)ctx)->setTransactionCallback(cb, user_data);
225  }
226 
227 
228 
229  void ofx_set_statement_cb(LibofxContextPtr ctx,
231  void *user_data)
232  {
233  ((LibofxContext*)ctx)->setStatementCallback(cb, user_data);
234  }
235 
236 
237  void ofx_set_position_cb(LibofxContextPtr ctx,
239  void *user_data)
240  {
241  ((LibofxContext*)ctx)->setPositionCallback(cb, user_data);
242  }
243 
244 
245 
246 
247 }
248 
249 
250 
251 
252 
253 
254 
255 
256 
257 
An abstraction of an account.
Definition: inc/libofx.h:276
void ofx_set_position_cb(LibofxContextPtr ctx, LibofxProcPositionCallback cb, void *user_data)
An abstraction of a security position held in an account.
Definition: inc/libofx.h:1161
int(* LibofxProcAccountCallback)(const struct OfxAccountData data, void *account_data)
The callback function for the OfxAccountData stucture.
Definition: inc/libofx.h:349
LibofxContextPtr libofx_get_new_context()
Initialise the library and return a new context.
int(* LibofxProcStatementCallback)(const struct OfxStatementData data, void *statement_data)
The callback function for the OfxStatementData stucture.
Definition: inc/libofx.h:1142
void ofx_set_statement_cb(LibofxContextPtr ctx, LibofxProcStatementCallback cb, void *user_data)
void ofx_set_status_cb(LibofxContextPtr ctx, LibofxProcStatusCallback cb, void *user_data)
void ofx_set_account_cb(LibofxContextPtr ctx, LibofxProcAccountCallback cb, void *user_data)
int(* LibofxProcTransactionCallback)(const struct OfxTransactionData data, void *transaction_data)
The callback function for the OfxTransactionData stucture.
Definition: inc/libofx.h:1046
int(* LibofxProcPositionCallback)(const struct OfxPositionData data, void *position_data)
The callback function for the OfxPositionData stucture.
Definition: inc/libofx.h:1270
An abstraction of an OFX STATUS element.
Definition: inc/libofx.h:214
void ofx_set_security_cb(LibofxContextPtr ctx, LibofxProcSecurityCallback cb, void *user_data)
An abstraction of a security, such as a stock, mutual fund, etc.
Definition: inc/libofx.h:358
void ofx_set_transaction_cb(LibofxContextPtr ctx, LibofxProcTransactionCallback cb, void *user_data)
int(* LibofxProcSecurityCallback)(const struct OfxSecurityData data, void *security_data)
The callback function for the OfxSecurityData stucture.
Definition: inc/libofx.h:620
int(* LibofxProcStatusCallback)(const struct OfxStatusData data, void *status_data)
The callback function for the OfxStatusData stucture.
Definition: inc/libofx.h:263
An abstraction of a transaction in an account.
Definition: inc/libofx.h:682
LibofxFileFormat
Definition: inc/libofx.h:126
int libofx_free_context(LibofxContextPtr)
Free all ressources used by this context.
An abstraction of an account statement.
Definition: inc/libofx.h:1057