Lines Matching refs:queue
20 #define DS_PRIORITY_QUEUE_FOREACH_NODE(queue, node) \ argument
22 ds_priority_queue_t *_queue = queue; \
24 ds_priority_queue_node_t *_last = &_queue->nodes[queue->size - 1]; \
30 #define DS_PRIORITY_QUEUE_FOREACH_VALUE(queue, value) \ argument
32 DS_PRIORITY_QUEUE_FOREACH_NODE(queue, __node) \
36 #define DS_PRIORITY_QUEUE_FOREACH(queue, value, priority) \ argument
38 DS_PRIORITY_QUEUE_FOREACH_NODE(queue, __node) \
54 #define DS_PRIORITY_QUEUE_SIZE(queue) ((queue)->size) argument
55 #define DS_PRIORITY_QUEUE_IS_EMPTY(queue) (DS_PRIORITY_QUEUE_SIZE(queue) == 0) argument
59 void ds_priority_queue_allocate(ds_priority_queue_t *queue, uint32_t capacity);
61 uint32_t ds_priority_queue_capacity(ds_priority_queue_t *queue);
63 zval *ds_priority_queue_peek(ds_priority_queue_t *queue);
65 void ds_priority_queue_pop(ds_priority_queue_t *queue, zval *return_value);
67 void ds_priority_queue_push(ds_priority_queue_t *queue, zval *value, zval *priority);
69 void ds_priority_queue_to_array(ds_priority_queue_t *queue, zval *array);
71 void ds_priority_queue_free(ds_priority_queue_t *queue);
73 void ds_priority_queue_clear(ds_priority_queue_t *queue);
75 ds_priority_queue_t *ds_priority_queue_clone(ds_priority_queue_t * queue);
77 ds_priority_queue_node_t* ds_priority_queue_create_sorted_buffer(ds_priority_queue_t *queue);