queue.h File Reference

Go to the source code of this file.

Classes

struct  queue_state_t

Defines

#define _SPANDSP_QUEUE_H_
#define QUEUE_READ_ATOMIC   0x0001
#define QUEUE_WRITE_ATOMIC   0x0002
#define QUEUE_STATE_T_SIZE(len)   (sizeof(queue_state_t) + len + 1)

Functions

int queue_empty (queue_state_t *s)
 Check if a queue is empty.
int queue_free_space (queue_state_t *s)
 Check available free space.
int queue_contents (queue_state_t *s)
 Check the contents of a queue.
void queue_flush (queue_state_t *s)
 Flush the contents of a queue.
int queue_view (queue_state_t *s, uint8_t *buf, int len)
 Copy bytes from a queue.
int queue_read (queue_state_t *s, uint8_t *buf, int len)
 Read bytes from a queue.
int queue_read_byte (queue_state_t *s)
 Read a byte from a queue.
int queue_write (queue_state_t *s, const uint8_t *buf, int len)
 Write bytes to a queue.
int queue_write_byte (queue_state_t *s, uint8_t byte)
 Write a byte to a queue.
int queue_state_test_msg (queue_state_t *s)
 Test message length.
int queue_read_msg (queue_state_t *s, uint8_t *buf, int len)
 Read a message from a queue.
int queue_write_msg (queue_state_t *s, const uint8_t *buf, int len)
 Write a message to a queue.
queue_state_tqueue_init (queue_state_t *s, int len, int flags)
 Initialise a queue.
int queue_free (queue_state_t *s)
 Delete a queue.


Detailed Description


Define Documentation

#define QUEUE_READ_ATOMIC   0x0001
 

Flag bit to indicate queue reads are atomic operations. This must be set if the queue is to be used with the message oriented functions.

#define QUEUE_WRITE_ATOMIC   0x0002
 

Flag bit to indicate queue writes are atomic operations. This must be set if the queue is to be used with the message oriented functions.


Function Documentation

int queue_contents queue_state_t s  ) 
 

Check the contents of a queue.

Check the contents of a queue.

Parameters:
s The queue context.
Returns:
The number of bytes in the queue.

int queue_empty queue_state_t s  ) 
 

Check if a queue is empty.

Check if a queue is empty.

Parameters:
s The queue context.
Returns:
TRUE if empty, else FALSE.

void queue_flush queue_state_t s  ) 
 

Flush the contents of a queue.

Flush the contents of a queue.

Parameters:
s The queue context.

int queue_free queue_state_t s  ) 
 

Delete a queue.

Delete a queue.

Parameters:
s The queue context.
Returns:
0 if deleted OK, else -1.

int queue_free_space queue_state_t s  ) 
 

Check available free space.

Check the available free space in a queue's buffer.

Parameters:
s The queue context.
Returns:
The number of bytes of free space.

queue_state_t* queue_init queue_state_t s,
int  len,
int  flags
 

Initialise a queue.

Initialise a queue.

Parameters:
s The queue context. If is imperative that the context this points to is immediately followed by a buffer of the required size + 1 octet.
len The length of the queue's buffer.
flags Flags controlling the operation of the queue. Valid flags are QUEUE_READ_ATOMIC and QUEUE_WRITE_ATOMIC.
Returns:
A pointer to the context if OK, else NULL.

int queue_read queue_state_t s,
uint8_t *  buf,
int  len
 

Read bytes from a queue.

Read bytes from a queue.

Parameters:
s The queue context.
buf The buffer into which the bytes will be read.
len The length of the buffer.
Returns:
the number of bytes returned.

int queue_read_byte queue_state_t s  ) 
 

Read a byte from a queue.

Read a byte from a queue.

Parameters:
s The queue context.
Returns:
the byte, or -1 if the queue is empty.

int queue_read_msg queue_state_t s,
uint8_t *  buf,
int  len
 

Read a message from a queue.

Read a message from a queue. If the message is longer than the buffer provided, only the first len bytes of the message will be returned. The remainder of the message will be discarded.

Parameters:
s The queue context.
buf The buffer into which the message will be read.
len The length of the buffer.
Returns:
The number of bytes returned. If there are no messages in the queue, -1 is returned.

int queue_state_test_msg queue_state_t s  ) 
 

Test message length.

Test the length of the message at the head of a queue.

Parameters:
s The queue context.
Returns:
The length of the next message, in byte. If there are no messages in the queue, -1 is returned.

int queue_view queue_state_t s,
uint8_t *  buf,
int  len
 

Copy bytes from a queue.

Copy bytes from a queue. This is similar to queue_read, but the data remains in the queue.

Parameters:
s The queue context.
buf The buffer into which the bytes will be read.
len The length of the buffer.
Returns:
the number of bytes returned.

int queue_write queue_state_t s,
const uint8_t *  buf,
int  len
 

Write bytes to a queue.

Write bytes to a queue.

Parameters:
s The queue context.
buf The buffer containing the bytes to be written.
len The length of the buffer.
Returns:
the number of bytes actually written.

int queue_write_byte queue_state_t s,
uint8_t  byte
 

Write a byte to a queue.

Write a byte to a queue.

Parameters:
s The queue context.
byte The byte to be written.
Returns:
the number of bytes actually written.

int queue_write_msg queue_state_t s,
const uint8_t *  buf,
int  len
 

Write a message to a queue.

Write a message to a queue.

Parameters:
s The queue context.
buf The buffer from which the message will be written.
len The length of the message.
Returns:
The number of bytes actually written.


Generated on Fri Jan 8 00:06:09 2016 for libspandsp by  doxygen 1.4.6