@@ -100,150 +100,3 @@ int32_t asset_prices_query(struct asset_prices* ps, struct asset_price_query* pq
100
100
101
101
return num_prices == 0 ? 0 : mean / num_prices ;
102
102
}
103
-
104
-
105
- void clients_asset_init (struct clients_asset * * pca , int client_id )
106
- {
107
- assert (* pca == NULL );
108
- assert (client_id > 0 );
109
-
110
- * pca = malloc (sizeof (struct clients_asset ));
111
- assert (* pca != NULL );
112
-
113
- asset_prices_init (& (* pca )-> asset , 64 );
114
- assert ((* pca )-> asset != NULL );
115
-
116
- (* pca )-> next = NULL ;
117
- (* pca )-> prev = NULL ;
118
- (* pca )-> client_id = client_id ;
119
- }
120
-
121
- void clients_asset_get_beg (struct clients_asset * * pca ) {
122
- // Ensure we start from the beginning of the list
123
- struct clients_asset * prev = (* pca )-> prev ;
124
- struct clients_asset * first = * pca ;
125
- while (prev != NULL ) {
126
- first = prev ;
127
- prev = prev -> prev ;
128
- }
129
-
130
- * pca = first ;
131
- }
132
-
133
- void clients_asset_free (struct clients_asset * * pca )
134
- {
135
- assert (* pca != NULL );
136
- assert ((* pca )-> asset != NULL );
137
-
138
- // Adjust prev and next values now that middle is gone
139
- struct clients_asset * prev = NULL ;
140
- struct clients_asset * next = NULL ;
141
- struct clients_asset * curr = * pca ;
142
- prev = curr -> prev ;
143
- next = curr -> next ;
144
- if (prev != NULL )
145
- prev -> next = next ;
146
- if (next != NULL )
147
- next -> prev = prev ;
148
-
149
- asset_prices_free (& (curr -> asset ));
150
- free (curr );
151
- curr = NULL ;
152
-
153
- // Adjust argument pointer
154
- if (prev != NULL ) {
155
- * pca = prev ;
156
- return ;
157
- }
158
-
159
- if (next != NULL ) {
160
- * pca = next ;
161
- return ;
162
- }
163
-
164
- * pca = NULL ;
165
- }
166
-
167
- void clients_asset_free_all (struct clients_asset * * pca )
168
- {
169
- assert (* pca != NULL );
170
- assert ((* pca )-> asset != NULL );
171
-
172
- clients_asset_get_beg (pca );
173
-
174
- struct clients_asset * next = NULL ;
175
- struct clients_asset * curr = * pca ;
176
- do {
177
- next = curr -> next ;
178
- asset_prices_free (& (curr -> asset ));
179
- free (curr );
180
- curr = NULL ;
181
- curr = next ;
182
- } while (curr != NULL );
183
-
184
- * pca = NULL ;
185
- }
186
-
187
- void clients_asset_get_end (struct clients_asset * * pca ) {
188
- // Ensure we are at the end of the list
189
- struct clients_asset * next = (* pca )-> next ;
190
- struct clients_asset * last = * pca ;
191
- while (next != NULL ) {
192
- last = next ;
193
- next = next -> next ;
194
- }
195
-
196
- * pca = last ;
197
- }
198
-
199
- void clients_asset_add (struct clients_asset * * pca , int id )
200
- {
201
- assert (id > 0 );
202
-
203
- if (* pca == NULL ) {
204
- clients_asset_init (pca , id );
205
- return ;
206
- }
207
-
208
- clients_asset_get_end (pca );
209
-
210
- clients_asset_init (& ((* pca )-> next ), id );
211
- struct clients_asset * next = (* pca )-> next ;
212
- next -> prev = * pca ;
213
- }
214
-
215
- bool clients_asset_remove (struct clients_asset * * pca , int id )
216
- {
217
- assert (* pca != NULL );
218
- assert (id > 0 );
219
-
220
- bool found = clients_asset_find (pca , id );
221
- if (found ) {
222
- clients_asset_free (pca );
223
- return true;
224
- }
225
-
226
- return false;
227
- }
228
-
229
- bool clients_asset_find (struct clients_asset * * pca , int id )
230
- {
231
- if (* pca == NULL )
232
- return false;
233
- assert (id > 0 );
234
-
235
- clients_asset_get_beg (pca );
236
-
237
- struct clients_asset * next = NULL ;
238
- struct clients_asset * curr = * pca ;
239
- do {
240
- if (curr -> client_id == id ) {
241
- * pca = curr ;
242
- return true;
243
- }
244
- next = curr -> next ;
245
- curr = next ;
246
- } while (curr != NULL );
247
-
248
- return false;
249
- }
0 commit comments