#include <SocketBaseImpl.hpp>

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) | |
| SocketBaseImpl & | operator= (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 |
Definition at line 68 of file SocketBaseImpl.hpp.
| BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl | ( | ) |
| BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl | ( | SocketHandle_t | fd, | |
| SocketAddress::AddressType | addrType | |||
| ) |
Definition at line 117 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 150 of file SocketBaseImpl.cpp.
References connect(), m_inout, m_out, and m_peerAddress.
| BLOCXX_NAMESPACE::SocketBaseImpl::~SocketBaseImpl | ( | ) | [virtual] |
| BLOCXX_NAMESPACE::SocketBaseImpl::SocketBaseImpl | ( | const SocketBaseImpl & | arg | ) | [private] |
| 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::g_guard, 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 BLOCXX_NAMESPACE::SSLSocketImpl::connect(), and SocketBaseImpl().
| void BLOCXX_NAMESPACE::SocketBaseImpl::disconnect | ( | ) | [virtual] |
Reimplemented in BLOCXX_NAMESPACE::SSLSocketImpl.
Definition at line 355 of file SocketBaseImpl.cpp.
References BLOCXX_LOG_ERROR, BLOCXX_THROW_ERRNO_MSG, BLOCXX_NAMESPACE::String::c_str(), BLOCXX_NAMESPACE::FileSystem::close(), BLOCXX_NAMESPACE::String::empty(), BLOCXX_NAMESPACE::g_guard, getfd(), BLOCXX_NAMESPACE::DateTime::getMicrosecond(), m_in, m_inout, m_isConnected, m_out, m_sockfd, m_traceFileOut, BLOCXX_NAMESPACE::DateTime::setToCurrent(), and BLOCXX_NAMESPACE::DateTime::toString().
Referenced by connect(), BLOCXX_NAMESPACE::SSLSocketImpl::disconnect(), and ~SocketBaseImpl().
| void BLOCXX_NAMESPACE::SocketBaseImpl::setReceiveTimeout | ( | const Timeout & | timeout | ) | [inline] |
Definition at line 77 of file SocketBaseImpl.hpp.
| Timeout BLOCXX_NAMESPACE::SocketBaseImpl::getReceiveTimeout | ( | ) | const [inline] |
Definition at line 78 of file SocketBaseImpl.hpp.
| void BLOCXX_NAMESPACE::SocketBaseImpl::setSendTimeout | ( | const Timeout & | timeout | ) | [inline] |
Definition at line 79 of file SocketBaseImpl.hpp.
| Timeout BLOCXX_NAMESPACE::SocketBaseImpl::getSendTimeout | ( | ) | const [inline] |
Definition at line 80 of file SocketBaseImpl.hpp.
| void BLOCXX_NAMESPACE::SocketBaseImpl::setConnectTimeout | ( | const Timeout & | timeout | ) | [inline] |
Definition at line 81 of file SocketBaseImpl.hpp.
| Timeout BLOCXX_NAMESPACE::SocketBaseImpl::getConnectTimeout | ( | ) | const [inline] |
Definition at line 82 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::receiveTimeOutExpired | ( | ) | const [inline] |
Definition at line 84 of file SocketBaseImpl.hpp.
| 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.
| 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. |
| An | exception will be thrown upon an error condition if errorAsException is true. |
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(), BLOCXX_NAMESPACE::g_guard, getfd(), BLOCXX_NAMESPACE::DateTime::getMicrosecond(), m_isConnected, m_sendTimeout, m_traceFileOut, BLOCXX_NAMESPACE::DateTime::setToCurrent(), BLOCXX_NAMESPACE::DateTime::toString(), waitForOutput(), and writeAux().
| 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.
| 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. |
| An | exception will be thrown upon an error condition if errorAsException is true. |
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(), BLOCXX_NAMESPACE::g_guard, getfd(), BLOCXX_NAMESPACE::DateTime::getMicrosecond(), m_isConnected, m_recvTimeout, m_traceFileIn, m_traceFileOut, readAux(), BLOCXX_NAMESPACE::DateTime::setToCurrent(), BLOCXX_NAMESPACE::DateTime::toString(), and waitForInput().
| bool BLOCXX_NAMESPACE::SocketBaseImpl::waitForInput | ( | const Timeout & | timeout | ) | [virtual] |
Reimplemented in BLOCXX_NAMESPACE::SSLSocketImpl.
Definition at line 553 of file SocketBaseImpl.cpp.
References BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_INPUT, ETIMEDOUT, m_recvTimeoutExprd, m_sockfd, and BLOCXX_NAMESPACE::SocketUtils::waitForIO().
Referenced by read(), BLOCXX_NAMESPACE::sslWaitForIO(), and BLOCXX_NAMESPACE::SSLSocketImpl::waitForInput().
| bool BLOCXX_NAMESPACE::SocketBaseImpl::waitForOutput | ( | const Timeout & | timeout | ) |
Definition at line 568 of file SocketBaseImpl.cpp.
References BLOCXX_NAMESPACE::SocketFlags::E_WAIT_FOR_OUTPUT, m_sockfd, and BLOCXX_NAMESPACE::SocketUtils::waitForIO().
Referenced by BLOCXX_NAMESPACE::sslWaitForIO(), and write().
| istream & BLOCXX_NAMESPACE::SocketBaseImpl::getInputStream | ( | ) |
| ostream & BLOCXX_NAMESPACE::SocketBaseImpl::getOutputStream | ( | ) |
| iostream & BLOCXX_NAMESPACE::SocketBaseImpl::getIOStream | ( | ) |
| SocketAddress BLOCXX_NAMESPACE::SocketBaseImpl::getLocalAddress | ( | ) | const [inline] |
Definition at line 94 of file SocketBaseImpl.hpp.
| SocketAddress BLOCXX_NAMESPACE::SocketBaseImpl::getPeerAddress | ( | ) | const [inline] |
Definition at line 95 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().
| 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.
| bool BLOCXX_NAMESPACE::SocketBaseImpl::isConnected | ( | ) | const [inline] |
Definition at line 98 of file SocketBaseImpl.hpp.
| virtual int BLOCXX_NAMESPACE::SocketBaseImpl::readAux | ( | void * | dataIn, | |
| int | dataInLen | |||
| ) | [protected, pure virtual] |
Implemented in BLOCXX_NAMESPACE::SocketImpl, and BLOCXX_NAMESPACE::SSLSocketImpl.
Referenced by read().
| virtual int BLOCXX_NAMESPACE::SocketBaseImpl::writeAux | ( | const void * | dataOut, | |
| int | dataOutLen | |||
| ) | [protected, pure virtual] |
Implemented in BLOCXX_NAMESPACE::SocketImpl, and BLOCXX_NAMESPACE::SSLSocketImpl.
Referenced by write().
| void BLOCXX_NAMESPACE::SocketBaseImpl::fillInetAddrParms | ( | ) | [private] |
Definition at line 401 of file SocketBaseImpl.cpp.
References BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm(), m_localAddress, m_peerAddress, and m_sockfd.
Referenced by connect(), and SocketBaseImpl().
| void BLOCXX_NAMESPACE::SocketBaseImpl::fillUnixAddrParms | ( | ) | [private] |
Definition at line 423 of file SocketBaseImpl.cpp.
References BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm(), BLOCXX_THROW_ERRNO_MSG, m_localAddress, m_peerAddress, and m_sockfd.
Referenced by connect(), and SocketBaseImpl().
| SocketBaseImpl& BLOCXX_NAMESPACE::SocketBaseImpl::operator= | ( | const SocketBaseImpl & | arg | ) | [private] |
bool BLOCXX_NAMESPACE::SocketBaseImpl::m_isConnected [protected] |
Definition at line 104 of file SocketBaseImpl.hpp.
Referenced by connect(), BLOCXX_NAMESPACE::SSLSocketImpl::connectSSL(), BLOCXX_NAMESPACE::SSLSocketImpl::disconnect(), disconnect(), read(), and write().
Definition at line 105 of file SocketBaseImpl.hpp.
Referenced by connect(), BLOCXX_NAMESPACE::SSLSocketImpl::connectSSL(), BLOCXX_NAMESPACE::SSLSocketImpl::disconnect(), disconnect(), fillInetAddrParms(), fillUnixAddrParms(), BLOCXX_NAMESPACE::SSLSocketImpl::getSelectObj(), BLOCXX_NAMESPACE::SocketImpl::getSelectObj(), getSelectObj(), BLOCXX_NAMESPACE::SocketImpl::readAux(), waitForInput(), waitForOutput(), and BLOCXX_NAMESPACE::SocketImpl::writeAux().
Definition at line 106 of file SocketBaseImpl.hpp.
Referenced by fillInetAddrParms(), and fillUnixAddrParms().
Definition at line 107 of file SocketBaseImpl.hpp.
Referenced by connect(), BLOCXX_NAMESPACE::SSLSocketImpl::connectSSL(), fillInetAddrParms(), fillUnixAddrParms(), SocketBaseImpl(), and BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl().
bool BLOCXX_NAMESPACE::SocketBaseImpl::m_recvTimeoutExprd [private] |
std::istream BLOCXX_NAMESPACE::SocketBaseImpl::m_in [private] |
Definition at line 125 of file SocketBaseImpl.hpp.
Referenced by connect(), disconnect(), and getInputStream().
std::ostream BLOCXX_NAMESPACE::SocketBaseImpl::m_out [private] |
Definition at line 126 of file SocketBaseImpl.hpp.
Referenced by connect(), disconnect(), getOutputStream(), and SocketBaseImpl().
std::iostream BLOCXX_NAMESPACE::SocketBaseImpl::m_inout [private] |
Definition at line 127 of file SocketBaseImpl.hpp.
Referenced by connect(), disconnect(), getIOStream(), and SocketBaseImpl().
String BLOCXX_NAMESPACE::SocketBaseImpl::m_traceFileOut [static, private] |
Definition at line 132 of file SocketBaseImpl.hpp.
Referenced by connect(), disconnect(), read(), setDumpFiles(), and write().
String BLOCXX_NAMESPACE::SocketBaseImpl::m_traceFileIn [static, private] |
1.5.6