AT&T ECOMP Vendor Event Listener library
0.1
|
A ring buffer. More...
#include <pthread.h>
Go to the source code of this file.
Data Structures | |
struct | ring_buffer |
Ring buffer structure. More... | |
Typedefs | |
typedef struct ring_buffer | ring_buffer |
Ring buffer structure. More... | |
Functions | |
void | ring_buffer_initialize (ring_buffer *buffer, int size) |
Ring buffer initialization. More... | |
void * | ring_buffer_read (ring_buffer *buffer) |
Read an element from a ring_buffer. More... | |
int | ring_buffer_write (ring_buffer *buffer, void *msg) |
Write an element into a ring_buffer. More... | |
int | ring_buffer_is_empty (ring_buffer *buffer) |
Tests whether there is data in the ring_buffer. More... | |
A ring buffer.
Copyright(c) <2016>, AT&T Intellectual Property. All other rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY AT&T INTELLECTUAL PROPERTY ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AT&T INTELLECTUAL PROPERTY BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Definition in file ring_buffer.h.
typedef struct ring_buffer ring_buffer |
Ring buffer structure.
void ring_buffer_initialize | ( | ring_buffer * | buffer, |
int | size | ||
) |
Ring buffer initialization.
Initialize the buffer supplied to the specified size.
buffer | Pointer to the ring-buffer to be initialized. |
size | How many elements to be stored in the ring-buffer. |
Definition at line 53 of file ring_buffer.c.
int ring_buffer_is_empty | ( | ring_buffer * | buffer | ) |
Tests whether there is data in the ring_buffer.
Tests whether there is currently data in the ring_buffer without blocking.
buffer | Pointer to the ring-buffer to be tested. |
0 | There isn't any data in the ring_buffer. |
1 | There is data in the ring_buffer. |
Definition at line 194 of file ring_buffer.c.
void* ring_buffer_read | ( | ring_buffer * | buffer | ) |
Read an element from a ring_buffer.
Reads an element from the ring_buffer, advancing the next-read position. Operation is synchronized and therefore MT-safe. Blocks if no data is available.
buffer | Pointer to the ring-buffer to be read. |
Definition at line 100 of file ring_buffer.c.
int ring_buffer_write | ( | ring_buffer * | buffer, |
void * | msg | ||
) |
Write an element into a ring_buffer.
Writes an element into the ring_buffer, advancing the next-write position. Operation is synchronized and therefore MT-safe. Fails if the buffer is full without blocking.
buffer | Pointer to the ring-buffer to be written. |
msg | Pointer to data to be stored in the ring_buffer. |
1 | The data was written successfully. |
0 | The ring_buffer was full so no data written. |
Definition at line 146 of file ring_buffer.c.