SourcePro® API Reference Guide

 
Classes | Typedefs | Functions
Essential Networking Module

Module Description

The Essential Networking Module contains C++ classes for building secure and non-secure network communication applications that are protocol-independent. This module provides basic functionality that the other SourcePro Net modules build upon.

Classes

class  RWBufferedRecvPortal
 Provides buffering of recv() calls only, possibly improving performance by limiting calls to the underlying RWPortal. More...
 
class  RWBufferedSendPortal
 Provides buffering of send() calls only, possibly improving performance by limiting calls to the underlying RWPortal. More...
 
class  RWInet6Addr
 Encapsulates a complete IPv6 address. More...
 
class  RWInet6AddrFactory
 Used by RWSockAddrFactory to create instances of RWInet6Addr. More...
 
class  RWInet6Host
 Encapsulates an Internet host IPv6 address and its names. More...
 
class  RWInet6Type
 Constructs an RWSockType for an IPv6 address type. More...
 
class  RWInetAddr
 Encapsulates a complete Internet address that includes type information, a host, and a port. More...
 
class  RWInetAddrFactory
 Used by RWSockAddrFactory to create instances of RWInetAddr. More...
 
class  RWInetHost
 Encapsulates an Internet host IP address and its names. More...
 
class  RWInetHostNotFoundError
 Reports that an Internet host address lookup failed. More...
 
class  RWInetPort
 Encapsulates an Internet port and its service names. More...
 
class  RWInetServiceNotFoundError
 Reports that an internet service name lookup failed. More...
 
class  RWInetType
 Constructs an RWSockType for an Internet address type. More...
 
class  RWMulticastSocket
 Extends RWSocket to provide support for multicast UDP sockets. More...
 
class  RWNetAlreadyRegisteredError
 Reports an attempt to register multiple socket address factories for a socket address family. More...
 
class  RWNetBuf
 Network communication buffer class. More...
 
class  RWNetCantCreatePortalError
 Reports the inability to create a portal. More...
 
class  RWNetCantRecvError
 Reports the failure to receive data on a communication channel. More...
 
class  RWNetCantSendError
 Reports a failure to send data on a communications channel. More...
 
class  RWNetInvalidSocketError
 Reports use of an invalid RWSocket with rwSocketSelect(). More...
 
class  RWNetNoChannelError
 Reports an attempt to send or receive data on an RWPortal that is not bound to a communications channel. More...
 
class  RWNetNoFactoryRegisteredError
 Reports a request to produce a derived RWSockAddr for a socket family or name that is not registered with the factory. More...
 
class  RWNetNoNameFactoryRegisteredError
 Reports a request to produce a derived RWSockAddr for a socket family that is not registered with the factory. More...
 
class  RWNetNoNumberFactoryRegisteredError
 Reports a request to produce a derived RWSockAddr for a socket family that is not registered with the factory. More...
 
class  RWNetNoSuchBlockingHookError
 Deprecated. Reports an attempt to pass an unknown blocking hook to the RWWinSockInfo constructor. More...
 
class  RWNetOperationTimeoutError
 Reports the failure of a network operation to complete within the specified timeout period. More...
 
class  RWNetSelectError
 Reports the failure of a call to rwSocketSelect(). More...
 
class  RWNetTimeoutNotImplementedError
 Reports an attempt to use an unsupported timed operation. More...
 
class  RWNetWinsockInitError
 Reports the failure to initialize the requested version of the Windows Socket library, or a failure to successfully clean up the library. More...
 
class  RWPortal
 An access point to a reliable byte stream communication channel. More...
 
class  RWPortalImp
 Abstract base class from which to create specialized portal types. More...
 
class  RWSockAddr
 A proxy to a socket address. More...
 
class  RWSockAddrBase
 Interface class that represents a socket address. More...
 
class  RWSockAddrFactory
 Builds addresses of any registered type. Not intended for explicit use. More...
 
class  RWSockAddrFactoryBase
 Abstract class that builds socket addresses. More...
 
class  RWSockBadAddressFormatError
 Reports the inability to parse a string into a valid socket address. More...
 
class  RWSocket
 Wrapper for the C concept of a socket. More...
 
class  RWSocketError
 Reports an error on an RWSocket. More...
 
class  RWSocketListener
 Waits on a specified socket address for incoming connections. More...
 
class  RWSocketPortal
 Socket implementation of a portal. More...
 
class  RWSocketPortalBase
 Base class for all classes that wish to use the WhoShouldClose enumeration. More...
 
class  RWSockType
 A type of socket communications channel. More...
 
class  RWSockTypeChangeError
 Reports the attempt to change the type of a valid socket. More...
 
class  RWSockWrongAddressTypeError
 Reports the attempt to convert one derived RWSockAddr to some other RWSockAddr type. More...
 
class  RWTimedPortal
 Provides timed send() and recv() calls. More...
 
class  RWTPortalIStream< charT, traits >
 Provides a std::basic_istream that uses an RWPortal as its source of bytes. More...
 
class  RWTPortalOStream< charT, traits >
 Provides a std::basic_ostream that uses an RWPortal as its sink of bytes. More...
 
class  RWTPortalStream< charT, traits >
 Provides a std::basic_iostream that uses an RWPortal as its source and sink of bytes. More...
 
class  RWTPortalStreamBase< charT, traits >
 Base class that includes functions common to derived portal stream classes. More...
 
class  RWTPortalStreambuf< charT, traits >
 Streambuf that uses an RWPortal as its source and sink of bytes. More...
 
class  RWTSocketAttribute< Socket >
 Represents a set of attributes on a socket. More...
 
class  RWWinSockInfo
 Initializes the Winsock DLL on Windows platforms. More...
 

Typedefs

typedef RWTPortalIStream< char, std::char_traits< char > > RWPortalIStream
 
typedef RWTPortalOStream< char, std::char_traits< char > > RWPortalOStream
 
typedef RWTPortalStream< char, std::char_traits< char > > RWPortalStream
 
typedef RWTPortalStreamBase< char, std::char_traits< char > > RWPortalStreamBase
 
typedef RWTPortalStreambuf< char, std::char_traits< char > > RWPortalStreambuf
 
typedef RWTSocketAttribute< RWSocketRWSocketAttribute
 
typedef unspecified_type RWSockLenType
 

Functions

RWTValOrderedVector< RWSocketAttributerwSocketSelect (const RWTValOrderedVector< RWSocketAttribute > &attributes)
 
RWTValOrderedVector< RWSocketAttributerwSocketSelect (const RWTValOrderedVector< RWSocketAttribute > &, double timeout)
 

Typedef Documentation

typedef RWTPortalIStream<char, std::char_traits<char> > RWPortalIStream

This is a typedef for RWTPortalIStream<char>.

typedef RWTPortalOStream<char, std::char_traits<char> > RWPortalOStream

This is a typedef for RWTPortalOStream<char>.

typedef RWTPortalStream<char, std::char_traits<char> > RWPortalStream

This is a typedef for RWTPortalStream<char>.

typedef RWTPortalStreamBase<char, std::char_traits<char> > RWPortalStreamBase

This is a typedef for RWTPortalStreamBase<char>.

typedef RWTPortalStreambuf<char, std::char_traits<char> > RWPortalStreambuf

This is a typedef for RWTPortalStreambuf<char>.

This is a typedef for RWTSocketAttribute<RWSocket>.

See also
rwSocketSelect()
typedef unspecified_type RWSockLenType

An unspecified integer type that represents a socket address length.

Function Documentation

RWTValOrderedVector<RWSocketAttribute> rwSocketSelect ( const RWTValOrderedVector< RWSocketAttribute > &  attributes)

This function helps to perform asynchronous socket input/output operations. It waits for one of the conditions in the user-defined attributes vector to occur, and returns a vector of the conditions that have occurred. If any of the conditions has already occurred when the function is called, it returns immediately.

The attributes parameter is a vector of socket attributes. If empty, the program may sleep indefinitely. If one of the attributes refers to an invalid socket, a RWNetInvalidSocketError exception is thrown. If more than FD_SETSIZE attributes are in the attributes vector, an exception is thrown.

Note
On stream sockets that are not connected, this function returns RWSocketAttribute::sock_attr_canwrite. This is a known issue with the underlying select() function.
RWTValOrderedVector<RWSocketAttribute> rwSocketSelect ( const RWTValOrderedVector< RWSocketAttribute > &  ,
double  timeout 
)

This function helps to perform asynchronous socket input/output operations. It waits for one of the conditions in the user-defined attributes vector to occur, and returns a vector of the conditions that have occurred. If any of the conditions has already occurred when the function is called, it returns immediately.

The attributes parameter is a vector of socket attributes. If empty, the program may sleep indefinitely. If one of the attributes refers to an invalid socket, a RWNetInvalidSocketError exception is thrown. If more than FD_SETSIZE attributes are in the attributes vector, an exception is thrown.

The timeout parameter is the maximum amount of time, in seconds, to wait for one of the conditions to become true. If the the value is negative, this function may block indefinitely. When using large timeout values, the fractional part may change due to rounding.

Note
The underlying select() call may limit the maximum amount of time it will wait to something less than timeout.
On stream sockets that are not connected, this function returns RWSocketAttribute::sock_attr_canwrite. This is a known issue with the underlying select() function.

Copyright © 2022 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.