39 #ifndef BLOCXX_DATA_STREAMS_HPP_INCLUDE_GUARD_
40 #define BLOCXX_DATA_STREAMS_HPP_INCLUDE_GUARD_
41 #include "blocxx/BLOCXX_config.h"
43 #if defined(BLOCXX_HAVE_ISTREAM) && defined(BLOCXX_HAVE_OSTREAM)
49 #if defined(BLOCXX_HAVE_STREAMBUF)
51 #elif defined(BLOCXX_HAVE_STREAMBUF_H)
52 #include <streambuf.h>
59 namespace BLOCXX_NAMESPACE
69 setg(const_cast<char*>(reinterpret_cast<const char*>(data)),
70 const_cast<char*>(reinterpret_cast<const char*>(data)),
71 const_cast<char*>(reinterpret_cast<const char*>(data+dataLen)));
74 virtual int underflow();
76 virtual pos_type seekoff(off_type off, std::ios_base::seekdir way, std::ios_base::openmode which);
77 virtual pos_type seekpos(pos_type sp, std::ios_base::openmode which);
83 DataIStreamBase(
int dataLen,
const unsigned char* data) : m_strbuf(dataLen, data) {}
92 , std::basic_istream<char, std::char_traits<char> >(&m_strbuf) {}
99 const unsigned char*
getData()
const {
return &m_bfr[0]; }
100 int length()
const {
return m_bfr.size(); }
103 virtual int overflow(
int c);
104 virtual std::streamsize xsputn(
const char* s, std::streamsize n);
108 #pragma warning (push)
109 #pragma warning (disable: 4251)
115 #pragma warning (pop)
124 :
m_buf(initialSize) {}
134 , std::basic_ostream<char, std::char_traits<char> >(&
m_buf)