#ifndef ACE_IOS_SOCK_IOSTREAM_CPP #define ACE_IOS_SOCK_IOSTREAM_CPP #include "ace/INet/Sock_IOStream.h" #include "ace/INet/IOS_util.h" ACE_BEGIN_VERSIONED_NAMESPACE_DECL namespace ACE { namespace IOS { template Sock_StreamBufferBase::Sock_StreamBufferBase (stream_type* stream) : BidirStreamBuffer > ( stream, BUFFER_SIZE, std::ios::in | std::ios::out) { } template Sock_StreamBufferBase::~Sock_StreamBufferBase () { } template Sock_IOSBase::Sock_IOSBase (stream_type* stream) : streambuf_ (stream) { ace_ios_init (&this->streambuf_); } template Sock_IOSBase::~Sock_IOSBase () { try { this->streambuf_.sync(); } catch (...) { } } template typename Sock_IOSBase::buffer_type* Sock_IOSBase::rdbuf () { return &this->streambuf_; } template void Sock_IOSBase::close () { this->streambuf_.sync (); this->streambuf_.close_stream (); } template const typename Sock_IOSBase::stream_type& Sock_IOSBase::stream () const { return this->streambuf_.stream (); } template Sock_OStreamBase::Sock_OStreamBase(stream_type* stream) : Sock_IOSBase (stream), std::ostream (Sock_IOSBase::rdbuf ()) { } template Sock_OStreamBase::~Sock_OStreamBase() { } template void Sock_OStreamBase::set_interceptor ( typename buffer_type::interceptor_type& interceptor) { this->rdbuf ()->set_interceptor (interceptor); } template Sock_IStreamBase::Sock_IStreamBase(stream_type* stream) : Sock_IOSBase (stream), std::istream (Sock_IOSBase::rdbuf ()) { } template Sock_IStreamBase::~Sock_IStreamBase () { } template void Sock_IStreamBase::set_interceptor ( typename buffer_type::interceptor_type& interceptor) { this->rdbuf ()->set_interceptor (interceptor); } template Sock_IOStreamBase::Sock_IOStreamBase(stream_type* stream) : Sock_IOSBase (stream), std::iostream (Sock_IOSBase::rdbuf ()) { } template Sock_IOStreamBase::~Sock_IOStreamBase () { } template void Sock_IOStreamBase::set_interceptor ( typename buffer_type::interceptor_type& interceptor) { this->rdbuf ()->set_interceptor (interceptor); } } } ACE_END_VERSIONED_NAMESPACE_DECL #endif /* ACE_IOS_SOCK_IOSTREAM_CPP */