basic_binstreambuf< _Ch, _Tr > Class Template Reference

#include <binarystream.h>

List of all members.

Public Member Functions

 basic_binstreambuf (std::streamsize sz)
 basic_binstreambuf (const _Ch *p)
virtual ~basic_binstreambuf ()
_Ch * givebuf ()
size_t outbufsize () const

Static Public Member Functions

static size_t computesize (size_t s)

Private Attributes

_Ch * _outbuf
_Ch * _inbuf


Detailed Description

template<class _Ch, class _Tr = std::char_traits<_Ch>>
class basic_binstreambuf< _Ch, _Tr >

Definition at line 26 of file binarystream.h.


Constructor & Destructor Documentation

template<class _Ch, class _Tr = std::char_traits<_Ch>>
basic_binstreambuf< _Ch, _Tr >::basic_binstreambuf ( std::streamsize  sz  )  [inline]

Definition at line 29 of file binarystream.h.

References basic_binstreambuf< _Ch, _Tr >::_outbuf.

00029                                           : _outbuf(new _Ch[sz + sizeof(std::streamsize)/sizeof(_Ch)]), _inbuf(0) {
00030         memcpy(_outbuf, &sz, sizeof(std::streamsize));
00031         setp (_outbuf + sizeof(std::streamsize), _outbuf + sz*sizeof(_Ch) + sizeof(unsigned int));
00032     }

template<class _Ch, class _Tr = std::char_traits<_Ch>>
basic_binstreambuf< _Ch, _Tr >::basic_binstreambuf ( const _Ch *  p  )  [inline]

Definition at line 33 of file binarystream.h.

References basic_binstreambuf< _Ch, _Tr >::_inbuf.

00033                                       : _outbuf(0), _inbuf(0) {
00034         std::streamsize    sz = *((const std::streamsize*)p);
00035         _inbuf = new _Ch[sz];
00036         memcpy (_inbuf, p + sizeof(std::streamsize), sz);
00037         setg (_inbuf, _inbuf, _inbuf + sz * sizeof(_Ch));
00038     }

template<class _Ch, class _Tr = std::char_traits<_Ch>>
virtual basic_binstreambuf< _Ch, _Tr >::~basic_binstreambuf (  )  [inline, virtual]

Definition at line 39 of file binarystream.h.

References basic_binstreambuf< _Ch, _Tr >::_inbuf, and basic_binstreambuf< _Ch, _Tr >::_outbuf.

00039 { delete _outbuf; delete _inbuf; }


Member Function Documentation

template<class _Ch, class _Tr = std::char_traits<_Ch>>
static size_t basic_binstreambuf< _Ch, _Tr >::computesize ( size_t  s  )  [inline, static]

Definition at line 56 of file binarystream.h.

Referenced by basic_binostream< _Ch, _Tr >::computesize().

00056                                           {
00057         return s + sizeof(std::streamsize);
00058     }

template<class _Ch, class _Tr = std::char_traits<_Ch>>
_Ch* basic_binstreambuf< _Ch, _Tr >::givebuf (  )  [inline]

Definition at line 42 of file binarystream.h.

References basic_binstreambuf< _Ch, _Tr >::_outbuf.

00042                        {
00043         _Ch*    p = _outbuf;
00044         _outbuf = 0;
00045         return p;
00046     }

template<class _Ch, class _Tr = std::char_traits<_Ch>>
size_t basic_binstreambuf< _Ch, _Tr >::outbufsize (  )  const [inline]

Definition at line 50 of file binarystream.h.

References basic_binstreambuf< _Ch, _Tr >::_outbuf.

00050                                 {
00051         return (_outbuf) ? (sizeof(_Ch) * (*(std::streamsize*)_outbuf) + sizeof(std::streamsize)) : 0;
00052     }


Member Data Documentation

template<class _Ch, class _Tr = std::char_traits<_Ch>>
_Ch* basic_binstreambuf< _Ch, _Tr >::_inbuf [private]

Definition at line 62 of file binarystream.h.

Referenced by basic_binstreambuf< _Ch, _Tr >::basic_binstreambuf(), and basic_binstreambuf< _Ch, _Tr >::~basic_binstreambuf().

template<class _Ch, class _Tr = std::char_traits<_Ch>>
_Ch* basic_binstreambuf< _Ch, _Tr >::_outbuf [private]

Definition at line 61 of file binarystream.h.

Referenced by basic_binstreambuf< _Ch, _Tr >::basic_binstreambuf(), basic_binstreambuf< _Ch, _Tr >::givebuf(), basic_binstreambuf< _Ch, _Tr >::outbufsize(), and basic_binstreambuf< _Ch, _Tr >::~basic_binstreambuf().


Generated on Tue Nov 29 23:17:27 2016 for BOSS_7.0.2 by  doxygen 1.4.7