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