MLT  7.24.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_types.h"
27 
35 typedef int (*mlt_deque_compare)(void *a, void *b);
36 
38 extern int mlt_deque_count(mlt_deque self);
39 extern int mlt_deque_push_back(mlt_deque self, void *item);
40 extern void *mlt_deque_pop_back(mlt_deque self);
41 extern int mlt_deque_push_front(mlt_deque self, void *item);
42 extern void *mlt_deque_pop_front(mlt_deque self);
43 extern void *mlt_deque_peek_back(mlt_deque self);
44 extern void *mlt_deque_peek_front(mlt_deque self);
45 extern void *mlt_deque_peek(mlt_deque self, int index);
46 extern int mlt_deque_insert(mlt_deque self, void *item, mlt_deque_compare);
47 
48 extern int mlt_deque_push_back_int(mlt_deque self, int item);
50 extern int mlt_deque_push_front_int(mlt_deque self, int item);
54 
55 extern int mlt_deque_push_back_double(mlt_deque self, double item);
57 extern int mlt_deque_push_front_double(mlt_deque self, double item);
61 
62 extern void mlt_deque_close(mlt_deque self);
63 
64 #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:35
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