8#ifndef MFRAME_BA359EBF_505B_445E_8A31_2AB82A22FEB8
9#define MFRAME_BA359EBF_505B_445E_8A31_2AB82A22FEB8
18#include "./../io/Buffer.h"
19#include "./../lang/Memory.h"
43 volatile uint32 vCount;
44 volatile uint32 vHead;
45 volatile uint32 vTail;
46 volatile bool vUnlock;
84 virtual void flush(
void)
override;
116 virtual int putByte(
const char data)
override;
132 return static_cast<int>(RingBuffer::vCount);
141 return static_cast<int>((this->vHead & (this->vCount - 1)));
150 return static_cast<int>((this->vTail & (this->vCount - 1)));
Definition RingBuffer.h:38
RingBuffer(const mframe::lang::Memory &memory)
Construct a new Ring Buffer object.
virtual int poll(mframe::lang::Appendable &appendable) override
檢索至Appendable指定數量字節,並由此緩衝區刪除
virtual int remaining(void) const override
取得緩衝區剩餘空閒字節數。
virtual int put(const void *pointer, int length) override
將指針內資料輸入至緩衝區。
RingBuffer(int length)
Construct a new Ring Buffer object.
int getTailPosition(void)
Get the Tail Position object `.
Definition RingBuffer.h:149
virtual int put(mframe::lang::Readable &readable) override
將readable內資料輸入至緩衝區。
virtual ~RingBuffer(void) override
Destroy the Ring Buffer object.
virtual int skip(int length) override
跳躍指定的字結數量,並由此緩衝區刪除。
virtual void flush(void) override
int getSize(void)
Return size the ring buffer.
Definition RingBuffer.h:131
virtual void lock(bool lock) override
鎖定緩存,取出不移除。
virtual int poll(void *pointer, int length) override
檢索至pointer指定數量字節,並由此緩衝區刪除
virtual int avariable(void) const override
取得輸出緩存內剩餘多少位元組
int getHeadPosition(void)
Get the Head Position object.
Definition RingBuffer.h:140
virtual int putByte(const char data) override
將字節輸入至緩衝區。
virtual int pollByte(char &result) override
檢索一個字節,並由此緩衝區刪除
int length(void) const
Definition Data.h:126
int lock(void) const
核心鎖定,在調用unlock以前將不會進行執行緒切換
E * pointer(void) const
模板方法,取得內部指標並轉換為指定型態(不指定偏移)
Definition Pointer.h:409
Definition AppendableOutputStream.h:24
可附加的 <Interface>
Definition Appendable.h:36