27 #ifndef CDCONTAINERS_INCLUDE_CDCONTAINERS_DEQUE_H 28 #define CDCONTAINERS_INCLUDE_CDCONTAINERS_DEQUE_H 303 #ifdef CDC_USE_SHORT_NAMES 307 #define deque_ctor(...) cdc_deque_ctor(__VA_ARGS__) 308 #define deque_ctorl(...) cdc_deque_ctorl(__VA_ARGS__) 309 #define deque_ctorv(...) cdc_deque_ctorv(__VA_ARGS__) 310 #define deque_dtor(...) cdc_deque_dtor(__VA_ARGS__) 313 #define deque_get(...) cdc_deque_get(__VA_ARGS__) 314 #define deque_front(...) cdc_deque_front(__VA_ARGS__) 315 #define deque_back(...) cdc_deque_back(__VA_ARGS__) 318 #define deque_empty(...) cdc_deque_empty(__VA_ARGS__) 319 #define deque_size(...) cdc_deque_size(__VA_ARGS__) 322 #define deque_set(...) cdc_deque_set(__VA_ARGS__) 323 #define deque_insert(...) cdc_deque_insert(__VA_ARGS__) 324 #define deque_erase(...) cdc_deque_erase(__VA_ARGS__) 325 #define deque_clear(...) cdc_deque_clear(__VA_ARGS__) 326 #define deque_push_back(...) cdc_deque_push_back(__VA_ARGS__) 327 #define deque_pop_back(...) cdc_deque_pop_back(__VA_ARGS__) 328 #define deque_push_front(...) cdc_deque_push_front(__VA_ARGS__) 329 #define deque_pop_front(...) cdc_deque_pop_back(__VA_ARGS__) 330 #define deque_swap(...) cdc_deque_swap(__VA_ARGS__) 333 #endif // CDCONTAINERS_INCLUDE_CDCONTAINERS_DEQUE_H void(* pop_back)(void *cntr)
Definition: isequence.h:50
static void * cdc_deque_get(struct cdc_deque *d, size_t index)
Returns the item at index position index in the deque. Index must be a valid index position in the de...
Definition: deque.h:115
void cdc_deque_dtor(struct cdc_deque *d)
Destroys the deque.
enum cdc_stat(* insert)(void *cntr, size_t index, void *value)
Definition: isequence.h:53
void *(* get)(void *cntr, size_t index)
Definition: isequence.h:56
void *(* front)(void *cntr)
Definition: isequence.h:45
enum cdc_stat cdc_deque_ctorl(const struct cdc_sequence_table *table, struct cdc_deque **d, struct cdc_data_info *info,...)
Constructs a deque, initialized by an arbitrary number of pointers. The last item must be NULL...
static void cdc_deque_pop_back(struct cdc_deque *d)
Removes the last item in the deque.
Definition: deque.h:260
static void cdc_deque_clear(struct cdc_deque *d)
Removes all the elements from the deque.
Definition: deque.h:234
static void cdc_deque_erase(struct cdc_deque *d, size_t index)
Removes the element at index position. Index must be a valid index position in the deque...
Definition: deque.h:223
void(* clear)(void *cntr)
Definition: isequence.h:55
static size_t cdc_deque_size(struct cdc_deque *d)
Returns the number of items in the deque.
Definition: deque.h:172
static enum cdc_stat cdc_deque_push_front(struct cdc_deque *d, void *value)
Inserts value at the beginning of the deque.
Definition: deque.h:274
enum cdc_stat(* push_front)(void *cntr, void *elem)
Definition: isequence.h:51
static enum cdc_stat cdc_deque_insert(struct cdc_deque *d, size_t index, void *value)
Inserts value at index position in the deque. If index is 0, the value is prepended to the deque...
Definition: deque.h:209
void cdc_deque_swap(struct cdc_deque *a, struct cdc_deque *b)
Swaps deques a and b. This operation is very fast and never fails.
void *(* back)(void *cntr)
Definition: isequence.h:46
The cdc_sequence_table is a sequence container interface.
void * container
Definition: deque.h:50
bool(* empty)(void *cntr)
Definition: isequence.h:47
void(* set)(void *cntr, size_t index, void *value)
Definition: isequence.h:57
cdc_stat
Definition: status.h:24
size_t(* size)(void *cntr)
Definition: isequence.h:48
static void cdc_deque_set(struct cdc_deque *d, size_t index, void *value)
Sets the deque at index position to the value. The function is not called to free memory...
Definition: deque.h:192
const struct cdc_sequence_table * table
Definition: deque.h:51
enum cdc_stat cdc_deque_ctorv(const struct cdc_sequence_table *table, struct cdc_deque **d, struct cdc_data_info *info, va_list args)
Constructs a deque, initialized by args. The last item must be NULL.
static void * cdc_deque_front(struct cdc_deque *d)
Returns a pointer to the first item in the deque. This function assumes that the deque isn't empty...
Definition: deque.h:128
enum cdc_stat(* push_back)(void *cntr, void *elem)
Definition: isequence.h:49
enum cdc_stat cdc_deque_ctor(const struct cdc_sequence_table *table, struct cdc_deque **d, struct cdc_data_info *info)
Constructs an empty deque.
void(* pop_front)(void *cntr)
Definition: isequence.h:52
static bool cdc_deque_empty(struct cdc_deque *d)
Returns true if the deque has size 0; otherwise returns false.
Definition: deque.h:160
The cdc_data_info struct used to initialize contaners.
Definition: common.h:71
static enum cdc_stat cdc_deque_push_back(struct cdc_deque *d, void *value)
Inserts value at the end of the deque.
Definition: deque.h:248
The cdc_deque struct.
Definition: deque.h:49
static void * cdc_deque_back(struct cdc_deque *d)
Returns a pointer to the last item in the deque. This function assumes that the deque isn't empty...
Definition: deque.h:141
void(* erase)(void *cntr, size_t index)
Definition: isequence.h:54
static void cdc_deque_pop_front(struct cdc_deque *d)
Removes the first item in the deque.
Definition: deque.h:286
The cdc_sequence_table struct.
Definition: isequence.h:41