common: Add a FIFOQueue helper class
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include "YBaseLib/ByteStream.h"
|
||||
#include "fifo_queue.h"
|
||||
#include "types.h"
|
||||
#include <cstring>
|
||||
#include <deque>
|
||||
@ -134,6 +135,29 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T, u32 CAPACITY>
|
||||
void Do(FIFOQueue<T, CAPACITY>* data)
|
||||
{
|
||||
u32 size = data->GetSize();
|
||||
Do(&size);
|
||||
|
||||
if (m_mode == Mode::Read)
|
||||
{
|
||||
T* temp = new T[size];
|
||||
DoArray(temp, size);
|
||||
data->PushRange(temp, size);
|
||||
delete[] temp;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (u32 i = 0; i < size; i++)
|
||||
{
|
||||
T temp(data->Peek(i));
|
||||
Do(&temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool DoMarker(const char* marker);
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user