13GX_P2P_NAMESPACE_BEGIN()
18template <typename T,
size_t N>
57 constexpr nu32 getMaxQueueNum(
void)
const {
return _maxQueueNum; }
82template <
typename T,
size_t N>
99template <
typename T,
size_t N>
109template <
typename T,
size_t N>
112 return queue(
reinterpret_cast<GX_CSTR
>(&input),
sizeof(T));
121template <
typename T,
size_t N>
125 GXP2P_DEBUG_ASSERT(size <=
sizeof(T),
"QueueBuffer Overflow (size:%d > blockSize:%d)\n", size,
sizeof(T));
147 dequeue(_buffer[_head]);
152 T* pFree = &_buffer[_tail];
153 GX_MEMCPY(pFree, input, size);
165 if( _maxQueueNum < _num )
168 GXP2P_FUNCTION_PRINT(
"[%s] Queue Max Num Update (%d : max[%d])\n", _maxQueueNum, N);
180template <
typename T,
size_t N>
190 GX_MEMCPY(&output, &_buffer[_head],
sizeof(T));
203GX_P2P_NAMESPACE_END()
#define GXP2P_DEBUG_ASSERT(a,...)
アサートマクロ
Definition GxP2PDebug.h:233
Queueクラス
Definition GxP2PQueue.h:20
GxP2PQueue(void)
デフォルトコンストラクタ
Definition GxP2PQueue.h:83
T _buffer[N]
バッファ
Definition GxP2PQueue.h:66
nu32 _head
先頭位置
Definition GxP2PQueue.h:68
b32 dequeue(T &output)
キューから取得
Definition GxP2PQueue.h:181
nu32 _num
現在格納数
Definition GxP2PQueue.h:70
b32 _isOverWrite
オーバーフロー時上書きフラグ
Definition GxP2PQueue.h:71
nu32 _tail
終端位置
Definition GxP2PQueue.h:69
size_t _bufferSize
バッファサイズ
Definition GxP2PQueue.h:67
const void setOverWrite(b32 isOverWrite)
オーバーフロー時上書き設定
Definition GxP2PQueue.h:52
virtual ~GxP2PQueue(void)
デストラクタ
Definition GxP2PQueue.h:100
b32 queue(const T &input)
キューに格納
Definition GxP2PQueue.h:110
constexpr nu32 getQueueNum(void) const
キュー格納数取得
Definition GxP2PQueue.h:54
b32 queue(GX_CSTR input, size_t size)
キューに格納
Definition GxP2PQueue.h:122
32bitブーリアン
Definition GxDefine.h:173