template
<
class charT,
class traits = std::char_traits<charT>
>
class TCPStreamBuffer :
public std::basic_streambuf<charT, traits>
{
typedef std::basic_streambuf<charT, traits> sbuftype;
typedef typename sbuftype::int_type int_type;
typedef charT char_type;
// ...
public:
// the buffer will take ownership of the socket
// (ie. it will close it in the destructor)
// if takeowner == true
explicit TCPStreamBuffer (TCPSocketWrapper &sock,
bool takeowner = false,
int_type bufsize = 512);
// ...
protected:
int_type overflow(int_type c = traits::eof());
int_type underflow();
// ...
private:
// copy not supported
TCPStreamBuffer(const TCPStreamBuffer&);
TCPStreamBuffer& operator=(const TCPStreamBuffer&);
TCPSocketWrapper &rsocket_;
bool ownsocket_;
// ...
};
End of Listing