1 /**********************************************************
2 * This file has been automatically created by "typemaker2"
3 * from the file "bpdaddr.xml".
4 * Please do not edit this file, all changes will be lost.
5 * Better edit the mentioned source file instead.
6 **********************************************************/
7
8 #ifdef HAVE_CONFIG_H
9 # include <config.h>
10 #endif
11
12 #include "./bpdaddr_p.h"
13
14 #include <gwenhywfar/misc.h>
15 #include <gwenhywfar/debug.h>
16
17 /* code headers */
18 #include <string.h>
19
20 /* macro functions */
GWEN_LIST_FUNCTIONS(AQFINTS_BPDADDR,AQFINTS_BpdAddr)21 GWEN_LIST_FUNCTIONS(AQFINTS_BPDADDR, AQFINTS_BpdAddr)
22
23
24 AQFINTS_BPDADDR *AQFINTS_BpdAddr_new(void)
25 {
26 AQFINTS_BPDADDR *p_struct;
27
28 GWEN_NEW_OBJECT(AQFINTS_BPDADDR, p_struct)
29 p_struct->_refCount=1;
30 GWEN_LIST_INIT(AQFINTS_BPDADDR, p_struct)
31 /* members */
32 p_struct->country=0;
33 p_struct->bankCode=NULL;
34 p_struct->language=0;
35 p_struct->services=NULL;
36 p_struct->runtimeFlags=0;
37 /* virtual functions */
38
39 return p_struct;
40 }
41
AQFINTS_BpdAddr_free(AQFINTS_BPDADDR * p_struct)42 void AQFINTS_BpdAddr_free(AQFINTS_BPDADDR *p_struct)
43 {
44 if (p_struct) {
45 assert(p_struct->_refCount);
46 if (p_struct->_refCount==1) {
47 GWEN_LIST_FINI(AQFINTS_BPDADDR, p_struct)
48 /* members */
49 free(p_struct->bankCode);
50 p_struct->bankCode=NULL;
51 AQFINTS_BpdAddrService_List_free(p_struct->services);
52 p_struct->services=NULL;
53 p_struct->_refCount=0;
54 GWEN_FREE_OBJECT(p_struct);
55 }
56 else
57 p_struct->_refCount--;
58 }
59 }
60
AQFINTS_BpdAddr_Attach(AQFINTS_BPDADDR * p_struct)61 void AQFINTS_BpdAddr_Attach(AQFINTS_BPDADDR *p_struct)
62 {
63 assert(p_struct);
64 assert(p_struct->_refCount);
65 p_struct->_refCount++;
66 }
67
AQFINTS_BpdAddr_dup(const AQFINTS_BPDADDR * p_src)68 AQFINTS_BPDADDR *AQFINTS_BpdAddr_dup(const AQFINTS_BPDADDR *p_src)
69 {
70 AQFINTS_BPDADDR *p_struct;
71
72 assert(p_src);
73 p_struct=AQFINTS_BpdAddr_new();
74 /* member "country" */
75 p_struct->country=p_src->country;
76
77 /* member "bankCode" */
78 if (p_struct->bankCode) {
79 free(p_struct->bankCode);
80 p_struct->bankCode=NULL;
81 p_struct->bankCode=NULL;
82 }
83 if (p_src->bankCode) {
84 p_struct->bankCode=strdup(p_src->bankCode);
85 }
86
87 /* member "language" */
88 p_struct->language=p_src->language;
89
90 /* member "services" */
91 if (p_struct->services) {
92 AQFINTS_BpdAddrService_List_free(p_struct->services);
93 p_struct->services=NULL;
94 p_struct->services=NULL;
95 }
96 if (p_src->services) {
97 p_struct->services=AQFINTS_BpdAddrService_List_dup(p_src->services);
98 }
99
100 /* member "runtimeFlags" */
101 p_struct->runtimeFlags=p_src->runtimeFlags;
102
103 return p_struct;
104 }
105
AQFINTS_BpdAddr_copy(AQFINTS_BPDADDR * p_struct,const AQFINTS_BPDADDR * p_src)106 AQFINTS_BPDADDR *AQFINTS_BpdAddr_copy(AQFINTS_BPDADDR *p_struct, const AQFINTS_BPDADDR *p_src)
107 {
108 assert(p_struct);
109 assert(p_src);
110 /* member "country" */
111 p_struct->country=p_src->country;
112
113 /* member "bankCode" */
114 if (p_struct->bankCode) {
115 free(p_struct->bankCode);
116 p_struct->bankCode=NULL;
117 p_struct->bankCode=NULL;
118 }
119 if (p_src->bankCode) {
120 p_struct->bankCode=strdup(p_src->bankCode);
121 }
122
123 /* member "language" */
124 p_struct->language=p_src->language;
125
126 /* member "services" */
127 if (p_struct->services) {
128 AQFINTS_BpdAddrService_List_free(p_struct->services);
129 p_struct->services=NULL;
130 p_struct->services=NULL;
131 }
132 if (p_src->services) {
133 p_struct->services=AQFINTS_BpdAddrService_List_dup(p_src->services);
134 }
135
136 /* member "runtimeFlags" */
137 p_struct->runtimeFlags=p_src->runtimeFlags;
138
139 return p_struct;
140 }
141
AQFINTS_BpdAddr_GetCountry(const AQFINTS_BPDADDR * p_struct)142 int AQFINTS_BpdAddr_GetCountry(const AQFINTS_BPDADDR *p_struct)
143 {
144 assert(p_struct);
145 return p_struct->country;
146 }
147
AQFINTS_BpdAddr_GetBankCode(const AQFINTS_BPDADDR * p_struct)148 const char *AQFINTS_BpdAddr_GetBankCode(const AQFINTS_BPDADDR *p_struct)
149 {
150 assert(p_struct);
151 return p_struct->bankCode;
152 }
153
AQFINTS_BpdAddr_GetLanguage(const AQFINTS_BPDADDR * p_struct)154 int AQFINTS_BpdAddr_GetLanguage(const AQFINTS_BPDADDR *p_struct)
155 {
156 assert(p_struct);
157 return p_struct->language;
158 }
159
AQFINTS_BpdAddr_GetServices(const AQFINTS_BPDADDR * p_struct)160 AQFINTS_BPDADDR_SERVICE_LIST *AQFINTS_BpdAddr_GetServices(const AQFINTS_BPDADDR *p_struct)
161 {
162 assert(p_struct);
163 return p_struct->services;
164 }
165
AQFINTS_BpdAddr_GetRuntimeFlags(const AQFINTS_BPDADDR * p_struct)166 uint32_t AQFINTS_BpdAddr_GetRuntimeFlags(const AQFINTS_BPDADDR *p_struct)
167 {
168 assert(p_struct);
169 return p_struct->runtimeFlags;
170 }
171
AQFINTS_BpdAddr_SetCountry(AQFINTS_BPDADDR * p_struct,int p_src)172 void AQFINTS_BpdAddr_SetCountry(AQFINTS_BPDADDR *p_struct, int p_src)
173 {
174 assert(p_struct);
175 p_struct->country=p_src;
176 }
177
AQFINTS_BpdAddr_SetBankCode(AQFINTS_BPDADDR * p_struct,const char * p_src)178 void AQFINTS_BpdAddr_SetBankCode(AQFINTS_BPDADDR *p_struct, const char *p_src)
179 {
180 assert(p_struct);
181 if (p_struct->bankCode) {
182 free(p_struct->bankCode);
183 p_struct->bankCode=NULL;
184 }
185 if (p_src) {
186 p_struct->bankCode=strdup(p_src);
187 }
188 else {
189 p_struct->bankCode=NULL;
190 }
191 }
192
AQFINTS_BpdAddr_SetLanguage(AQFINTS_BPDADDR * p_struct,int p_src)193 void AQFINTS_BpdAddr_SetLanguage(AQFINTS_BPDADDR *p_struct, int p_src)
194 {
195 assert(p_struct);
196 p_struct->language=p_src;
197 }
198
AQFINTS_BpdAddr_SetServices(AQFINTS_BPDADDR * p_struct,AQFINTS_BPDADDR_SERVICE_LIST * p_src)199 void AQFINTS_BpdAddr_SetServices(AQFINTS_BPDADDR *p_struct, AQFINTS_BPDADDR_SERVICE_LIST *p_src)
200 {
201 assert(p_struct);
202 if (p_struct->services) {
203 AQFINTS_BpdAddrService_List_free(p_struct->services);
204 p_struct->services=NULL;
205 }
206 p_struct->services=p_src;
207 }
208
AQFINTS_BpdAddr_SetRuntimeFlags(AQFINTS_BPDADDR * p_struct,uint32_t p_src)209 void AQFINTS_BpdAddr_SetRuntimeFlags(AQFINTS_BPDADDR *p_struct, uint32_t p_src)
210 {
211 assert(p_struct);
212 p_struct->runtimeFlags=p_src;
213 }
214
AQFINTS_BpdAddr_AddRuntimeFlags(AQFINTS_BPDADDR * p_struct,uint32_t p_src)215 void AQFINTS_BpdAddr_AddRuntimeFlags(AQFINTS_BPDADDR *p_struct, uint32_t p_src)
216 {
217 assert(p_struct);
218 p_struct->runtimeFlags|=p_src;
219 }
220
AQFINTS_BpdAddr_SubRuntimeFlags(AQFINTS_BPDADDR * p_struct,uint32_t p_src)221 void AQFINTS_BpdAddr_SubRuntimeFlags(AQFINTS_BPDADDR *p_struct, uint32_t p_src)
222 {
223 assert(p_struct);
224 p_struct->runtimeFlags&=~p_src;
225 }
226
227 /* list1 functions */
AQFINTS_BpdAddr_List_dup(const AQFINTS_BPDADDR_LIST * p_src)228 AQFINTS_BPDADDR_LIST *AQFINTS_BpdAddr_List_dup(const AQFINTS_BPDADDR_LIST *p_src)
229 {
230 AQFINTS_BPDADDR_LIST *p_dest;
231 AQFINTS_BPDADDR *p_elem;
232
233 assert(p_src);
234 p_dest=AQFINTS_BpdAddr_List_new();
235 p_elem=AQFINTS_BpdAddr_List_First(p_src);
236 while (p_elem) {
237 AQFINTS_BPDADDR *p_cpy;
238
239 p_cpy=AQFINTS_BpdAddr_dup(p_elem);
240 AQFINTS_BpdAddr_List_Add(p_cpy, p_dest);
241 p_elem=AQFINTS_BpdAddr_List_Next(p_elem);
242 }
243
244 return p_dest;
245 }
246
AQFINTS_BpdAddr_ReadDb(AQFINTS_BPDADDR * p_struct,GWEN_DB_NODE * p_db)247 void AQFINTS_BpdAddr_ReadDb(AQFINTS_BPDADDR *p_struct, GWEN_DB_NODE *p_db)
248 {
249 assert(p_struct);
250 /* member "country" */
251 p_struct->country=GWEN_DB_GetIntValue(p_db, "country", 0, 0);
252
253 /* member "bankCode" */
254 if (p_struct->bankCode) {
255 free(p_struct->bankCode);
256 p_struct->bankCode=NULL;
257 }
258 {
259 const char *s;
260 s=GWEN_DB_GetCharValue(p_db, "bankCode", 0, NULL);
261 if (s)
262 p_struct->bankCode=strdup(s);
263 }
264 if (p_struct->bankCode==NULL) {
265 p_struct->bankCode=NULL;
266 }
267
268 /* member "language" */
269 p_struct->language=GWEN_DB_GetIntValue(p_db, "language", 0, 0);
270
271 /* member "services" */
272 if (p_struct->services) {
273 AQFINTS_BpdAddrService_List_free(p_struct->services);
274 p_struct->services=NULL;
275 }
276 {
277 GWEN_DB_NODE *dbSource;
278 dbSource=GWEN_DB_GetGroup(p_db, GWEN_PATH_FLAGS_NAMEMUSTEXIST, "services");
279 if (dbSource) {
280 AQFINTS_BPDADDR_SERVICE_LIST *t;
281 GWEN_DB_NODE *dbT;
282 t=AQFINTS_BpdAddrService_List_new();
283 dbT=GWEN_DB_FindFirstGroup(dbSource, "element");
284 while (dbT) {
285 AQFINTS_BPDADDR_SERVICE *elem;
286 elem=AQFINTS_BpdAddrService_fromDb(dbT);
287 if (elem)
288 AQFINTS_BpdAddrService_List_Add(elem, t);
289 dbT=GWEN_DB_FindNextGroup(dbT, "element");
290 }
291 p_struct->services=t;
292 }
293 else
294 p_struct->services=NULL;
295 }
296 if (p_struct->services==NULL) {
297 p_struct->services=NULL;
298 }
299
300 /* member "runtimeFlags" */
301 /* member "runtimeFlags" is volatile, just presetting */
302 p_struct->runtimeFlags=0;
303
304 }
305
AQFINTS_BpdAddr_WriteDb(const AQFINTS_BPDADDR * p_struct,GWEN_DB_NODE * p_db)306 int AQFINTS_BpdAddr_WriteDb(const AQFINTS_BPDADDR *p_struct, GWEN_DB_NODE *p_db)
307 {
308 int p_rv;
309
310 assert(p_struct);
311 /* member "country" */
312 p_rv=GWEN_DB_SetIntValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "country", p_struct->country);
313 if (p_rv<0) {
314 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
315 return p_rv;
316 }
317
318 /* member "bankCode" */
319 if (p_struct->bankCode)
320 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "bankCode", p_struct->bankCode);
321 else {
322 GWEN_DB_DeleteVar(p_db, "bankCode");
323 p_rv=0;
324 }
325 if (p_rv<0) {
326 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
327 return p_rv;
328 }
329
330 /* member "language" */
331 p_rv=GWEN_DB_SetIntValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "language", p_struct->language);
332 if (p_rv<0) {
333 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
334 return p_rv;
335 }
336
337 /* member "services" */
338 {
339 if (p_struct->services) {
340 GWEN_DB_NODE *dbDest;
341 AQFINTS_BPDADDR_SERVICE *elem;
342 dbDest=GWEN_DB_GetGroup(p_db, GWEN_DB_FLAGS_OVERWRITE_GROUPS, "services");
343 assert(dbDest);
344 p_rv=0;
345 elem=AQFINTS_BpdAddrService_List_First(p_struct->services);
346 while (elem) {
347 GWEN_DB_NODE *dbElem;
348 dbElem=GWEN_DB_GetGroup(dbDest, GWEN_PATH_FLAGS_CREATE_GROUP, "element");
349 assert(dbElem);
350 p_rv=AQFINTS_BpdAddrService_toDb(elem, dbElem);
351 if (p_rv<0) {
352 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)", p_rv);
353 break;
354 }
355 elem=AQFINTS_BpdAddrService_List_Next(elem);
356 }
357 }
358 else
359 p_rv=0;
360 }
361 if (p_rv<0) {
362 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
363 return p_rv;
364 }
365
366 /* member "runtimeFlags" is volatile, not writing to db */
367
368 return 0;
369 }
370
AQFINTS_BpdAddr_fromDb(GWEN_DB_NODE * p_db)371 AQFINTS_BPDADDR *AQFINTS_BpdAddr_fromDb(GWEN_DB_NODE *p_db)
372 {
373 AQFINTS_BPDADDR *p_struct;
374 p_struct=AQFINTS_BpdAddr_new();
375 AQFINTS_BpdAddr_ReadDb(p_struct, p_db);
376 return p_struct;
377 }
378
AQFINTS_BpdAddr_toDb(const AQFINTS_BPDADDR * p_struct,GWEN_DB_NODE * p_db)379 int AQFINTS_BpdAddr_toDb(const AQFINTS_BPDADDR *p_struct, GWEN_DB_NODE *p_db)
380 {
381 return AQFINTS_BpdAddr_WriteDb(p_struct, p_db);
382 }
383
AQFINTS_BpdAddr_AddService(AQFINTS_BPDADDR * st,AQFINTS_BPDADDR_SERVICE * srv)384 void AQFINTS_BpdAddr_AddService(AQFINTS_BPDADDR *st, AQFINTS_BPDADDR_SERVICE *srv)
385 {
386 if (st->services==NULL)
387 st->services=AQFINTS_BpdAddrService_List_new();
388 AQFINTS_BpdAddrService_List_Add(srv, st->services);
389 }
390
391 /* code headers */
392
393