claw::net::basic_socket_stream< CharT, Traits > Class Template Reference

A class to use any socket as a classic standard stream. More...

#include <socket_stream.hpp>

List of all members.

Public Types

typedef CharT char_type
typedef Traits traits_type
typedef traits_type::int_type int_type
typedef traits_type::pos_type pos_type
typedef traits_type::off_type off_type
typedef basic_socketbuf
< char_type, traits_type
buffer_type

Public Member Functions

 basic_socket_stream ()
 Constructor.
 basic_socket_stream (const char *address, int port)
 Constructor.
 ~basic_socket_stream ()
 Destructor.
buffer_typerdbuf () const
 Get the buffer.
bool is_open () const
 Tell if the stream is open.
void open (const char *address, int port)
 Connect the socket to an address.
void open (int fd)
 Link the socket to a file descriptor.
void close ()
 Close the connection.

Private Attributes

buffer_type m_buffer
 The buffer used for operations.

Detailed Description

template<typename CharT, typename Traits = std::char_traits<CharT>>
class claw::net::basic_socket_stream< CharT, Traits >

A class to use any socket as a classic standard stream.

Author:
Julien Jorge

Definition at line 45 of file socket_stream.hpp.


Member Typedef Documentation

template<typename CharT , typename Traits = std::char_traits<CharT>>
typedef basic_socketbuf<char_type, traits_type> claw::net::basic_socket_stream< CharT, Traits >::buffer_type

Definition at line 54 of file socket_stream.hpp.

template<typename CharT , typename Traits = std::char_traits<CharT>>
typedef CharT claw::net::basic_socket_stream< CharT, Traits >::char_type

Definition at line 48 of file socket_stream.hpp.

template<typename CharT , typename Traits = std::char_traits<CharT>>
typedef traits_type::int_type claw::net::basic_socket_stream< CharT, Traits >::int_type

Definition at line 50 of file socket_stream.hpp.

template<typename CharT , typename Traits = std::char_traits<CharT>>
typedef traits_type::off_type claw::net::basic_socket_stream< CharT, Traits >::off_type

Definition at line 52 of file socket_stream.hpp.

template<typename CharT , typename Traits = std::char_traits<CharT>>
typedef traits_type::pos_type claw::net::basic_socket_stream< CharT, Traits >::pos_type

Definition at line 51 of file socket_stream.hpp.

template<typename CharT , typename Traits = std::char_traits<CharT>>
typedef Traits claw::net::basic_socket_stream< CharT, Traits >::traits_type

Definition at line 49 of file socket_stream.hpp.


Constructor & Destructor Documentation

template<typename CharT , typename Traits >
claw::net::basic_socket_stream< CharT, Traits >::basic_socket_stream (  )  [inline]

Constructor.

Definition at line 36 of file socket_stream.tpp.

References claw::net::basic_socket_stream< CharT, Traits >::m_buffer.

00037 {
00038   init(&m_buffer);
00039 } // basic_socket_stream::basic_socket_stream()

template<typename CharT , typename Traits >
claw::net::basic_socket_stream< CharT, Traits >::basic_socket_stream ( const char *  address,
int  port 
) [inline]

Constructor.

Parameters:
address The address to which we will connect.
port The port number to use for the connection.

Definition at line 49 of file socket_stream.tpp.

00050 {
00051   init(&m_buffer);
00052   open(address, port);
00053 } // basic_socket_stream::basic_socket_stream()

template<typename CharT , typename Traits >
claw::net::basic_socket_stream< CharT, Traits >::~basic_socket_stream (  )  [inline]

Destructor.

Definition at line 60 of file socket_stream.tpp.

00061 {
00062   // nothing to do
00063 } // basic_socket_stream::~basic_socket_stream()


Member Function Documentation

template<typename CharT , typename Traits >
void claw::net::basic_socket_stream< CharT, Traits >::close (  )  [inline]

Close the connection.

Definition at line 122 of file socket_stream.tpp.

References claw::net::basic_socketbuf< CharT, Traits >::close(), and claw::net::basic_socket_stream< CharT, Traits >::m_buffer.

00123 {
00124   if ( !m_buffer.close() )
00125     this->setstate(std::ios_base::failbit);
00126 } // basic_socket_stream::close()

template<typename CharT , typename Traits >
bool claw::net::basic_socket_stream< CharT, Traits >::is_open (  )  const [inline]

Tell if the stream is open.

Definition at line 81 of file socket_stream.tpp.

References claw::net::basic_socketbuf< CharT, Traits >::is_open(), and claw::net::basic_socket_stream< CharT, Traits >::m_buffer.

00082 {
00083   return m_buffer.is_open();
00084 } // basic_socket_stream::()

template<typename CharT , typename Traits >
void claw::net::basic_socket_stream< CharT, Traits >::open ( int  fd  )  [inline]

Link the socket to a file descriptor.

Parameters:
fd The file descriptor.
Remarks:
This method should be only called by claw::net::socket_server.

Definition at line 109 of file socket_stream.tpp.

References claw::net::basic_socket_stream< CharT, Traits >::m_buffer, and claw::net::basic_socketbuf< CharT, Traits >::open().

00110 {
00111   if ( !m_buffer.open(fd) )
00112     this->setstate(std::ios_base::failbit);
00113   else
00114     this->clear();
00115 } // basic_socket_stream::open()

template<typename CharT , typename Traits >
void claw::net::basic_socket_stream< CharT, Traits >::open ( const char *  address,
int  port 
) [inline]

Connect the socket to an address.

Parameters:
address The address to which we will connect.
port The port number to use for the connection.

Definition at line 93 of file socket_stream.tpp.

References claw::net::basic_socket_stream< CharT, Traits >::m_buffer, and claw::net::basic_socketbuf< CharT, Traits >::open().

00095 {
00096   if ( !m_buffer.open(address, port) )
00097     this->setstate(std::ios_base::failbit);
00098   else
00099     this->clear();
00100 } // basic_socket_stream::open()

template<typename CharT , typename Traits >
claw::net::basic_socket_stream< CharT, Traits >::buffer_type * claw::net::basic_socket_stream< CharT, Traits >::rdbuf (  )  const [inline]

Get the buffer.

Definition at line 71 of file socket_stream.tpp.

References claw::net::basic_socket_stream< CharT, Traits >::m_buffer.

00072 {
00073   return const_cast<buffer_type*>(&m_buffer);
00074 } // basic_socket_stream::rdbuf()


Member Data Documentation

template<typename CharT , typename Traits = std::char_traits<CharT>>
buffer_type claw::net::basic_socket_stream< CharT, Traits >::m_buffer [private]

The documentation for this class was generated from the following files:

Generated on 9 Nov 2009 for CLAW Library (a C++ Library Absolutely Wonderful) by  doxygen 1.6.1