1 /**********************************************************
2  * This file has been automatically created by "typemaker2"
3  * from the file "userqueue.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 "./userqueue_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_USERQUEUE,AB_UserQueue)20 GWEN_LIST_FUNCTIONS(AB_USERQUEUE, AB_UserQueue)
21 GWEN_INHERIT_FUNCTIONS(AB_USERQUEUE)
22 
23 
24 AB_USERQUEUE *AB_UserQueue_new(void)
25 {
26   AB_USERQUEUE *p_struct;
27 
28   GWEN_NEW_OBJECT(AB_USERQUEUE, p_struct)
29   p_struct->_refCount=1;
30   GWEN_INHERIT_INIT(AB_USERQUEUE, p_struct)
31   GWEN_LIST_INIT(AB_USERQUEUE, p_struct)
32   /* members */
33   p_struct->userId=0;
34   p_struct->user=NULL;
35   p_struct->accountQueueList=AB_AccountQueue_List_new();
36   /* virtual functions */
37 
38   return p_struct;
39 }
40 
AB_UserQueue_free(AB_USERQUEUE * p_struct)41 void AB_UserQueue_free(AB_USERQUEUE *p_struct)
42 {
43   if (p_struct) {
44     assert(p_struct->_refCount);
45     if (p_struct->_refCount==1) {
46       GWEN_INHERIT_FINI(AB_USERQUEUE, p_struct)
47       GWEN_LIST_FINI(AB_USERQUEUE, p_struct)
48       /* members */
49       AB_AccountQueue_List_free(p_struct->accountQueueList);
50       p_struct->accountQueueList=NULL;
51       p_struct->_refCount=0;
52       GWEN_FREE_OBJECT(p_struct);
53     }
54     else
55       p_struct->_refCount--;
56   }
57 }
58 
AB_UserQueue_Attach(AB_USERQUEUE * p_struct)59 void AB_UserQueue_Attach(AB_USERQUEUE *p_struct)
60 {
61   assert(p_struct);
62   assert(p_struct->_refCount);
63   p_struct->_refCount++;
64 }
65 
AB_UserQueue_dup(const AB_USERQUEUE * p_src)66 AB_USERQUEUE *AB_UserQueue_dup(const AB_USERQUEUE *p_src)
67 {
68   AB_USERQUEUE *p_struct;
69 
70   assert(p_src);
71   p_struct=AB_UserQueue_new();
72   /* member "userId" */
73   p_struct->userId=p_src->userId;
74 
75   /* member "user" */
76   p_struct->user=p_src->user;
77 
78   /* member "accountQueueList" */
79   if (p_struct->accountQueueList) {
80     AB_AccountQueue_List_free(p_struct->accountQueueList);
81     p_struct->accountQueueList=NULL;
82     p_struct->accountQueueList=NULL;
83   }
84   if (p_src->accountQueueList) {
85     p_struct->accountQueueList=AB_AccountQueue_List_dup(p_src->accountQueueList);
86   }
87 
88   return p_struct;
89 }
90 
AB_UserQueue_GetUserId(const AB_USERQUEUE * p_struct)91 uint32_t AB_UserQueue_GetUserId(const AB_USERQUEUE *p_struct)
92 {
93   assert(p_struct);
94   return p_struct->userId;
95 }
96 
AB_UserQueue_GetUser(const AB_USERQUEUE * p_struct)97 AB_USER *AB_UserQueue_GetUser(const AB_USERQUEUE *p_struct)
98 {
99   assert(p_struct);
100   return p_struct->user;
101 }
102 
AB_UserQueue_GetAccountQueueList(const AB_USERQUEUE * p_struct)103 AB_ACCOUNTQUEUE_LIST *AB_UserQueue_GetAccountQueueList(const AB_USERQUEUE *p_struct)
104 {
105   assert(p_struct);
106   return p_struct->accountQueueList;
107 }
108 
AB_UserQueue_SetUserId(AB_USERQUEUE * p_struct,uint32_t p_src)109 void AB_UserQueue_SetUserId(AB_USERQUEUE *p_struct, uint32_t p_src)
110 {
111   assert(p_struct);
112   p_struct->userId=p_src;
113 }
114 
AB_UserQueue_SetUser(AB_USERQUEUE * p_struct,AB_USER * p_src)115 void AB_UserQueue_SetUser(AB_USERQUEUE *p_struct, AB_USER *p_src)
116 {
117   assert(p_struct);
118   p_struct->user=p_src;
119 }
120 
AB_UserQueue_SetAccountQueueList(AB_USERQUEUE * p_struct,AB_ACCOUNTQUEUE_LIST * p_src)121 void AB_UserQueue_SetAccountQueueList(AB_USERQUEUE *p_struct, AB_ACCOUNTQUEUE_LIST *p_src)
122 {
123   assert(p_struct);
124   if (p_struct->accountQueueList) {
125     AB_AccountQueue_List_free(p_struct->accountQueueList);
126     p_struct->accountQueueList=NULL;
127   }
128   p_struct->accountQueueList=p_src;
129 }
130 
131 /* list1 functions */
AB_UserQueue_List_dup(const AB_USERQUEUE_LIST * p_src)132 AB_USERQUEUE_LIST *AB_UserQueue_List_dup(const AB_USERQUEUE_LIST *p_src)
133 {
134   AB_USERQUEUE_LIST *p_dest;
135   AB_USERQUEUE *p_elem;
136 
137   assert(p_src);
138   p_dest=AB_UserQueue_List_new();
139   p_elem=AB_UserQueue_List_First(p_src);
140   while (p_elem) {
141     AB_USERQUEUE *p_cpy;
142 
143     p_cpy=AB_UserQueue_dup(p_elem);
144     AB_UserQueue_List_Add(p_cpy, p_dest);
145     p_elem=AB_UserQueue_List_Next(p_elem);
146   }
147 
148   return p_dest;
149 }
150 
AB_UserQueue_List_GetByUserId(const AB_USERQUEUE_LIST * p_list,uint32_t p_cmp)151 AB_USERQUEUE *AB_UserQueue_List_GetByUserId(const AB_USERQUEUE_LIST *p_list, uint32_t p_cmp)
152 {
153   AB_USERQUEUE *p_struct;
154 
155   assert(p_list);
156   p_struct = AB_UserQueue_List_First(p_list);
157   while (p_struct) {
158     int p_rv;
159 
160     if (p_struct->userId==p_cmp)
161       p_rv=0;
162     else if (p_cmp<p_struct->userId)
163       p_rv=-1;
164     else
165       p_rv=1;
166     if (p_rv == 0)
167       return p_struct;
168     p_struct = AB_UserQueue_List_Next(p_struct);
169   }
170   return NULL;
171 }
172 
AB_UserQueue_FindAccountQueue(const AB_USERQUEUE * uq,AB_ACCOUNT * acc)173 AB_ACCOUNTQUEUE *AB_UserQueue_FindAccountQueue(const AB_USERQUEUE *uq, AB_ACCOUNT *acc)
174 {
175   AB_ACCOUNTQUEUE *aq;
176   aq=AB_AccountQueue_List_First(uq->accountQueueList);
177   while (aq) {
178     if (AB_AccountQueue_GetAccount(aq)==acc)
179       return aq;
180     aq=AB_AccountQueue_List_Next(aq);
181   }
182   return NULL;
183 }
AB_UserQueue_AddAccountQueue(AB_USERQUEUE * up,AB_ACCOUNTQUEUE * aq)184 void AB_UserQueue_AddAccountQueue(AB_USERQUEUE *up, AB_ACCOUNTQUEUE *aq)
185 {
186   if (up->accountQueueList==NULL)
187     up->accountQueueList=AB_AccountQueue_List_new();
188   AB_AccountQueue_List_Add(aq, up->accountQueueList);
189 }
AB_UserQueue_GetFirstAccountQueue(const AB_USERQUEUE * up)190 AB_ACCOUNTQUEUE *AB_UserQueue_GetFirstAccountQueue(const AB_USERQUEUE *up)
191 {
192   if (up->accountQueueList==NULL)
193     return NULL;
194   return AB_AccountQueue_List_First(up->accountQueueList);
195 }
196 
197 /* code headers */
198 
199