MLT  7.34.0
mlt_deque.h
Go to the documentation of this file.
1 
23 #ifndef MLT_DEQUE_H
24 #define MLT_DEQUE_H
25 
26 #include "mlt_export.h"
27 #include "mlt_types.h"
28 
36 typedef int (*mlt_deque_compare)(void *a, void *b);
37 
39 MLT_EXPORT int mlt_deque_count(mlt_deque self);
40 MLT_EXPORT int mlt_deque_push_back(mlt_deque self, void *item);
41 MLT_EXPORT void *mlt_deque_pop_back(mlt_deque self);
42 MLT_EXPORT int mlt_deque_push_front(mlt_deque self, void *item);
43 MLT_EXPORT void *mlt_deque_pop_front(mlt_deque self);
44 MLT_EXPORT void *mlt_deque_peek_back(mlt_deque self);
45 MLT_EXPORT void *mlt_deque_peek_front(mlt_deque self);
46 MLT_EXPORT void *mlt_deque_peek(mlt_deque self, int index);
47 MLT_EXPORT int mlt_deque_insert(mlt_deque self, void *item, mlt_deque_compare);
48 
49 MLT_EXPORT int mlt_deque_push_back_int(mlt_deque self, int item);
50 MLT_EXPORT int mlt_deque_pop_back_int(mlt_deque self);
51 MLT_EXPORT int mlt_deque_push_front_int(mlt_deque self, int item);
52 MLT_EXPORT int mlt_deque_pop_front_int(mlt_deque self);
53 MLT_EXPORT int mlt_deque_peek_back_int(mlt_deque self);
54 MLT_EXPORT int mlt_deque_peek_front_int(mlt_deque self);
55 
56 MLT_EXPORT int mlt_deque_push_back_double(mlt_deque self, double item);
57 MLT_EXPORT double mlt_deque_pop_back_double(mlt_deque self);
58 MLT_EXPORT int mlt_deque_push_front_double(mlt_deque self, double item);
59 MLT_EXPORT double mlt_deque_pop_front_double(mlt_deque self);
60 MLT_EXPORT double mlt_deque_peek_back_double(mlt_deque self);
61 MLT_EXPORT double mlt_deque_peek_front_double(mlt_deque self);
62 
63 MLT_EXPORT void mlt_deque_close(mlt_deque self);
64 
65 #endif
Provides forward definitions of all public types.
Double-Ended Queue (deque) class.
Definition: mlt_deque.c:48
double mlt_deque_peek_front_double(mlt_deque self)
Inquire on a double float at front of deque but don't remove.
Definition: mlt_deque.c:411
int mlt_deque_push_back_double(mlt_deque self, double item)
Push a double float to the end.
Definition: mlt_deque.c:331
int mlt_deque_insert(mlt_deque self, void *item, mlt_deque_compare cmp)
Insert an item in a sorted fashion.
Definition: mlt_deque.c:214
void * mlt_deque_peek(mlt_deque self, int index)
Inquire on item in deque but don't remove.
Definition: mlt_deque.c:198
void mlt_deque_close(mlt_deque self)
Destroy the queue.
Definition: mlt_deque.c:422
int(* mlt_deque_compare)(void *a, void *b)
The callback function used to compare items for insert sort.
Definition: mlt_deque.h:36
double mlt_deque_pop_front_double(mlt_deque self)
Remove a double float from the start.
Definition: mlt_deque.c:380
void * mlt_deque_pop_back(mlt_deque self)
Pop an item.
Definition: mlt_deque.c:122
int mlt_deque_peek_back_int(mlt_deque self)
Inquire on an integer at back of deque but don't remove.
Definition: mlt_deque.c:306
int mlt_deque_push_back_int(mlt_deque self, int item)
Push an integer to the end.
Definition: mlt_deque.c:238
int mlt_deque_peek_front_int(mlt_deque self)
Inquire on an integer at front of deque but don't remove.
Definition: mlt_deque.c:318
double mlt_deque_pop_back_double(mlt_deque self)
Pop a double float.
Definition: mlt_deque.c:348
int mlt_deque_pop_front_int(mlt_deque self)
Remove an integer from the start.
Definition: mlt_deque.c:287
void * mlt_deque_peek_front(mlt_deque self)
Inquire on item at front of deque but don't remove.
Definition: mlt_deque.c:185
int mlt_deque_push_back(mlt_deque self, void *item)
Push an item to the end.
Definition: mlt_deque.c:105
void * mlt_deque_pop_front(mlt_deque self)
Remove an item from the start.
Definition: mlt_deque.c:154
mlt_deque mlt_deque_init()
Create a deque.
Definition: mlt_deque.c:60
int mlt_deque_push_front_int(mlt_deque self, int item)
Queue an integer at the start.
Definition: mlt_deque.c:268
int mlt_deque_count(mlt_deque self)
Return the number of items in the deque.
Definition: mlt_deque.c:73
void * mlt_deque_peek_back(mlt_deque self)
Inquire on item at back of deque but don't remove.
Definition: mlt_deque.c:173
int mlt_deque_push_front_double(mlt_deque self, double item)
Queue a double float at the start.
Definition: mlt_deque.c:361
int mlt_deque_pop_back_int(mlt_deque self)
Pop an integer.
Definition: mlt_deque.c:255
int mlt_deque_push_front(mlt_deque self, void *item)
Queue an item at the start.
Definition: mlt_deque.c:135
double mlt_deque_peek_back_double(mlt_deque self)
Inquire on a double float at back of deque but don't remove.
Definition: mlt_deque.c:399