socket_stream.tpp
Go to the documentation of this file.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_socket_stream<CharT, Traits>::basic_socket_stream()
00037 {
00038 init(&m_buffer);
00039 }
00040
00041
00047 template<typename CharT, typename Traits>
00048 claw::net::basic_socket_stream<CharT, Traits>::basic_socket_stream
00049 ( const char* address, int port )
00050 {
00051 init(&m_buffer);
00052 open(address, port);
00053 }
00054
00055
00059 template<typename CharT, typename Traits>
00060 claw::net::basic_socket_stream<CharT, Traits>::~basic_socket_stream()
00061 {
00062
00063 }
00064
00065
00069 template<typename CharT, typename Traits>
00070 typename claw::net::basic_socket_stream<CharT, Traits>::buffer_type*
00071 claw::net::basic_socket_stream<CharT, Traits>::rdbuf() const
00072 {
00073 return const_cast<buffer_type*>(&m_buffer);
00074 }
00075
00076
00080 template<typename CharT, typename Traits>
00081 bool claw::net::basic_socket_stream<CharT, Traits>::is_open() const
00082 {
00083 return m_buffer.is_open();
00084 }
00085
00086
00092 template<typename CharT, typename Traits>
00093 void claw::net::basic_socket_stream<CharT, Traits>::open( const char* address,
00094 int port )
00095 {
00096 if ( !m_buffer.open(address, port) )
00097 this->setstate(std::ios_base::failbit);
00098 else
00099 this->clear();
00100 }
00101
00102
00108 template<typename CharT, typename Traits>
00109 void claw::net::basic_socket_stream<CharT, Traits>::open( int fd )
00110 {
00111 if ( !m_buffer.open(fd) )
00112 this->setstate(std::ios_base::failbit);
00113 else
00114 this->clear();
00115 }
00116
00117
00121 template<typename CharT, typename Traits>
00122 void claw::net::basic_socket_stream<CharT, Traits>::close()
00123 {
00124 if ( !m_buffer.close() )
00125 this->setstate(std::ios_base::failbit);
00126 }
00127