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

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

#include <osocket_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_osocket_stream ()
 Constructor.
 basic_osocket_stream (const std::string &address, int port)
 Constructor.
 ~basic_osocket_stream ()
 Destructor.
buffer_typerdbuf () const
 Get the output buffer.
bool is_open () const
 Tell if the stream is open.
void open (const std::string &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 Types

typedef std::basic_ostream
< CharT, Traits > 
super

Private Attributes

buffer_type m_buffer
 The buffer used for output operations.

Detailed Description

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

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

Author:
Julien Jorge

Definition at line 45 of file osocket_stream.hpp.


Member Typedef Documentation

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

Definition at line 54 of file osocket_stream.hpp.

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

Definition at line 48 of file osocket_stream.hpp.

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

Definition at line 50 of file osocket_stream.hpp.

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

Definition at line 52 of file osocket_stream.hpp.

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

Definition at line 51 of file osocket_stream.hpp.

template<typename CharT, typename Traits = std::char_traits<CharT>>
typedef std::basic_ostream<CharT, Traits> claw::net::basic_osocket_stream< CharT, Traits >::super [private]

Definition at line 57 of file osocket_stream.hpp.

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

Definition at line 49 of file osocket_stream.hpp.


Constructor & Destructor Documentation

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

Constructor.

Definition at line 36 of file osocket_stream.tpp.

00037   : super(&m_buffer)
00038 {
00039 
00040 } // basic_osocket_stream::basic_osocket_stream()

template<typename CharT , typename Traits >
claw::net::basic_osocket_stream< CharT, Traits >::basic_osocket_stream ( const std::string &  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 50 of file osocket_stream.tpp.

00051   : super(&m_buffer)
00052 {
00053   open(address, port);
00054 } // basic_osocket_stream::basic_osocket_stream()

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

Destructor.

Definition at line 61 of file osocket_stream.tpp.

00062 {
00063   // nothing to do
00064 } // basic_osocket_stream::~basic_osocket_stream()


Member Function Documentation

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

Close the connection.

Definition at line 123 of file osocket_stream.tpp.

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

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

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

Tell if the stream is open.

Definition at line 82 of file osocket_stream.tpp.

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

00083 {
00084   return m_buffer.is_open();
00085 } // basic_osocket_stream::()

template<typename CharT , typename Traits >
void claw::net::basic_osocket_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 110 of file osocket_stream.tpp.

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

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

template<typename CharT , typename Traits >
void claw::net::basic_osocket_stream< CharT, Traits >::open ( const std::string &  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 95 of file osocket_stream.tpp.

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

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

Get the output buffer.

Definition at line 72 of file osocket_stream.tpp.

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

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


Member Data Documentation

template<typename CharT, typename Traits = std::char_traits<CharT>>
buffer_type claw::net::basic_osocket_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