27 #ifndef CDCONTAINERS_INCLUDE_CDCONTAINERS_PRIORITY_QUEUE_H 28 #define CDCONTAINERS_INCLUDE_CDCONTAINERS_PRIORITY_QUEUE_H 170 #ifdef CDC_USE_SHORT_NAMES 173 #define priority_queue_ctor(...) cdc_priority_queue_ctor(__VA_ARGS__) 174 #define priority_queue_ctorl(...) cdc_priority_queue_ctorl(__VA_ARGS__) 175 #define priority_queue_ctorv(...) cdc_priority_queue_ctorv(__VA_ARGS__) 176 #define priority_queue_dtor(...) cdc_priority_queue_dtor(__VA_ARGS__) 179 #define priority_queue_top(...) cdc_priority_queue_top(__VA_ARGS__) 182 #define priority_queue_empty(...) cdc_priority_queue_empty(__VA_ARGS__) 183 #define priority_queue_size(...) cdc_priority_queue_size(__VA_ARGS__) 186 #define priority_queue_push(...) cdc_priority_queue_push(__VA_ARGS__) 187 #define priority_queue_pop(...) cdc_priority_queue_pop(__VA_ARGS__) 188 #define priority_queue_swap(...) cdc_priority_queue_swap(__VA_ARGS__) 191 #endif // CDCONTAINERS_INCLUDE_CDCONTAINERS_PRIORITY_QUEUE_H The cdc_priority_queue_table is a priority queue interface.
The cdc_priority_queue struct.
Definition: priority-queue.h:44
The cdc_priority_queue_table struct.
Definition: ipqueue.h:41
enum cdc_stat cdc_priority_queue_ctor(const struct cdc_priority_queue_table *table, struct cdc_priority_queue **q, struct cdc_data_info *info)
Constructs an empty priority queue.
static bool cdc_priority_queue_empty(struct cdc_priority_queue *q)
Returns true if the priority queue has size 0; otherwise returns false.
Definition: priority-queue.h:114
enum cdc_stat cdc_priority_queue_ctorv(const struct cdc_priority_queue_table *table, struct cdc_priority_queue **q, struct cdc_data_info *info, va_list args)
Constructs a priority queue, initialized by args. The last item must be NULL.
enum cdc_stat(* push)(void *cntr, void *elem)
Definition: ipqueue.h:48
void cdc_priority_queue_dtor(struct cdc_priority_queue *q)
Destroys the priority queue.
const struct cdc_priority_queue_table * table
Definition: priority-queue.h:46
size_t(* size)(void *cntr)
Definition: ipqueue.h:47
void *(* top)(void *cntr)
Definition: ipqueue.h:45
static void * cdc_priority_queue_top(struct cdc_priority_queue *q)
Returns a pointer to the priority queue's top item. This function assumes that the priority queue isn...
Definition: priority-queue.h:100
enum cdc_stat cdc_priority_queue_ctorl(const struct cdc_priority_queue_table *table, struct cdc_priority_queue **q, struct cdc_data_info *info,...)
Constructs a priority queue, initialized by an arbitrary number of pointers. The last item must be NU...
cdc_stat
Definition: status.h:24
void * container
Definition: priority-queue.h:45
void(* pop)(void *cntr)
Definition: ipqueue.h:49
void cdc_priority_queue_swap(struct cdc_priority_queue *a, struct cdc_priority_queue *b)
Swaps priority queues a and b. This operation is very fast and never fails.
static enum cdc_stat cdc_priority_queue_push(struct cdc_priority_queue *q, void *elem)
Adds element elem to the priority queue.
Definition: priority-queue.h:141
static void cdc_priority_queue_pop(struct cdc_priority_queue *q)
Removes the top element.
Definition: priority-queue.h:153
The cdc_data_info struct used to initialize contaners.
Definition: common.h:71
bool(* empty)(void *cntr)
Definition: ipqueue.h:46
static size_t cdc_priority_queue_size(struct cdc_priority_queue *q)
Returns the number of items in the priority queue.
Definition: priority-queue.h:126