picox  0.1
xcircular_buffer.h ファイル
#include <picox/core/xcore.h>
xcircular_buffer.h の依存先関係図:
被依存関係図:

[ソースコード]

データ構造

struct  XCircularBuffer
 

マクロ定義

#define XCBUF__ADD(p, n)    ((p) + ((n) < (size_t)(self->m_end - (p)) ? (n) : (n) - XCBUF__CAPACITY()))
 
#define XCBUF__CAPACITY()    ((size_t)(self->m_end - self->m_buff))
 
#define XCBUF__DECREMENT(p)   do { if (p == self->m_buff) p = self->m_end; --p; } while (0)
 
#define XCBUF__INCREMENT(p)   do { if (++p == self->m_end) p = self->m_buff; } while (0)
 
#define XCBUf__SUB(p, n)    ((p) - ((n) > ((p) - self->m_buff) ? (n) - XCBUF__CAPACITY() : (n)))
 

関数

static const uint8_t * xcbuf_array_one (const XCircularBuffer *self, size_t *o_size)
 バッファの先頭側の配列を返します [詳解]
 
static const uint8_t * xcbuf_array_two (const XCircularBuffer *self, size_t *o_size)
 バッファの後方側の配列を返します
 
static uint8_t xcbuf_back (XCircularBuffer *self)
 バッファの末尾要素を返します
 
static size_t xcbuf_capacity (const XCircularBuffer *self)
 バッファに格納可能な最大要素数を返します
 
static void xcbuf_clear (XCircularBuffer *self)
 バッファを空にします
 
static const uint8_t * xcbuf_const_data (const XCircularBuffer *self)
 バッファのコンストな先頭アドレスを返します
 
static void xcbuf_copy_to_mem (const XCircularBuffer *self, size_t pos, void *dst, size_t n)
 バッファから位置を指定してnバイトをdstにコピーします
 
static uint8_t * xcbuf_data (XCircularBuffer *self)
 バッファの先頭アドレスを返します
 
static void xcbuf_deinit (XCircularBuffer *self)
 バッファの終了処理を行います
 
static bool xcbuf_empty (const XCircularBuffer *self)
 バッファがからかどうかを返します
 
static uint8_t xcbuf_front (XCircularBuffer *self)
 バッファの先頭要素を返します
 
static bool xcbuf_full (const XCircularBuffer *self)
 バッファが満タンかどうかを返します
 
static bool xcbuf_init (XCircularBuffer *self, void *buffer, size_t capacity)
 循環バッファを初期化します [詳解]
 
static bool xcbuf_is_linearized (const XCircularBuffer *self)
 バッファの要素が直線に並んでいるかどうかを返します
 
static uint8_t * xcbuf_linearize (XCircularBuffer *self)
 バッファの要素を直線に並べ替えます
 
static uint8_t xcbuf_pop_back (XCircularBuffer *self)
 バッファの末尾要素を返し、末尾要素は除去されます
 
static void xcbuf_pop_back_n (XCircularBuffer *self, void *dst, size_t n)
 バッファの後方からnバイトを除去し、dstにコピーします [詳解]
 
static uint8_t xcbuf_pop_front (XCircularBuffer *self)
 バッファの先頭要素を返し、先頭要素は除去されます
 
static void xcbuf_pop_front_n (XCircularBuffer *self, void *dst, size_t n)
 バッファの先頭からnバイトを除去し、dstにコピーします [詳解]
 
static void xcbuf_push_back (XCircularBuffer *self, uint8_t value)
 バッファ末尾に要素を追加します [詳解]
 
static void xcbuf_push_back_n (XCircularBuffer *self, const void *src, size_t n)
 バッファ末尾にnバイトを追加します [詳解]
 
static void xcbuf_push_front (XCircularBuffer *self, uint8_t value)
 バッファ先頭に要素を追加します [詳解]
 
static void xcbuf_push_front_n (XCircularBuffer *self, const void *src, size_t n)
 バッファ先頭にnバイトを追加します [詳解]
 
static size_t xcbuf_reserve (const XCircularBuffer *self)
 バッファに格納可能な残り要素数を返します
 
static size_t xcbuf_size (const XCircularBuffer *self)
 バッファの要素数を返します
 

詳解

著者
MaskedW