mirror of
https://github.com/faye/websocket-driver-ruby.git
synced 2025-11-01 13:59:38 +00:00
36 lines
924 B
C
36 lines
924 B
C
#ifndef _wsd_queue_h
|
|
#define _wsd_queue_h
|
|
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
|
|
|
|
typedef struct wsd_QueueNode wsd_QueueNode;
|
|
|
|
wsd_QueueNode * wsd_QueueNode_create(void *value);
|
|
void wsd_QueueNode_destroy(wsd_QueueNode *node);
|
|
|
|
|
|
typedef struct wsd_Queue wsd_Queue;
|
|
|
|
typedef void (*wsd_Queue_cb)(void *value);
|
|
|
|
wsd_Queue * wsd_Queue_create();
|
|
void wsd_Queue_destroy(wsd_Queue *queue);
|
|
void wsd_Queue_each(wsd_Queue *queue, wsd_Queue_cb callback);
|
|
int wsd_Queue_push(wsd_Queue *queue, void *value);
|
|
void * wsd_Queue_peek(wsd_Queue *queue);
|
|
void * wsd_Queue_shift(wsd_Queue *queue);
|
|
|
|
|
|
typedef struct wsd_QueueIter {
|
|
wsd_QueueNode *node;
|
|
void *value;
|
|
} wsd_QueueIter;
|
|
|
|
wsd_QueueIter * wsd_QueueIter_create(wsd_Queue *queue);
|
|
void wsd_QueueIter_destroy(wsd_QueueIter *iter);
|
|
void wsd_QueueIter_next(wsd_QueueIter *iter);
|
|
|
|
#endif
|