00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00031
00035 template<typename CharT, typename Traits>
00036 claw::net::basic_isocket_stream<CharT, Traits>::basic_isocket_stream()
00037 : super(&m_buffer)
00038 {
00039
00040 }
00041
00042
00048 template<typename CharT, typename Traits>
00049 claw::net::basic_isocket_stream<CharT, Traits>::basic_isocket_stream
00050 ( const std::string& address, int port )
00051 : super(&m_buffer)
00052 {
00053 open(address, port);
00054 }
00055
00056
00060 template<typename CharT, typename Traits>
00061 claw::net::basic_isocket_stream<CharT, Traits>::~basic_isocket_stream()
00062 {
00063
00064 }
00065
00066
00070 template<typename CharT, typename Traits>
00071 typename claw::net::basic_isocket_stream<CharT, Traits>::buffer_type*
00072 claw::net::basic_isocket_stream<CharT, Traits>::rdbuf() const
00073 {
00074 return const_cast<buffer_type*>(&m_buffer);
00075 }
00076
00077
00081 template<typename CharT, typename Traits>
00082 bool claw::net::basic_isocket_stream<CharT, Traits>::is_open() const
00083 {
00084 return m_buffer.is_open();
00085 }
00086
00087
00093 template<typename CharT, typename Traits>
00094 void claw::net::basic_isocket_stream<CharT, Traits>::open
00095 ( const std::string& address, int port )
00096 {
00097 if ( !m_buffer.open(address, port) )
00098 this->setstate(std::ios_base::failbit);
00099 else
00100 this->clear();
00101 }
00102
00103
00109 template<typename CharT, typename Traits>
00110 void claw::net::basic_isocket_stream<CharT, Traits>::open( int fd )
00111 {
00112 if ( !m_buffer.open(fd) )
00113 this->setstate(std::ios_base::failbit);
00114 else
00115 this->clear();
00116 }
00117
00118
00122 template<typename CharT, typename Traits>
00123 void claw::net::basic_isocket_stream<CharT, Traits>::close()
00124 {
00125 if ( !m_buffer.close() )
00126 this->setstate(std::ios_base::failbit);
00127 }
00128