AT&T ECOMP Vendor Event Listener library  0.1
ring_buffer.h
Go to the documentation of this file.
1 #ifndef RING_BUFFER_INCLUDED
2 #define RING_BUFFER_INCLUDED
3 
4 /**************************************************************************/
40 #include <pthread.h>
41 
42 /**************************************************************************/
45 typedef struct ring_buffer
46 {
47  int size;
49  int next_read;
50  void ** ring;
51  pthread_cond_t ring_cv;
52  pthread_mutex_t ring_mutex;
53 } ring_buffer;
54 
55 /**************************************************************************/
65 void ring_buffer_initialize(ring_buffer * buffer, int size);
66 
67 /**************************************************************************/
78 void * ring_buffer_read(ring_buffer * buffer);
79 
80 /**************************************************************************/
94 int ring_buffer_write(ring_buffer * buffer, void * msg);
95 
96 /**************************************************************************/
107 int ring_buffer_is_empty(ring_buffer * buffer);
108 
109 #endif
void * ring_buffer_read(ring_buffer *buffer)
Read an element from a ring_buffer.
Definition: ring_buffer.c:100
pthread_cond_t ring_cv
Definition: ring_buffer.h:51
int ring_buffer_write(ring_buffer *buffer, void *msg)
Write an element into a ring_buffer.
Definition: ring_buffer.c:146
pthread_mutex_t ring_mutex
Definition: ring_buffer.h:52
void ring_buffer_initialize(ring_buffer *buffer, int size)
Ring buffer initialization.
Definition: ring_buffer.c:53
struct ring_buffer ring_buffer
Ring buffer structure.
int ring_buffer_is_empty(ring_buffer *buffer)
Tests whether there is data in the ring_buffer.
Definition: ring_buffer.c:194
void ** ring
Definition: ring_buffer.h:50
Ring buffer structure.
Definition: ring_buffer.h:45
int next_write
Definition: ring_buffer.h:48