-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathinput_queue.h
More file actions
40 lines (28 loc) · 949 Bytes
/
Copy pathinput_queue.h
File metadata and controls
40 lines (28 loc) · 949 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef QUEUE_H_INCLUDED
#define QUEUE_H_INCLUDED
#ifndef GLOBAL_H_INCLUDED
#include "global.h"
#endif // GLOBAL_H_INCLUDED
#ifndef MESSAGE_H_INCLUDED
#include "message.h"
#endif
typedef struct queue_t queue_t;
/**@struct queue_t
* @brief Очередь FIFO
*/
struct queue_t {
message_t data[MAX_QUEUE_SIZE]; /**< Буфер данных*/
uint16_t read_pos; /**< Позиция для чтения */
uint16_t write_pos; /**< Позиция для записи */
uint16_t size; /**< Текущий размер очереди */
};
// queue_t * queue_create();
int queue_init(queue_t *queue);
int queue_push(queue_t *queue, const void *src);
int queue_pop(queue_t *queue, void *dst);
int queue_overflow(queue_t *queue);
int queue_get_size(queue_t *queue);
void queue_invalidate_recs(queue_t *queue, connection_t const *conn);
void queue_flush(queue_t *queue);
void queue_free(queue_t *queue);
#endif // QUEUE_H_INCLUDED