MLT 7.8.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
35typedef int ( *mlt_deque_compare )( void *a, void *b );
36
38extern int mlt_deque_count( mlt_deque self );
39extern int mlt_deque_push_back( mlt_deque self, void *item );
40extern void *mlt_deque_pop_back( mlt_deque self );
41extern int mlt_deque_push_front( mlt_deque self, void *item );
42extern void *mlt_deque_pop_front( mlt_deque self );
43extern void *mlt_deque_peek_back( mlt_deque self );
44extern void *mlt_deque_peek_front( mlt_deque self );
45extern void *mlt_deque_peek( mlt_deque self, int index );
46extern int mlt_deque_insert( mlt_deque self, void *item, mlt_deque_compare );
47
48extern int mlt_deque_push_back_int( mlt_deque self, int item );
50extern int mlt_deque_push_front_int( mlt_deque self, int item );
54
55extern int mlt_deque_push_back_double( mlt_deque self, double item );
57extern int mlt_deque_push_front_double( mlt_deque self, double item );
61
62extern 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:50
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:421
int mlt_deque_push_back_double(mlt_deque self, double item)
Push a double float to the end.
Definition: mlt_deque.c:339
int mlt_deque_insert(mlt_deque self, void *item, mlt_deque_compare cmp)
Insert an item in a sorted fashion.
Definition: mlt_deque.c:219
void * mlt_deque_peek(mlt_deque self, int index)
Inquire on item in deque but don't remove.
Definition: mlt_deque.c:203
void mlt_deque_close(mlt_deque self)
Destroy the queue.
Definition: mlt_deque.c:432
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:389
void * mlt_deque_pop_back(mlt_deque self)
Pop an item.
Definition: mlt_deque.c:125
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:314
int mlt_deque_push_back_int(mlt_deque self, int item)
Push an integer to the end.
Definition: mlt_deque.c:244
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:326
double mlt_deque_pop_back_double(mlt_deque self)
Pop a double float.
Definition: mlt_deque.c:356
int mlt_deque_pop_front_int(mlt_deque self)
Remove an integer from the start.
Definition: mlt_deque.c:294
void * mlt_deque_peek_front(mlt_deque self)
Inquire on item at front of deque but don't remove.
Definition: mlt_deque.c:190
int mlt_deque_push_back(mlt_deque self, void *item)
Push an item to the end.
Definition: mlt_deque.c:108
void * mlt_deque_pop_front(mlt_deque self)
Remove an item from the start.
Definition: mlt_deque.c:158
mlt_deque mlt_deque_init()
Create a deque.
Definition: mlt_deque.c:62
int mlt_deque_push_front_int(mlt_deque self, int item)
Queue an integer at the start.
Definition: mlt_deque.c:274
int mlt_deque_count(mlt_deque self)
Return the number of items in the deque.
Definition: mlt_deque.c:75
void * mlt_deque_peek_back(mlt_deque self)
Inquire on item at back of deque but don't remove.
Definition: mlt_deque.c:178
int mlt_deque_push_front_double(mlt_deque self, double item)
Queue a double float at the start.
Definition: mlt_deque.c:369
int mlt_deque_pop_back_int(mlt_deque self)
Pop an integer.
Definition: mlt_deque.c:261
int mlt_deque_push_front(mlt_deque self, void *item)
Queue an item at the start.
Definition: mlt_deque.c:138
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:409