// wxMemoryInputStream
// ----------------------------------------------------------------------------
+IMPLEMENT_ABSTRACT_CLASS(wxMemoryInputStream, wxInputStream)
+
wxMemoryInputStream::wxMemoryInputStream(const void *data, size_t len)
{
m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read);
}
const size_t len = wx_truncate_cast(size_t, lenFile);
- wxASSERT_MSG( len == lenFile + size_t(0), _T("huge files not supported") );
+ wxASSERT_MSG( len == lenFile + size_t(0), wxT("huge files not supported") );
m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read);
m_i_streambuf->SetBufferIO(len); // create buffer
}
const size_t len = wx_truncate_cast(size_t, lenFile);
- wxASSERT_MSG( (wxFileOffset)len == lenFile, _T("huge files not supported") );
+ wxASSERT_MSG( (wxFileOffset)len == lenFile, wxT("huge files not supported") );
m_i_streambuf = new wxStreamBuffer(wxStreamBuffer::read);
m_i_streambuf->SetBufferIO(len); // create buffer
m_length = stream.LastRead();
}
+bool wxMemoryInputStream::CanRead() const
+{
+ return m_i_streambuf->GetIntPosition() != m_length;
+}
+
wxMemoryInputStream::~wxMemoryInputStream()
{
delete m_i_streambuf;
// wxMemoryOutputStream
// ----------------------------------------------------------------------------
+IMPLEMENT_DYNAMIC_CLASS(wxMemoryOutputStream, wxOutputStream)
+
wxMemoryOutputStream::wxMemoryOutputStream(void *data, size_t len)
{
m_o_streambuf = new wxStreamBuffer(wxStreamBuffer::write);
size_t wxMemoryOutputStream::CopyTo(void *buffer, size_t len) const
{
- wxCHECK_MSG( buffer, 0, _T("must have buffer to CopyTo") );
+ wxCHECK_MSG( buffer, 0, wxT("must have buffer to CopyTo") );
if ( len > GetSize() )
len = GetSize();