picox  0.1
Xmessage_buffer

可変長バイトデータを格納するコンテナ [詳解]

Xmessage_buffer 連携図

データ構造

struct  XMessageBuffer
 可変長バイトデータの管理構造体 [詳解]
 
union  XMessageHeader
 メッセージヘッダ [詳解]
 

関数

static size_t xmsgbuf_capacity (const XMessageBuffer *self)
 バッファに格納できる最大バイト数を返します
 
static void xmsgbuf_clear (XMessageBuffer *self)
 バッファを空にします
 
static uint8_t * xmsgbuf_data (const XMessageBuffer *self)
 要素を格納するバッファを返します
 
static bool xmsgbuf_empty (const XMessageBuffer *self)
 バッファが空かどうかを返します
 
static bool xmsgbuf_full (const XMessageBuffer *self)
 バッファが満タンかどうかを返します [詳解]
 
static void xmsgbuf_init (XMessageBuffer *self, void *buffer, size_t size)
 バッファを初期化します [詳解]
 
static size_t xmsgbuf_msg_size (const XMessageBuffer *self)
 先頭メッセージのバイト数を返します
 
static size_t xmsgbuf_num (const XMessageBuffer *self)
 格納メッセージ数を返します
 
static size_t xmsgbuf_pull (XMessageBuffer *self, void *dst)
 バッファ先頭からメッセージを取り出し、メッセージサイズを返します [詳解]
 
static void xmsgbuf_push (XMessageBuffer *self, const void *src, size_t size)
 バッファ末尾にメッセージを追加します [詳解]
 
static size_t xmsgbuf_reserve (const XMessageBuffer *self)
 バッファの空きバイト数を返します
 
static size_t xmsgbuf_size (const XMessageBuffer *self)
 バッファに格納されているバイト数を返します [詳解]
 
static void xmsgbuf_skip (XMessageBuffer *self)
 先頭メッセージを読み飛ばします
 

詳解

可変長バイトデータを格納するコンテナ

関数詳解

static bool xmsgbuf_full ( const XMessageBuffer self)
inlinestatic

バッファが満タンかどうかを返します

xmsgbuf_reserve() <= sizeof(XMessageHeader)の時も、これ以上メッセージを格納できな い為、満タンと判定します。

static void xmsgbuf_init ( XMessageBuffer self,
void *  buffer,
size_t  size 
)
inlinestatic

バッファを初期化します

事前条件
  • buffer != NULL
  • size > sizeof(XMessageHeader)

bufferはこのオブジェクトが不要になるまで、ユーザー側が保持しておく必要があり ます。

static size_t xmsgbuf_pull ( XMessageBuffer self,
void *  dst 
)
inlinestatic

バッファ先頭からメッセージを取り出し、メッセージサイズを返します

事前条件
static void xmsgbuf_push ( XMessageBuffer self,
const void *  src,
size_t  size 
)
inlinestatic

バッファ末尾にメッセージを追加します

事前条件
static size_t xmsgbuf_size ( const XMessageBuffer self)
inlinestatic

バッファに格納されているバイト数を返します

サイズにはメッセージヘッダのバイト数も含まれます。