My Project
UDK 3.2.7 C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
osl::Socket Class Reference

#include <socket_decl.hxx>

Inheritance diagram for osl::Socket:
osl::AcceptorSocket osl::DatagramSocket osl::StreamSocket osl::ConnectorSocket

Public Member Functions

 Socket ()
 Socket (const Socket &socket)
 Socket (oslSocket socketHandle)
 Socket (oslSocket socketHandle, __sal_NoAcquire noacquire)
 The instance takes over the handle's ownership without acquiring the handle, but releases it within the dtor.
 ~Socket ()
 Destructor.
Socketoperator= (oslSocket socketHandle)
 Assignment operator.
Socketoperator= (const Socket &sock)
 Assignment operator.
sal_Bool operator== (const Socket &rSocket) const
sal_Bool operator== (const oslSocket socketHandle) const
void shutdown (oslSocketDirection Direction=osl_Socket_DirReadWrite)
 Closes a definite or both directions of the bidirectional stream.
void close ()
 Closes a socket.
void getLocalAddr (SocketAddr &Addr) const
 Retrieves the address of the local interface of this socket.
sal_Int32 getLocalPort () const
 Get the local port of the socket.
inline::rtl::OUString getLocalHost () const
 Get the hostname for the local interface.
void getPeerAddr (SocketAddr &Addr) const
 Retrieves the address of the remote host of this socket.
sal_Int32 getPeerPort () const
 Get the remote port of the socket.
inline::rtl::OUString getPeerHost () const
 Get the hostname for the remote interface.
sal_Bool bind (const SocketAddr &LocalInterface)
 Binds the socket to the specified (local) interface.
sal_Bool isRecvReady (const TimeValue *pTimeout=0) const
 Checks if read operations will block.
sal_Bool isSendReady (const TimeValue *pTimeout=0) const
 Checks if send operations will block.
sal_Bool isExceptionPending (const TimeValue *pTimeout=0) const
 Checks if a request for out-of-band data will block.
oslSocketType getType () const
 Queries the socket for its type.
sal_Int32 getOption (oslSocketOption Option, void *pBuffer, sal_uInt32 BufferLen, oslSocketOptionLevel Level=osl_Socket_LevelSocket) const
 Retrieves option-attributes associated with the socket.
sal_Bool setOption (oslSocketOption Option, void *pBuffer, sal_uInt32 BufferLen, oslSocketOptionLevel Level=osl_Socket_LevelSocket) const
 Sets the sockets attributes.
sal_Bool setOption (oslSocketOption option, sal_Int32 nValue)
 Convenience function for setting sal_Bool and sal_Int32 option values.
sal_Int32 getOption (oslSocketOption option) const
 Convenience function for retrieving sal_Bool and sal_Int32 option values.
sal_Bool enableNonBlockingMode (sal_Bool bNonBlockingMode)
 Enables/disables non-blocking mode of the socket.
sal_Bool isNonBlockingMode () const
 Query blocking mode of the socket.
void clearError () const
 clears the error status
oslSocketError getError () const
 returns a constant decribing the last error for the socket system.
inline::rtl::OUString getErrorAsString () const
 Builds a string with the last error-message for the socket.
oslSocket getHandle () const
 Returns the underlying handle unacquired (The caller must acquire it to keep it).

Protected Member Functions

 Socket (oslSocketType Type, oslAddrFamily Family=osl_Socket_FamilyInet, oslProtocol Protocol=osl_Socket_ProtocolIp)
 Creates a socket.

Protected Attributes

oslSocket m_handle

Constructor & Destructor Documentation

osl::Socket::Socket ( oslSocketType  Type,
oslAddrFamily  Family = osl_Socket_FamilyInet,
oslProtocol  Protocol = osl_Socket_ProtocolIp 
)
inlineprotected

Creates a socket.

Note it's protected.

Parameters
Type
Family
Protocol
osl::Socket::Socket ( )
inline
osl::Socket::Socket ( const Socket socket)
inline
osl::Socket::Socket ( oslSocket  socketHandle)
inline
osl::Socket::Socket ( oslSocket  socketHandle,
__sal_NoAcquire  noacquire 
)
inline

The instance takes over the handle's ownership without acquiring the handle, but releases it within the dtor.

Parameters
noacquireuse SAL_NO_ACQUIRE
osl::Socket::~Socket ( )
inline

Destructor.

Releases the underlying handle

Member Function Documentation

sal_Bool osl::Socket::bind ( const SocketAddr LocalInterface)
inline

Binds the socket to the specified (local) interface.

Parameters
LocalInterfaceAddress of the Interface
Returns
True if bind was successful.
void osl::Socket::clearError ( ) const
inline

clears the error status

void osl::Socket::close ( )
inline

Closes a socket.

Note that closing a socket is identical to shutdown( osl_Socket_DirReadWrite ), as the operating system distinguish both cases, both functions or offered in this API.

See Also
osl_closeSocket()
sal_Bool osl::Socket::enableNonBlockingMode ( sal_Bool  bNonBlockingMode)
inline

Enables/disables non-blocking mode of the socket.

Parameters
bNonBlockingModeIf sal_True, blocking mode will be switched off If sal_False, the socket will become a blocking socket (which is the default behaviour of a socket).
Returns
sal_True if mode could be set.
oslSocketError osl::Socket::getError ( ) const
inline

returns a constant decribing the last error for the socket system.

Returns
osl_Socket_E_NONE if no error occurred, invalid_SocketError if an unknown (unmapped) error occurred, otherwise an enum describing the error.
See Also
osl_getLastSocketError()
rtl::OUString osl::Socket::getErrorAsString ( ) const
inline

Builds a string with the last error-message for the socket.

oslSocket osl::Socket::getHandle ( ) const
inline

Returns the underlying handle unacquired (The caller must acquire it to keep it).

void osl::Socket::getLocalAddr ( SocketAddr Addr) const
inline

Retrieves the address of the local interface of this socket.

Parameters
Addr[out] receives the address.
See Also
osl_getLocalAddrOfSocket()
rtl::OUString osl::Socket::getLocalHost ( ) const
inline

Get the hostname for the local interface.

Returns
the hostname or an empty string ("").
sal_Int32 osl::Socket::getLocalPort ( ) const
inline

Get the local port of the socket.

Usually used after bind().

Returns
the port number or OSL_INVALID_PORT on errors.
sal_Int32 osl::Socket::getOption ( oslSocketOption  Option,
void *  pBuffer,
sal_uInt32  BufferLen,
oslSocketOptionLevel  Level = osl_Socket_LevelSocket 
) const
inline

Retrieves option-attributes associated with the socket.

Parameters
OptionThe attribute to query. Valid values (depending on the Level) are:
  • osl_Socket_Option_Debug
    (sal_Bool) Socket debug flag 1 = enabled, 0 = disabled.

  • osl_Socket_OptionAcceptConn
  • osl_Socket_OptionReuseAddr
    (sal_Bool) Allows the socket to be bound to an address that is already in use. 1 = multiple bound allowed, 0 = no multiple bounds allowed

  • osl_Socket_OptionKeepAlive
    (sal_Bool) Keepalive packets are sent by the underlying socket. 1 = enabled, 0 = disabled

  • osl_Socket_OptionDontRoute
    (sal_Bool) Do not route: send directly to interface. 1 = do not route , 0 = routing possible

  • osl_Socket_OptionBroadcast
    (sal_Bool) Transmission of broadcast messages are allowed on the socket. 1 = transmission allowed, 0 = transmission disallowed

  • osl_Socket_OptionUseLoopback

  • osl_Socket_OptionLinger
    (linger) Linger on close if unsent data is present. linger has two members: l_onoff, l_linger l_onoff = 0 is off, l_onoff > 0 and l_linger= timeout in seconds.

  • osl_Socket_OptionOOBinLine

  • osl_Socket_OptionSndBuf
    (sal_Int32) Size of the send buffer in bytes. Data is sent after SndTimeo or when the buffer is full. This allows faster writing to the socket.

  • osl_Socket_OptionRcvBuf
    (sal_Int32) Size of the receive buffer in bytes. Data is sent after SndTimeo or when the buffer is full. This allows faster writing to the socket and larger packet sizes.

  • osl_Socket_OptionSndLowat

  • osl_Socket_OptionRcvLowat

  • osl_Socket_OptionSndTimeo
    (sal_Int32) Data is sent after this timeout. This allows gathering of data to send larger packages but increases latency times.

  • osl_Socket_OptionRcvTimeo

  • osl_Socket_OptionError
  • osl_Socket_OptionType

  • osl_Socket_OptionTcpNoDelay
    Disables the Nagle algorithm for send coalescing. (Do not collect data until a packet is full, instead send immediatly. This increases network traffic but might improve latency-times.) 1 = disables the algorithm, 0 = keeps it enabled.

If not above mentioned otherwise, the options are only valid for level osl_Socket_LevelSocket.

Parameters
pBufferThe Buffer will be filled with the attribute.
BufferLenThe size of pBuffer.
LevelThe option level.

Valid values are:

  • osl_Socket_LevelSocket : Socket Level
  • osl_Socket_LevelTcp : Level of Transmission Control Protocol
Returns
The size of the attribute copied into pBuffer or -1 if an error occurred.
sal_Int32 osl::Socket::getOption ( oslSocketOption  option) const
inline

Convenience function for retrieving sal_Bool and sal_Int32 option values.

See Also
setOption()
void osl::Socket::getPeerAddr ( SocketAddr Addr) const
inline

Retrieves the address of the remote host of this socket.

Parameters
Addr[out] receives the address.
rtl::OUString osl::Socket::getPeerHost ( ) const
inline

Get the hostname for the remote interface.

Returns
the hostname or an empty string ("").
sal_Int32 osl::Socket::getPeerPort ( ) const
inline

Get the remote port of the socket.

Returns
the port number or OSL_INVALID_PORT on errors.
oslSocketType osl::Socket::getType ( ) const
inline

Queries the socket for its type.

Returns
one of:
  • osl_Socket_TypeStream
  • osl_Socket_TypeDgram
  • osl_Socket_TypeRaw
  • osl_Socket_TypeRdm
  • osl_Socket_TypeSeqPacket
  • osl_invalid_SocketType, if an error occurred
sal_Bool osl::Socket::isExceptionPending ( const TimeValue pTimeout = 0) const
inline

Checks if a request for out-of-band data will block.

You can specify a timeout-value in seconds/nanoseconds that denotes how the operation will block if the Socket has no pending OOB data.

Returns
sal_True if OOB-request operations (recv with appropriate flags) on the Socket will NOT block; sal_False if it would block or if an error occurred.
Parameters
pTimeoutif 0, the operation will block without a timeout. Otherwise the specified amout of time.
sal_Bool osl::Socket::isNonBlockingMode ( ) const
inline

Query blocking mode of the socket.

Returns
sal_True if non-blocking mode is set.
sal_Bool osl::Socket::isRecvReady ( const TimeValue pTimeout = 0) const
inline

Checks if read operations will block.

You can specify a timeout-value in seconds/nanoseconds that denotes how the operation will block if the Socket is not ready.

Returns
sal_True if read operations (recv, recvFrom, accept) on the Socket will NOT block; sal_False if it would block or if an error occurred.
Parameters
pTimeoutif 0, the operation will block without a timeout. Otherwise the specified amout of time.
sal_Bool osl::Socket::isSendReady ( const TimeValue pTimeout = 0) const
inline

Checks if send operations will block.

You can specify a timeout-value in seconds/nanoseconds that denotes how the operation will block if the Socket is not ready.

Returns
sal_True if send operations (send, sendTo) on the Socket will NOT block; sal_False if it would block or if an error occurred.
Parameters
pTimeoutif 0, the operation will block without a timeout. Otherwise the specified amout of time.
Socket & osl::Socket::operator= ( oslSocket  socketHandle)
inline

Assignment operator.

If socket was already created, the old one will be discarded.

Socket & osl::Socket::operator= ( const Socket sock)
inline

Assignment operator.

If socket was already created, the old one will be discarded.

sal_Bool osl::Socket::operator== ( const Socket rSocket) const
inline
Returns
sal_True, when the underlying handle of both Socket instances are identical, sal_False otherwise.
sal_Bool osl::Socket::operator== ( const oslSocket  socketHandle) const
inline
Returns
sal_True, when the underlying handle of both Socket instances are identical, sal_False otherwise.
sal_Bool osl::Socket::setOption ( oslSocketOption  Option,
void *  pBuffer,
sal_uInt32  BufferLen,
oslSocketOptionLevel  Level = osl_Socket_LevelSocket 
) const
inline

Sets the sockets attributes.

Parameters
Optiondenotes the option to modify. Valid values (depending on the Level) are:
  • osl_Socket_Option_Debug
  • osl_Socket_OptionAcceptConn
  • osl_Socket_OptionReuseAddr
  • osl_Socket_OptionKeepAlive
  • osl_Socket_OptionDontRoute
  • osl_Socket_OptionBroadcast
  • osl_Socket_OptionUseLoopback
  • osl_Socket_OptionLinger
  • osl_Socket_OptionOOBinLine
  • osl_Socket_OptionSndBuf
  • osl_Socket_OptionRcvBuf
  • osl_Socket_OptionSndLowat
  • osl_Socket_OptionRcvLowat
  • osl_Socket_OptionSndTimeo
  • osl_Socket_OptionRcvTimeo
  • osl_Socket_OptionError
  • osl_Socket_OptionType
  • osl_Socket_OptionTcpNoDelay

If not above mentioned otherwise, the options are only valid for level osl_Socket_LevelSocket.

Parameters
pBufferPointer to a Buffer which contains the attribute-value.
BufferLencontains the length of the Buffer.
Levelselects the level for which an option should be changed. Valid values are:
  • osl_Socket_evel_Socket : Socket Level
  • osl_Socket_Level_Tcp : Level of Transmission Control Protocol
Returns
True if the option could be changed.
sal_Bool osl::Socket::setOption ( oslSocketOption  option,
sal_Int32  nValue 
)
inline

Convenience function for setting sal_Bool and sal_Int32 option values.

See Also
setOption()
void osl::Socket::shutdown ( oslSocketDirection  Direction = osl_Socket_DirReadWrite)
inline

Closes a definite or both directions of the bidirectional stream.

Parameters
Direction
See Also
osl_shutdownSocket()

Member Data Documentation

oslSocket osl::Socket::m_handle
protected

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