DungeonCrawl
Loading...
Searching...
No Matches
ringbuffer.h
1
5
6#ifndef RINGBUFFER_H
7#define RINGBUFFER_H
8
9#define BUFFER_SIZE 20
10#define MAX_MSG_LENGTH 1024
11
12#ifdef _WIN32
13 #include <windows.h>
14
15typedef struct {
16 char** messages;
17 int head;
18 int tail;
19 int count;
20 CRITICAL_SECTION mutex;
21 CONDITION_VARIABLE cond;
23#else
24 #include <pthread.h>
25
26typedef struct {
27 char** messages;
28 int head;
29 int tail;
30 int count;
31 pthread_mutex_t mutex;
32 pthread_cond_t cond;
34#endif
35
42int init_ringbuffer(ring_buffer_t* buffer);
48void free_ringbuffer(const ring_buffer_t* buffer);
55void write_to_ringbuffer(ring_buffer_t* buffer, const char* message);
63int read_from_ringbuffer(ring_buffer_t* buffer, char* message);
64
65#endif//RINGBUFFER_H