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