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 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 (int seconds)
int getReceiveTimeout () const
void setSendTimeout (int seconds)
int getSendTimeout () const
void setConnectTimeout (int seconds)
int getConnectTimeout () const
void setTimeouts (int seconds)
bool receiveTimeOutExpired () const
int write (const void *dataOut, int dataOutLen, bool errorAsException=false)
 Write a specified number of bytes to the device that is exposing the IOIFC interface.
int read (void *dataIn, int dataInLen, bool errorAsException=false)
 Read a specified number of bytes from the device that is exposing the IOIFC interface.
virtual bool waitForInput (int timeOutSecs=-1)
bool waitForOutput (int timeOutSecs=-1)
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
int m_recvTimeout
int m_sendTimeout
int m_connectTimeout

Static Private Attributes

static String m_traceFileOut
static String m_traceFileIn

Detailed Description

Definition at line 65 of file SocketBaseImpl.hpp.


Constructor & Destructor Documentation

BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl  ) 
 

Definition at line 92 of file SocketBaseImpl.cpp.

References m_inout, and m_out.

BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl SocketHandle_t  fd,
SocketAddress::AddressType  addrType
 

Definition at line 112 of file SocketBaseImpl.cpp.

References BLOCXX_ASSERT, fillInetAddrParms(), fillUnixAddrParms(), BLOCXX_NAMESPACE::SocketAddress::INET, m_inout, m_out, and BLOCXX_NAMESPACE::SocketAddress::UDS.

BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl const SocketAddress addr  ) 
 

Definition at line 145 of file SocketBaseImpl.cpp.

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

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

Definition at line 166 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]
 

Definition at line 185 of file SocketBaseImpl.cpp.

References BLOCXX_ASSERT, BLOCXX_THROW_ERRNO_MSG, disconnect(), BLOCXX_NAMESPACE::SocketAddress::getType(), BLOCXX_NAMESPACE::SocketAddress::INET, m_in, m_inout, m_isConnected, m_out, m_sockfd, m_streamBuf, BLOCXX_NAMESPACE::IOIFCStreamBuffer::reset(), and BLOCXX_NAMESPACE::SocketAddress::UDS.

Referenced by SocketBaseImpl().

void BLOCXX_NAMESPACE::SocketBaseImpl::disconnect  )  [virtual]
 

Definition at line 361 of file SocketBaseImpl.cpp.

References BLOCXX_NAMESPACE::FileSystem::close(), m_in, m_inout, m_isConnected, and m_out.

Referenced by connect(), and ~SocketBaseImpl().

void BLOCXX_NAMESPACE::SocketBaseImpl::fillInetAddrParms  )  [private]
 

Definition at line 385 of file SocketBaseImpl.cpp.

References BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm(), m_localAddress, and m_peerAddress.

Referenced by SocketBaseImpl().

void BLOCXX_NAMESPACE::SocketBaseImpl::fillUnixAddrParms  )  [private]
 

Definition at line 415 of file SocketBaseImpl.cpp.

References BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm(), BLOCXX_THROW_ERRNO_MSG, m_localAddress, and m_peerAddress.

Referenced by SocketBaseImpl().

int BLOCXX_NAMESPACE::SocketBaseImpl::getConnectTimeout  )  const [inline]
 

Definition at line 79 of file SocketBaseImpl.hpp.

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

Definition at line 93 of file SocketBaseImpl.hpp.

istream & BLOCXX_NAMESPACE::SocketBaseImpl::getInputStream  ) 
 

Definition at line 565 of file SocketBaseImpl.cpp.

References m_in.

iostream & BLOCXX_NAMESPACE::SocketBaseImpl::getIOStream  ) 
 

Definition at line 577 of file SocketBaseImpl.cpp.

References m_inout.

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

Definition at line 91 of file SocketBaseImpl.hpp.

ostream & BLOCXX_NAMESPACE::SocketBaseImpl::getOutputStream  ) 
 

Definition at line 571 of file SocketBaseImpl.cpp.

References m_out.

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

Definition at line 92 of file SocketBaseImpl.hpp.

int BLOCXX_NAMESPACE::SocketBaseImpl::getReceiveTimeout  )  const [inline]
 

Definition at line 75 of file SocketBaseImpl.hpp.

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

Implements BLOCXX_NAMESPACE::SelectableIFC.

Reimplemented in BLOCXX_NAMESPACE::SocketImpl.

Definition at line 179 of file SocketBaseImpl.cpp.

References m_sockfd.

int BLOCXX_NAMESPACE::SocketBaseImpl::getSendTimeout  )  const [inline]
 

Definition at line 77 of file SocketBaseImpl.hpp.

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

Definition at line 95 of file SocketBaseImpl.hpp.

SocketBaseImpl& BLOCXX_NAMESPACE::SocketBaseImpl::operator= const SocketBaseImpl arg  )  [private]
 

int BLOCXX_NAMESPACE::SocketBaseImpl::read void *  dataIn,
int  dataInLen,
bool  errorAsException = false
[virtual]
 

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

Parameters:
dataIn A pointer to a location in memory to put the bytes that have been read.
dataInLen The number of bytes being requested from the device.
errorAsException If true and an error occurs durring the read operation, then throw an exception.
Exceptions:
An exception 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.

Implements BLOCXX_NAMESPACE::IOIFC.

Definition at line 486 of file SocketBaseImpl.cpp.

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

virtual int BLOCXX_NAMESPACE::SocketBaseImpl::readAux void *  dataIn,
int  dataInLen
[protected, pure virtual]
 

Implemented in BLOCXX_NAMESPACE::SocketImpl.

Referenced by read().

bool BLOCXX_NAMESPACE::SocketBaseImpl::receiveTimeOutExpired  )  const [inline]
 

Definition at line 81 of file SocketBaseImpl.hpp.

void BLOCXX_NAMESPACE::SocketBaseImpl::setConnectTimeout int  seconds  )  [inline]
 

Definition at line 78 of file SocketBaseImpl.hpp.

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

Definition at line 584 of file SocketBaseImpl.cpp.

References m_traceFileIn, and m_traceFileOut.

void BLOCXX_NAMESPACE::SocketBaseImpl::setReceiveTimeout int  seconds  )  [inline]
 

Definition at line 74 of file SocketBaseImpl.hpp.

void BLOCXX_NAMESPACE::SocketBaseImpl::setSendTimeout int  seconds  )  [inline]
 

Definition at line 76 of file SocketBaseImpl.hpp.

void BLOCXX_NAMESPACE::SocketBaseImpl::setTimeouts int  seconds  )  [inline]
 

Definition at line 80 of file SocketBaseImpl.hpp.

bool BLOCXX_NAMESPACE::SocketBaseImpl::waitForInput int  timeOutSecs = -1  )  [virtual]
 

Definition at line 544 of file SocketBaseImpl.cpp.

References BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_INPUT, ETIMEDOUT, m_recvTimeoutExprd, and BLOCXX_NAMESPACE::SocketUtils::waitForIO().

Referenced by read().

bool BLOCXX_NAMESPACE::SocketBaseImpl::waitForOutput int  timeOutSecs = -1  ) 
 

Definition at line 559 of file SocketBaseImpl.cpp.

References BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_OUTPUT, and BLOCXX_NAMESPACE::SocketUtils::waitForIO().

Referenced by write().

int BLOCXX_NAMESPACE::SocketBaseImpl::write const void *  dataOut,
int  dataOutLen,
bool  errorAsException = false
[virtual]
 

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

Parameters:
dataOut A pointer to a location in memory that contains the bytes that will be written to the device.
dataOutLen The length of the data pointed to by the dataOut param.
errorAsException If true and an error occurs durring the write operation, then throw an exception.
Exceptions:
An exception 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

Implements BLOCXX_NAMESPACE::IOIFC.

Definition at line 431 of file SocketBaseImpl.cpp.

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

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

Implemented in BLOCXX_NAMESPACE::SocketImpl.

Referenced by write().


Member Data Documentation

int BLOCXX_NAMESPACE::SocketBaseImpl::m_connectTimeout [private]
 

Definition at line 127 of file SocketBaseImpl.hpp.

std::istream BLOCXX_NAMESPACE::SocketBaseImpl::m_in [private]
 

Definition at line 122 of file SocketBaseImpl.hpp.

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

std::iostream BLOCXX_NAMESPACE::SocketBaseImpl::m_inout [private]
 

Definition at line 124 of file SocketBaseImpl.hpp.

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

bool BLOCXX_NAMESPACE::SocketBaseImpl::m_isConnected [protected]
 

Definition at line 101 of file SocketBaseImpl.hpp.

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

SocketAddress BLOCXX_NAMESPACE::SocketBaseImpl::m_localAddress [protected]
 

Definition at line 103 of file SocketBaseImpl.hpp.

Referenced by fillInetAddrParms(), and fillUnixAddrParms().

std::ostream BLOCXX_NAMESPACE::SocketBaseImpl::m_out [private]
 

Definition at line 123 of file SocketBaseImpl.hpp.

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

SocketAddress BLOCXX_NAMESPACE::SocketBaseImpl::m_peerAddress [protected]
 

Definition at line 104 of file SocketBaseImpl.hpp.

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

int BLOCXX_NAMESPACE::SocketBaseImpl::m_recvTimeout [private]
 

Definition at line 125 of file SocketBaseImpl.hpp.

Referenced by read().

bool BLOCXX_NAMESPACE::SocketBaseImpl::m_recvTimeoutExprd [private]
 

Definition at line 120 of file SocketBaseImpl.hpp.

Referenced by waitForInput().

int BLOCXX_NAMESPACE::SocketBaseImpl::m_sendTimeout [private]
 

Definition at line 126 of file SocketBaseImpl.hpp.

Referenced by write().

SocketHandle_t BLOCXX_NAMESPACE::SocketBaseImpl::m_sockfd [protected]
 

Definition at line 102 of file SocketBaseImpl.hpp.

Referenced by connect(), BLOCXX_NAMESPACE::SocketImpl::getSelectObj(), getSelectObj(), BLOCXX_NAMESPACE::SocketImpl::readAux(), and BLOCXX_NAMESPACE::SocketImpl::writeAux().

SocketStreamBuffer BLOCXX_NAMESPACE::SocketBaseImpl::m_streamBuf [private]
 

Definition at line 121 of file SocketBaseImpl.hpp.

Referenced by connect().

String BLOCXX_NAMESPACE::SocketBaseImpl::m_traceFileIn [static, private]
 

Definition at line 130 of file SocketBaseImpl.hpp.

Referenced by read(), and setDumpFiles().

String BLOCXX_NAMESPACE::SocketBaseImpl::m_traceFileOut [static, private]
 

Definition at line 129 of file SocketBaseImpl.hpp.

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


The documentation for this class was generated from the following files:
Generated on Fri Jun 16 15:39:11 2006 for blocxx by  doxygen 1.4.6