blocxx
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes

BLOCXX_NAMESPACE::SocketBaseImpl Class Reference

#include <SocketBaseImpl.hpp>

Inheritance diagram for BLOCXX_NAMESPACE::SocketBaseImpl:
BLOCXX_NAMESPACE::SelectableIFC BLOCXX_NAMESPACE::IOIFC BLOCXX_NAMESPACE::IntrusiveCountableBase BLOCXX_NAMESPACE::SocketImpl BLOCXX_NAMESPACE::SSLSocketImpl

List of all members.

Public Member Functions

 SocketBaseImpl ()
 SocketBaseImpl (SocketHandle_t fd, SocketAddress::AddressType addrType)
 SocketBaseImpl (const SocketAddress &addr)
virtual ~SocketBaseImpl ()
virtual void connect (const SocketAddress &addr)
virtual void disconnect ()
void setReceiveTimeout (const Timeout &timeout)
Timeout getReceiveTimeout () const
void setSendTimeout (const Timeout &timeout)
Timeout getSendTimeout () const
void setConnectTimeout (const Timeout &timeout)
Timeout getConnectTimeout () const
void setTimeouts (const Timeout &timeout)
bool receiveTimeOutExpired () const
int write (const void *dataOut, int dataOutLen, ErrorAction errorAsException=E_RETURN_ON_ERROR)
 Write a specified number of bytes to the device that is exposing the IOIFC interface.
int read (void *dataIn, int dataInLen, ErrorAction errorAsException=E_RETURN_ON_ERROR)
 Read a specified number of bytes from the device that is exposing the IOIFC interface.
virtual bool waitForInput (const Timeout &timeout)
bool waitForOutput (const Timeout &timeout)
std::istream & getInputStream ()
std::ostream & getOutputStream ()
std::iostream & getIOStream ()
SocketAddress getLocalAddress () const
SocketAddress getPeerAddress () const
SocketHandle_t getfd () const
Select_t getSelectObj () const
bool isConnected () const

Static Public Member Functions

static void setDumpFiles (const String &in, const String &out)

Protected Member Functions

virtual int readAux (void *dataIn, int dataInLen)=0
virtual int writeAux (const void *dataOut, int dataOutLen)=0

Protected Attributes

bool m_isConnected
SocketHandle_t m_sockfd
SocketAddress m_localAddress
SocketAddress m_peerAddress

Private Member Functions

void fillInetAddrParms ()
void fillUnixAddrParms ()
 SocketBaseImpl (const SocketBaseImpl &arg)
SocketBaseImploperator= (const SocketBaseImpl &arg)

Private Attributes

bool m_recvTimeoutExprd
SocketStreamBuffer m_streamBuf
std::istream m_in
std::ostream m_out
std::iostream m_inout
Timeout m_recvTimeout
Timeout m_sendTimeout
Timeout m_connectTimeout

Static Private Attributes

static String m_traceFileOut
static String m_traceFileIn

Detailed Description

Definition at line 68 of file SocketBaseImpl.hpp.


Constructor & Destructor Documentation

BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl ( )

Definition at line 97 of file SocketBaseImpl.cpp.

References m_inout, and m_out.

BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl ( SocketHandle_t  fd,
SocketAddress::AddressType  addrType 
)
BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl ( const SocketAddress addr)

Definition at line 150 of file SocketBaseImpl.cpp.

References connect(), m_inout, m_out, and m_peerAddress.

BLOCXX_NAMESPACE::SocketBaseImpl::~SocketBaseImpl ( ) [virtual]

Definition at line 171 of file SocketBaseImpl.cpp.

References disconnect().

BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl ( const SocketBaseImpl arg) [private]

Member Function Documentation

void BLOCXX_NAMESPACE::SocketBaseImpl::connect ( const SocketAddress addr) [virtual]

Reimplemented in BLOCXX_NAMESPACE::SSLSocketImpl.

Definition at line 190 of file SocketBaseImpl.cpp.

References BLOCXX_NAMESPACE::TimeoutTimer::asRelativeTimeout(), BLOCXX_ASSERT, BLOCXX_THROW, BLOCXX_THROW_ERRNO_MSG, BLOCXX_NAMESPACE::String::c_str(), BLOCXX_NAMESPACE::IntrusiveReference< T >::cast_to(), disconnect(), BLOCXX_NAMESPACE::String::empty(), BLOCXX_NAMESPACE::TimeoutTimer::expired(), fillInetAddrParms(), fillUnixAddrParms(), BLOCXX_NAMESPACE::AutoResource< Policy >::get(), getfd(), BLOCXX_NAMESPACE::SocketAddress::getInetAddress(), BLOCXX_NAMESPACE::DateTime::getMicrosecond(), BLOCXX_NAMESPACE::SocketAddress::getNativeForm(), BLOCXX_NAMESPACE::SocketAddress::getNativeFormSize(), BLOCXX_NAMESPACE::Socket::getShutDownMechanism(), BLOCXX_NAMESPACE::SocketAddress::getType(), BLOCXX_NAMESPACE::SocketAddress::INET, BLOCXX_NAMESPACE::TimeoutTimer::loop(), m_connectTimeout, m_in, m_inout, m_isConnected, m_out, m_peerAddress, m_sockfd, m_streamBuf, m_traceFileOut, BLOCXX_NAMESPACE::Array< T >::push_back(), BLOCXX_NAMESPACE::AutoResource< Policy >::release(), BLOCXX_NAMESPACE::IOIFCStreamBuffer::reset(), BLOCXX_NAMESPACE::Select::SELECT_ERROR, BLOCXX_NAMESPACE::Select::SELECT_TIMEOUT, BLOCXX_NAMESPACE::Select::selectRW(), BLOCXX_NAMESPACE::DateTime::setToCurrent(), BLOCXX_NAMESPACE::Array< T >::size(), BLOCXX_NAMESPACE::TimeoutTimer::start(), BLOCXX_NAMESPACE::ThreadImpl::testCancel(), BLOCXX_NAMESPACE::DateTime::toString(), BLOCXX_NAMESPACE::SocketAddress::toString(), BLOCXX_NAMESPACE::SocketAddress::UDS, and BLOCXX_NAMESPACE::Select::SelectObject::waitForRead.

Referenced by SocketBaseImpl().

void BLOCXX_NAMESPACE::SocketBaseImpl::disconnect ( ) [virtual]
void BLOCXX_NAMESPACE::SocketBaseImpl::fillInetAddrParms ( ) [private]
void BLOCXX_NAMESPACE::SocketBaseImpl::fillUnixAddrParms ( ) [private]
Timeout BLOCXX_NAMESPACE::SocketBaseImpl::getConnectTimeout ( ) const [inline]

Definition at line 82 of file SocketBaseImpl.hpp.

SocketHandle_t BLOCXX_NAMESPACE::SocketBaseImpl::getfd ( ) const [inline]

Definition at line 96 of file SocketBaseImpl.hpp.

Referenced by connect(), disconnect(), read(), and write().

istream & BLOCXX_NAMESPACE::SocketBaseImpl::getInputStream ( )

Definition at line 574 of file SocketBaseImpl.cpp.

References m_in.

iostream & BLOCXX_NAMESPACE::SocketBaseImpl::getIOStream ( )

Definition at line 586 of file SocketBaseImpl.cpp.

References m_inout.

SocketAddress BLOCXX_NAMESPACE::SocketBaseImpl::getLocalAddress ( ) const [inline]

Definition at line 94 of file SocketBaseImpl.hpp.

ostream & BLOCXX_NAMESPACE::SocketBaseImpl::getOutputStream ( )

Definition at line 580 of file SocketBaseImpl.cpp.

References m_out.

SocketAddress BLOCXX_NAMESPACE::SocketBaseImpl::getPeerAddress ( ) const [inline]

Definition at line 95 of file SocketBaseImpl.hpp.

Timeout BLOCXX_NAMESPACE::SocketBaseImpl::getReceiveTimeout ( ) const [inline]

Definition at line 78 of file SocketBaseImpl.hpp.

Select_t BLOCXX_NAMESPACE::SocketBaseImpl::getSelectObj ( ) const [virtual]

Implements BLOCXX_NAMESPACE::SelectableIFC.

Reimplemented in BLOCXX_NAMESPACE::SocketImpl, and BLOCXX_NAMESPACE::SSLSocketImpl.

Definition at line 184 of file SocketBaseImpl.cpp.

References m_sockfd.

Timeout BLOCXX_NAMESPACE::SocketBaseImpl::getSendTimeout ( ) const [inline]

Definition at line 80 of file SocketBaseImpl.hpp.

bool BLOCXX_NAMESPACE::SocketBaseImpl::isConnected ( ) const [inline]

Definition at line 98 of file SocketBaseImpl.hpp.

SocketBaseImpl& BLOCXX_NAMESPACE::SocketBaseImpl::operator= ( const SocketBaseImpl arg) [private]
int BLOCXX_NAMESPACE::SocketBaseImpl::read ( void *  dataIn,
int  dataInLen,
ErrorAction  errorAsException = E_RETURN_ON_ERROR 
) [virtual]

Read a specified number of bytes from the device that is exposing the IOIFC interface.

Parameters:
dataInA pointer to a location in memory to put the bytes that have been read.
dataInLenThe number of bytes being requested from the device.
errorAsExceptionIf true and an error occurs durring the read operation, then throw an exception.
Exceptions:
Anexception will be thrown upon an error condition if errorAsException is true.
Returns:
The number of bytes actually read from the device, or -1 on error. If the device is set to nonblocking and no input is available, -1 will be returned and errno will be set to ETIMEDOUT

Implements BLOCXX_NAMESPACE::IOIFC.

Definition at line 494 of file SocketBaseImpl.cpp.

References BLOCXX_THROW_ERRNO_MSG, BLOCXX_NAMESPACE::String::c_str(), BLOCXX_NAMESPACE::IOIFC::E_THROW_ON_ERROR, BLOCXX_NAMESPACE::String::empty(), getfd(), BLOCXX_NAMESPACE::DateTime::getMicrosecond(), m_isConnected, m_recvTimeout, m_traceFileIn, m_traceFileOut, readAux(), BLOCXX_NAMESPACE::DateTime::setToCurrent(), BLOCXX_NAMESPACE::DateTime::toString(), and waitForInput().

Referenced by BLOCXX_NAMESPACE::SocketImpl::readAux().

virtual int BLOCXX_NAMESPACE::SocketBaseImpl::readAux ( void *  dataIn,
int  dataInLen 
) [protected, pure virtual]
bool BLOCXX_NAMESPACE::SocketBaseImpl::receiveTimeOutExpired ( ) const [inline]

Definition at line 84 of file SocketBaseImpl.hpp.

void BLOCXX_NAMESPACE::SocketBaseImpl::setConnectTimeout ( const Timeout timeout) [inline]

Definition at line 81 of file SocketBaseImpl.hpp.

void BLOCXX_NAMESPACE::SocketBaseImpl::setDumpFiles ( const String in,
const String out 
) [static]

Definition at line 593 of file SocketBaseImpl.cpp.

References m_traceFileIn, and m_traceFileOut.

void BLOCXX_NAMESPACE::SocketBaseImpl::setReceiveTimeout ( const Timeout timeout) [inline]

Definition at line 77 of file SocketBaseImpl.hpp.

void BLOCXX_NAMESPACE::SocketBaseImpl::setSendTimeout ( const Timeout timeout) [inline]

Definition at line 79 of file SocketBaseImpl.hpp.

void BLOCXX_NAMESPACE::SocketBaseImpl::setTimeouts ( const Timeout timeout) [inline]

Definition at line 83 of file SocketBaseImpl.hpp.

bool BLOCXX_NAMESPACE::SocketBaseImpl::waitForInput ( const Timeout timeout) [virtual]
bool BLOCXX_NAMESPACE::SocketBaseImpl::waitForOutput ( const Timeout timeout)
int BLOCXX_NAMESPACE::SocketBaseImpl::write ( const void *  dataOut,
int  dataOutLen,
ErrorAction  errorAsException = E_RETURN_ON_ERROR 
) [virtual]

Write a specified number of bytes to the device that is exposing the IOIFC interface.

Parameters:
dataOutA pointer to a location in memory that contains the bytes that will be written to the device.
dataOutLenThe length of the data pointed to by the dataOut param.
errorAsExceptionIf true and an error occurs durring the write operation, then throw an exception.
Exceptions:
Anexception will be thrown upon an error condition if errorAsException is true.
Returns:
The number of bytes actually written to the device. or -1 on error. If the device is set to nonblocking and the write would block, -1 will be returned and errno will be set to ETIMEDOUT.

Implements BLOCXX_NAMESPACE::IOIFC.

Definition at line 438 of file SocketBaseImpl.cpp.

References BLOCXX_THROW_ERRNO_MSG, BLOCXX_NAMESPACE::String::c_str(), BLOCXX_NAMESPACE::IOIFC::E_THROW_ON_ERROR, BLOCXX_NAMESPACE::String::empty(), getfd(), BLOCXX_NAMESPACE::DateTime::getMicrosecond(), m_isConnected, m_sendTimeout, m_traceFileOut, BLOCXX_NAMESPACE::DateTime::setToCurrent(), BLOCXX_NAMESPACE::DateTime::toString(), waitForOutput(), and writeAux().

Referenced by BLOCXX_NAMESPACE::SocketImpl::writeAux().

virtual int BLOCXX_NAMESPACE::SocketBaseImpl::writeAux ( const void *  dataOut,
int  dataOutLen 
) [protected, pure virtual]

Member Data Documentation

Definition at line 130 of file SocketBaseImpl.hpp.

Referenced by connect().

Definition at line 125 of file SocketBaseImpl.hpp.

Referenced by connect(), disconnect(), and getInputStream().

Definition at line 127 of file SocketBaseImpl.hpp.

Referenced by connect(), disconnect(), getIOStream(), and SocketBaseImpl().

Definition at line 104 of file SocketBaseImpl.hpp.

Referenced by connect(), disconnect(), read(), and write().

Definition at line 106 of file SocketBaseImpl.hpp.

Referenced by fillInetAddrParms(), and fillUnixAddrParms().

Definition at line 126 of file SocketBaseImpl.hpp.

Referenced by connect(), disconnect(), getOutputStream(), and SocketBaseImpl().

Definition at line 107 of file SocketBaseImpl.hpp.

Referenced by connect(), fillInetAddrParms(), fillUnixAddrParms(), and SocketBaseImpl().

Definition at line 128 of file SocketBaseImpl.hpp.

Referenced by read().

Definition at line 123 of file SocketBaseImpl.hpp.

Referenced by waitForInput().

Definition at line 129 of file SocketBaseImpl.hpp.

Referenced by write().

Definition at line 124 of file SocketBaseImpl.hpp.

Referenced by connect().

Definition at line 133 of file SocketBaseImpl.hpp.

Referenced by read(), and setDumpFiles().

Definition at line 132 of file SocketBaseImpl.hpp.

Referenced by connect(), disconnect(), read(), setDumpFiles(), and write().


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