add sectorcollection

This commit is contained in:
Ivan Morozov
2022-06-10 15:28:59 +03:00
parent 87c3d6cf9d
commit e049cff2ed
9 changed files with 67 additions and 37 deletions

View File

@ -3,7 +3,7 @@
using namespace CFCPP;
StreamRW::StreamRW(std::fstream &stream)
StreamRW::StreamRW(const Stream &stream)
: stream(stream)
{
buffer.fill(0);
@ -11,8 +11,8 @@ StreamRW::StreamRW(std::fstream &stream)
T_LONG64 StreamRW::Seek(T_LONG64 offset)
{
stream.seekg(offset);
return stream.tellg();
stream->seekg(offset);
return stream->tellg();
}
@ -20,13 +20,19 @@ template<size_t N>
std::array<BYTE, N> StreamRW::ReadArray()
{
std::array<BYTE,N> arr(0);
stream.read(reinterpret_cast<char*>(arr.data()), N);
stream->read(reinterpret_cast<char*>(arr.data()), N);
return arr;
}
std::vector<BYTE> StreamRW::ReadArray(int lenght)
{
std::vector<BYTE> arr(lenght,0);
stream->read(reinterpret_cast<char*>(arr.data()), lenght);
return arr;
}
void StreamRW::WriteArray(BYTE *arr, int lenght)
{
stream.write(reinterpret_cast<char*>(arr), lenght);
stream->write(reinterpret_cast<char*>(arr), lenght);
}
template<class T>
@ -34,7 +40,7 @@ T StreamRW::Read()
{
T value;
char* asByteArr = reinterpret_cast<char*>(&value);
stream.read(asByteArr, sizeof (T));
stream->read(asByteArr, sizeof (T));
std::reverse(asByteArr, asByteArr + sizeof (T));
return value;
}
@ -44,5 +50,5 @@ void StreamRW::Write(T value)
{
char* asByteArr = reinterpret_cast<char*>(&value);
std::reverse(asByteArr, asByteArr + sizeof (T));
stream.write(asByteArr, sizeof (T));
stream->write(asByteArr, sizeof (T));
}