1 /**********************************************************
2  * This file has been automatically created by "typemaker2"
3  * from the file "providerqueue.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 "./providerqueue_p.h"
13 
14 #include <gwenhywfar/misc.h>
15 #include <gwenhywfar/debug.h>
16 
17 /* code headers */
18 
19 /* macro functions */
GWEN_LIST_FUNCTIONS(AB_PROVIDERQUEUE,AB_ProviderQueue)20 GWEN_LIST_FUNCTIONS(AB_PROVIDERQUEUE, AB_ProviderQueue)
21 GWEN_INHERIT_FUNCTIONS(AB_PROVIDERQUEUE)
22 
23 
24 AB_PROVIDERQUEUE *AB_ProviderQueue_new(void)
25 {
26   AB_PROVIDERQUEUE *p_struct;
27 
28   GWEN_NEW_OBJECT(AB_PROVIDERQUEUE, p_struct)
29   p_struct->_refCount=1;
30   GWEN_INHERIT_INIT(AB_PROVIDERQUEUE, p_struct)
31   GWEN_LIST_INIT(AB_PROVIDERQUEUE, p_struct)
32   /* members */
33   p_struct->providerName=NULL;
34   p_struct->provider=NULL;
35   p_struct->accountQueueList=AB_AccountQueue_List_new();
36   /* virtual functions */
37 
38   return p_struct;
39 }
40 
AB_ProviderQueue_free(AB_PROVIDERQUEUE * p_struct)41 void AB_ProviderQueue_free(AB_PROVIDERQUEUE *p_struct)
42 {
43   if (p_struct) {
44     assert(p_struct->_refCount);
45     if (p_struct->_refCount==1) {
46       GWEN_INHERIT_FINI(AB_PROVIDERQUEUE, p_struct)
47       GWEN_LIST_FINI(AB_PROVIDERQUEUE, p_struct)
48       /* members */
49       free(p_struct->providerName);
50       p_struct->providerName=NULL;
51       AB_AccountQueue_List_free(p_struct->accountQueueList);
52       p_struct->accountQueueList=NULL;
53       p_struct->_refCount=0;
54       GWEN_FREE_OBJECT(p_struct);
55     }
56     else
57       p_struct->_refCount--;
58   }
59 }
60 
AB_ProviderQueue_Attach(AB_PROVIDERQUEUE * p_struct)61 void AB_ProviderQueue_Attach(AB_PROVIDERQUEUE *p_struct)
62 {
63   assert(p_struct);
64   assert(p_struct->_refCount);
65   p_struct->_refCount++;
66 }
67 
AB_ProviderQueue_dup(const AB_PROVIDERQUEUE * p_src)68 AB_PROVIDERQUEUE *AB_ProviderQueue_dup(const AB_PROVIDERQUEUE *p_src)
69 {
70   AB_PROVIDERQUEUE *p_struct;
71 
72   assert(p_src);
73   p_struct=AB_ProviderQueue_new();
74   /* member "providerName" */
75   if (p_struct->providerName) {
76     free(p_struct->providerName);
77     p_struct->providerName=NULL;
78     p_struct->providerName=NULL;
79   }
80   if (p_src->providerName) {
81     p_struct->providerName=strdup(p_src->providerName);
82   }
83 
84   /* member "provider" */
85   p_struct->provider=p_src->provider;
86 
87   /* member "accountQueueList" */
88   if (p_struct->accountQueueList) {
89     AB_AccountQueue_List_free(p_struct->accountQueueList);
90     p_struct->accountQueueList=NULL;
91     p_struct->accountQueueList=NULL;
92   }
93   if (p_src->accountQueueList) {
94     p_struct->accountQueueList=AB_AccountQueue_List_dup(p_src->accountQueueList);
95   }
96 
97   return p_struct;
98 }
99 
AB_ProviderQueue_GetProviderName(const AB_PROVIDERQUEUE * p_struct)100 const char *AB_ProviderQueue_GetProviderName(const AB_PROVIDERQUEUE *p_struct)
101 {
102   assert(p_struct);
103   return p_struct->providerName;
104 }
105 
AB_ProviderQueue_GetProvider(const AB_PROVIDERQUEUE * p_struct)106 AB_PROVIDER *AB_ProviderQueue_GetProvider(const AB_PROVIDERQUEUE *p_struct)
107 {
108   assert(p_struct);
109   return p_struct->provider;
110 }
111 
AB_ProviderQueue_GetAccountQueueList(const AB_PROVIDERQUEUE * p_struct)112 AB_ACCOUNTQUEUE_LIST *AB_ProviderQueue_GetAccountQueueList(const AB_PROVIDERQUEUE *p_struct)
113 {
114   assert(p_struct);
115   return p_struct->accountQueueList;
116 }
117 
AB_ProviderQueue_SetProviderName(AB_PROVIDERQUEUE * p_struct,const char * p_src)118 void AB_ProviderQueue_SetProviderName(AB_PROVIDERQUEUE *p_struct, const char *p_src)
119 {
120   assert(p_struct);
121   if (p_struct->providerName) {
122     free(p_struct->providerName);
123     p_struct->providerName=NULL;
124   }
125   if (p_src) {
126     p_struct->providerName=strdup(p_src);
127   }
128   else {
129     p_struct->providerName=NULL;
130   }
131 }
132 
AB_ProviderQueue_SetProvider(AB_PROVIDERQUEUE * p_struct,AB_PROVIDER * p_src)133 void AB_ProviderQueue_SetProvider(AB_PROVIDERQUEUE *p_struct, AB_PROVIDER *p_src)
134 {
135   assert(p_struct);
136   p_struct->provider=p_src;
137 }
138 
AB_ProviderQueue_SetAccountQueueList(AB_PROVIDERQUEUE * p_struct,AB_ACCOUNTQUEUE_LIST * p_src)139 void AB_ProviderQueue_SetAccountQueueList(AB_PROVIDERQUEUE *p_struct, AB_ACCOUNTQUEUE_LIST *p_src)
140 {
141   assert(p_struct);
142   if (p_struct->accountQueueList) {
143     AB_AccountQueue_List_free(p_struct->accountQueueList);
144     p_struct->accountQueueList=NULL;
145   }
146   p_struct->accountQueueList=p_src;
147 }
148 
149 /* list1 functions */
AB_ProviderQueue_List_dup(const AB_PROVIDERQUEUE_LIST * p_src)150 AB_PROVIDERQUEUE_LIST *AB_ProviderQueue_List_dup(const AB_PROVIDERQUEUE_LIST *p_src)
151 {
152   AB_PROVIDERQUEUE_LIST *p_dest;
153   AB_PROVIDERQUEUE *p_elem;
154 
155   assert(p_src);
156   p_dest=AB_ProviderQueue_List_new();
157   p_elem=AB_ProviderQueue_List_First(p_src);
158   while (p_elem) {
159     AB_PROVIDERQUEUE *p_cpy;
160 
161     p_cpy=AB_ProviderQueue_dup(p_elem);
162     AB_ProviderQueue_List_Add(p_cpy, p_dest);
163     p_elem=AB_ProviderQueue_List_Next(p_elem);
164   }
165 
166   return p_dest;
167 }
168 
AB_ProviderQueue_List_GetByProviderName(const AB_PROVIDERQUEUE_LIST * p_list,const char * p_cmp)169 AB_PROVIDERQUEUE *AB_ProviderQueue_List_GetByProviderName(const AB_PROVIDERQUEUE_LIST *p_list,  const char *p_cmp)
170 {
171   AB_PROVIDERQUEUE *p_struct;
172 
173   assert(p_list);
174   p_struct = AB_ProviderQueue_List_First(p_list);
175   while (p_struct) {
176     int p_rv;
177 
178     if (p_struct->providerName && p_cmp)
179       p_rv=strcasecmp(p_cmp, p_struct->providerName);
180     else if (p_cmp)
181       p_rv=1;
182     else if (p_struct->providerName)
183       p_rv=-1;
184     else
185       p_rv=0;
186     if (p_rv == 0)
187       return p_struct;
188     p_struct = AB_ProviderQueue_List_Next(p_struct);
189   }
190   return NULL;
191 }
192 
AB_ProviderQueue_FindAccountQueueById(const AB_PROVIDERQUEUE * pq,uint32_t uid)193 AB_ACCOUNTQUEUE *AB_ProviderQueue_FindAccountQueueById(const AB_PROVIDERQUEUE *pq, uint32_t uid)
194 {
195   if (pq->accountQueueList==NULL)
196     return NULL;
197   return AB_AccountQueue_List_GetByAccountId(pq->accountQueueList, uid);
198 }
AB_ProviderQueue_AddAccountQueue(AB_PROVIDERQUEUE * pq,AB_ACCOUNTQUEUE * aq)199 void AB_ProviderQueue_AddAccountQueue(AB_PROVIDERQUEUE *pq, AB_ACCOUNTQUEUE *aq)
200 {
201   if (pq->accountQueueList==NULL)
202     pq->accountQueueList=AB_AccountQueue_List_new();
203   AB_AccountQueue_List_Add(aq, pq->accountQueueList);
204 }
AB_ProviderQueue_GetFirstAccountQueue(const AB_PROVIDERQUEUE * pq)205 AB_ACCOUNTQUEUE *AB_ProviderQueue_GetFirstAccountQueue(const AB_PROVIDERQUEUE *pq)
206 {
207   if (pq->accountQueueList==NULL)
208     return NULL;
209   return AB_AccountQueue_List_First(pq->accountQueueList);
210 }
211 
212 /* code headers */
213 
214