MyGUI_DataMemoryStream.cpp
Go to the documentation of this file.
/*
* This source file is part of MyGUI. For the latest info, see http://mygui.info/
* Distributed under the MIT License
* (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
*/
#include "MyGUI_Precompiled.h"
#include "MyGUI_DataMemoryStream.h"
namespace MyGUI
{
DataMemoryStream::DataMemoryStream() :
mData(nullptr),
mSize(0),
mStream(nullptr)
{
}
DataMemoryStream::DataMemoryStream(unsigned char* _data, size_t _size) :
mData(_data),
mSize(_size),
mStream(nullptr)
{
}
DataMemoryStream::~DataMemoryStream()
{
delete mStream;
}
size_t DataMemoryStream::size()
{
return mSize;
}
bool DataMemoryStream::eof()
{
if (mStream == nullptr)
prepareStream();
return mStream->eof();
}
void DataMemoryStream::readline(std::string& _source, Char _delim)
{
if (mStream == nullptr)
prepareStream();
std::getline(*mStream, _source, (char)_delim);
}
size_t DataMemoryStream::read(void* _buf, size_t _count)
{
if (mData == nullptr)
return 0;
size_t count = (std::min)(size(), _count);
::memcpy(_buf, mData, count);
return count;
}
void DataMemoryStream::prepareStream()
{
if (mData == nullptr)
return;
mStream = new std::stringstream((const char*)mData);
}
} // namespace MyGUI
MyGUI_DataMemoryStream.h
MyGUI_Precompiled.h
MyGUI::DataMemoryStream::readline
void readline(std::string &_source, Char _delim) override
Definition MyGUI_DataMemoryStream.cpp:45
MyGUI::DataMemoryStream::eof
bool eof() override
Definition MyGUI_DataMemoryStream.cpp:37
MyGUI::DataMemoryStream::mSize
size_t mSize
Definition MyGUI_DataMemoryStream.h:33
MyGUI::DataMemoryStream::size
size_t size() override
Definition MyGUI_DataMemoryStream.cpp:32
MyGUI::DataMemoryStream::~DataMemoryStream
~DataMemoryStream() override
Definition MyGUI_DataMemoryStream.cpp:27
MyGUI::DataMemoryStream::mStream
std::stringstream * mStream
Definition MyGUI_DataMemoryStream.h:34
MyGUI::DataMemoryStream::read
size_t read(void *_buf, size_t _count) override
Definition MyGUI_DataMemoryStream.cpp:53
MyGUI::DataMemoryStream::mData
unsigned char * mData
Definition MyGUI_DataMemoryStream.h:32
MyGUI::DataMemoryStream::DataMemoryStream
DataMemoryStream()
Definition MyGUI_DataMemoryStream.cpp:13
MyGUI
Definition MyGUI_ActionController.h:15
MyGUI::Char
unsigned int Char
Definition MyGUI_Types.h:50