diff options
Diffstat (limited to 'sal/inc/osl/socket_decl.hxx')
-rw-r--r-- | sal/inc/osl/socket_decl.hxx | 721 |
1 files changed, 0 insertions, 721 deletions
diff --git a/sal/inc/osl/socket_decl.hxx b/sal/inc/osl/socket_decl.hxx deleted file mode 100644 index f51cca12e4c3..000000000000 --- a/sal/inc/osl/socket_decl.hxx +++ /dev/null @@ -1,721 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef _OSL_SOCKET_DECL_HXX_ -#define _OSL_SOCKET_DECL_HXX_ - -#include <osl/socket.h> -#include <rtl/ustring.hxx> -#include <rtl/byteseq.hxx> - -namespace osl -{ - enum __osl_socket_NoCopy { SAL_NO_COPY }; - - /** The class should be understood as a reference to a socket address handle ( struct sockaddr ). - - The handle is mutable. - */ - class SocketAddr - { - protected: - oslSocketAddr m_handle; - public: - - /** Creates socket address of unknown type. - */ - inline SocketAddr(); - - /** Copy constructor. - */ - inline SocketAddr(const SocketAddr& Addr); - - /** The SocketAddr takes over the responsibility of the handle ( which means, - that the handle gets destructed by the destructor of this reference) - @param nocopy use SAL_NO_COPY - */ - inline SocketAddr(const oslSocketAddr , __osl_socket_NoCopy nocopy ); - - /** Copyconstructs the oslSocketAddr handle. - */ - inline SocketAddr(oslSocketAddr Addr); - - /** tcpip-specif constructor. - @param strAddrOrHostName strAddrOrHostName hostname or dotted ip-number of the network - interface, the socket shall be created on. - @param nPort tcp-ip port number - */ - inline SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort ); - - /** destroys underlying oslSocketAddress - */ - inline ~SocketAddr(); - - /** checks, if the SocketAddr was created successful. - @return <code>sal_True</code> if there is a valid underlying handle, - otherwise sal_False. - */ - inline sal_Bool is() const; - - /** Converts the address to a (human readable) domain-name. - - @param pResult 0, if you are not interested in errors, - otherwise *pResult contains an error code on failure - or osl_Socket_Ok on success - @return the hostname of this SocketAddr or an empty string on failure. - @see osl_getHostnameOfSocketAddr() - */ - inline ::rtl::OUString SAL_CALL getHostname( oslSocketResult *pResult = 0 ) const; - - /** Sets the ipaddress or hostname of the SocketAddress - */ - inline sal_Bool SAL_CALL setHostname( const ::rtl::OUString &sDottedIpOrHostname ); - - /** Returns the port number of the address. - @return the port in host-byte order or or OSL_INVALID_PORT on errors. - */ - inline sal_Int32 SAL_CALL getPort() const; - - /** Sets the port number of the address. - @return true if successfule. - */ - inline sal_Bool SAL_CALL setPort( sal_Int32 nPort ); - - /** Sets the address of the underlying socket address struct in network byte order. - @return true on success, false signales falure. - */ - inline sal_Bool SAL_CALL setAddr( const ::rtl::ByteSequence & address ); - - /** Returns the address of the underlying socket in network byte order - */ - inline ::rtl::ByteSequence SAL_CALL getAddr( oslSocketResult *pResult = 0 ) const; - - /** assign the handle to this reference. The previous handle is released. - */ - inline SocketAddr & SAL_CALL operator= (oslSocketAddr Addr); - - /** - */ - inline SocketAddr & SAL_CALL operator= (const SocketAddr& Addr); - - /** Assigns the socket addr without copyconstructing it. - @param Addr the socket address. - @param nocopy use SAL_NO_COPY - */ - inline SocketAddr & SAL_CALL assign( oslSocketAddr Addr, __osl_socket_NoCopy nocopy ); - - /** Returns true if the underlying handle is identical to the Addr handle. - */ - inline sal_Bool SAL_CALL operator== (oslSocketAddr Addr) const; - - /** Returns true if the underlying handle is identical to the Addr handle. - */ - inline sal_Bool SAL_CALL operator== (const SocketAddr & Addr) const; - - /** Returns the underlying SocketAddr handle without copyconstructing it. - */ - inline oslSocketAddr SAL_CALL getHandle() const; - - /** Get the hostname for the local interface. - @param pResult after the call *pResult contains osl_Socket_Ok on success or - an error on failure. - @return the hostname - */ - static inline ::rtl::OUString SAL_CALL getLocalHostname( oslSocketResult *pResult = 0); - - /** Tries to find an address for a host. - @see osl_resolveHostname() - @return A new created socket-address or 0 if the name could not be found. - */ - static inline void SAL_CALL resolveHostname( - const ::rtl::OUString & strHostName , SocketAddr & Addr ); - - /** - Tries to find the port associated with the given service/protocol- - pair (e.g. "ftp"/"tcp"). - @return the port number in host-byte order or <code>OSL_INVALID_PORT</code> - if no service/protocol pair could be found. - */ - static inline sal_Int32 SAL_CALL getServicePort( - const ::rtl::OUString& strServiceName, - const ::rtl::OUString & strProtocolName= ::rtl::OUString("tcp") ); - }; - - - class Socket - { - protected: - oslSocket m_handle; - protected: - /** Creates a socket. Note it's protected. - @param Type - @param Family - @param Protocol - */ - inline Socket(oslSocketType Type, - oslAddrFamily Family = osl_Socket_FamilyInet, - oslProtocol Protocol = osl_Socket_ProtocolIp); - public: - inline Socket( ); - - inline Socket( const Socket & socket ); - - inline Socket( oslSocket socketHandle ); - - /** The instance takes over the handle's ownership without acquiring the - handle, but releases it within the dtor. - @param socketHandle the handle - @param noacquire use SAL_NO_ACQUIRE - */ - inline Socket( oslSocket socketHandle, __sal_NoAcquire noacquire ); - - /** Destructor. Releases the underlying handle - */ - inline ~Socket(); - - /** Assignment operator. If socket was already created, the old one will - be discarded. - */ - inline Socket& SAL_CALL operator= ( oslSocket socketHandle); - - /** Assignment operator. If socket was already created, the old one will - be discarded. - */ - inline Socket& SAL_CALL operator= (const Socket& sock); - - /** - @return <code>sal_True</code>, when the underlying handle of both - Socket instances are identical, <code>sal_False</code> otherwise. - */ - inline sal_Bool SAL_CALL operator==( const Socket& rSocket ) const ; - - /** - @return <code>sal_True</code>, when the underlying handle of both - Socket instances are identical, <code>sal_False</code> otherwise. - */ - inline sal_Bool SAL_CALL operator==( const oslSocket socketHandle ) const; - - /** Closes a definite or both directions of the bidirectional stream. - - @param Direction - @see osl_shutdownSocket() - */ - inline void SAL_CALL shutdown( oslSocketDirection Direction = osl_Socket_DirReadWrite ); - - /** 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 osl_closeSocket() - */ - inline void SAL_CALL close(); - - /** Retrieves the address of the local interface of this socket. - @param Addr [out] receives the address. - @see osl_getLocalAddrOfSocket() - */ - inline void SAL_CALL getLocalAddr( SocketAddr &Addr ) const; - - /** Get the local port of the socket. Usually used after bind(). - @return the port number or OSL_INVALID_PORT on errors. - */ - inline sal_Int32 SAL_CALL getLocalPort() const; - - /** Get the hostname for the local interface. - @return the hostname or an empty string (""). - */ - inline ::rtl::OUString SAL_CALL getLocalHost() const; - - /** Retrieves the address of the remote host of this socket. - @param Addr [out] receives the address. - */ - inline void SAL_CALL getPeerAddr( SocketAddr & Addr) const; - - /** Get the remote port of the socket. - @return the port number or OSL_INVALID_PORT on errors. - */ - inline sal_Int32 SAL_CALL getPeerPort() const; - - /** Get the hostname for the remote interface. - @return the hostname or an empty string (""). - */ - inline ::rtl::OUString SAL_CALL getPeerHost() const; - - /** Binds the socket to the specified (local) interface. - @param LocalInterface Address of the Interface - @return True if bind was successful. - */ - inline sal_Bool SAL_CALL bind(const SocketAddr& LocalInterface); - - /** 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. - @return <code>sal_True</code> if read operations (recv, recvFrom, accept) on the Socket - will NOT block; <code>sal_False</code> if it would block or if an error occurred. - - @param pTimeout if 0, the operation will block without a timeout. Otherwise - the specified amout of time. - */ - inline sal_Bool SAL_CALL isRecvReady(const TimeValue *pTimeout = 0) const; - - /** 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. - @return <code>sal_True</code> if send operations (send, sendTo) on the Socket - will NOT block; <code>sal_False</code> if it would block or if an error occurred. - - @param pTimeout if 0, the operation will block without a timeout. Otherwise - the specified amout of time. - */ - inline sal_Bool SAL_CALL isSendReady(const TimeValue *pTimeout = 0) const; - - - /** 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. - - @return <code>sal_True</code> if OOB-request operations (recv with appropriate flags) - on the Socket will NOT block; <code>sal_False</code> if it would block or if - an error occurred. - - @param pTimeout if 0, the operation will block without a timeout. Otherwise - the specified amout of time. - */ - inline sal_Bool SAL_CALL isExceptionPending(const TimeValue *pTimeout = 0) const; - - - /** Queries the socket for its type. - @return one of: - <ul> - <li> <code>osl_Socket_TypeStream</code> - <li> <code>osl_Socket_TypeDgram</code> - <li> <code>osl_Socket_TypeRaw</code> - <li> <code>osl_Socket_TypeRdm</code> - <li> <code>osl_Socket_TypeSeqPacket</code> - <li> <code>osl_invalid_SocketType</code>, if an error occurred - </ul> - */ - inline oslSocketType SAL_CALL getType() const; - - /** Retrieves option-attributes associated with the socket. - @param Option The attribute to query. - Valid values (depending on the Level) are: - <ul> - <li> <code>osl_Socket_Option_Debug</code><br> - (sal_Bool) Socket debug flag 1 = enabled, 0 = disabled. - - <li> <code>osl_Socket_OptionAcceptConn</code><br> - <li> <code>osl_Socket_OptionReuseAddr</code><br> - (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 - - <li><code>osl_Socket_OptionKeepAlive</code><br> - (sal_Bool) Keepalive packets are sent by the underlying socket. - 1 = enabled, 0 = disabled - - <li><code>osl_Socket_OptionDontRoute</code><br> - (sal_Bool) Do not route: send directly to interface. - 1 = do not route , 0 = routing possible - - <li><code>osl_Socket_OptionBroadcast</code><br> - (sal_Bool) Transmission of broadcast messages are allowed on the socket. - 1 = transmission allowed, 0 = transmission disallowed - - <li><code>osl_Socket_OptionUseLoopback</code><br> - - <li><code>osl_Socket_OptionLinger</code><br> - (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. - - <li><code>osl_Socket_OptionOOBinLine</code><br> - - - <li><code>osl_Socket_OptionSndBuf</code><br> - (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. - - <li><code>osl_Socket_OptionRcvBuf</code><br> - (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. - - <li><code>osl_Socket_OptionSndLowat</code><br> - - <li><code>osl_Socket_OptionRcvLowat</code><br> - - <li><code>osl_Socket_OptionSndTimeo</code><br> - (sal_Int32) Data is sent after this timeout. This allows gathering - of data to send larger packages but increases latency times. - - <li><code>osl_Socket_OptionRcvTimeo</code><br> - - <li><code>osl_Socket_OptionError</code><br> - <li><code>osl_Socket_OptionType</code><br> - - <li><code>osl_Socket_OptionTcpNoDelay</code><br> - Disables the Nagle algorithm for send coalescing. (Do not - collect data until a packet is full, instead send immediately. - This increases network traffic but might improve latency-times.) - 1 = disables the algorithm, 0 = keeps it enabled. - </ul> - - If not above mentioned otherwise, the options are only valid for - level <code>osl_Socket_LevelSocket</code>. - @param pBuffer The Buffer will be filled with the attribute. - - @param BufferLen The size of pBuffer. - - @param Level The option level. - - Valid values are: - <ul> - <li><code>osl_Socket_LevelSocket</code> : Socket Level - <li><code>osl_Socket_LevelTcp</code> : Level of Transmission Control Protocol - </ul> - @return The size of the attribute copied into pBuffer or -1 if an error - occurred. - */ - inline sal_Int32 SAL_CALL getOption( - oslSocketOption Option, - void* pBuffer, - sal_uInt32 BufferLen, - oslSocketOptionLevel Level= osl_Socket_LevelSocket) const; - - /** Sets the sockets attributes. - - @param Option denotes the option to modify. - Valid values (depending on the Level) are: - <ul> - <li> osl_Socket_Option_Debug - <li> osl_Socket_OptionAcceptConn - <li> osl_Socket_OptionReuseAddr - <li> osl_Socket_OptionKeepAlive - <li> osl_Socket_OptionDontRoute - <li> osl_Socket_OptionBroadcast - <li> osl_Socket_OptionUseLoopback - <li> osl_Socket_OptionLinger - <li> osl_Socket_OptionOOBinLine - <li> osl_Socket_OptionSndBuf - <li> osl_Socket_OptionRcvBuf - <li> osl_Socket_OptionSndLowat - <li> osl_Socket_OptionRcvLowat - <li> osl_Socket_OptionSndTimeo - <li> osl_Socket_OptionRcvTimeo - <li> osl_Socket_OptionError - <li> osl_Socket_OptionType - <li> osl_Socket_OptionTcpNoDelay - </ul> - - If not above mentioned otherwise, the options are only valid for - level osl_Socket_LevelSocket. - - @param pBuffer Pointer to a Buffer which contains the attribute-value. - - @param BufferLen contains the length of the Buffer. - - @param Level selects the level for which an option should be changed. - Valid values are: - <ul> - <li> osl_Socket_evel_Socket : Socket Level - <li> osl_Socket_Level_Tcp : Level of Transmission Control Protocol - </ul> - - @return True if the option could be changed. - */ - inline sal_Bool SAL_CALL setOption( oslSocketOption Option, - void* pBuffer, - sal_uInt32 BufferLen, - oslSocketOptionLevel Level= osl_Socket_LevelSocket ) const; - - /** Convenience function for setting sal_Bool and sal_Int32 option values. - @see setOption() - */ - inline sal_Bool setOption( oslSocketOption option, sal_Int32 nValue ); - - /** Convenience function for retrieving sal_Bool and sal_Int32 option values. - @see setOption() - */ - inline sal_Int32 getOption( oslSocketOption option ) const; - - /** Enables/disables non-blocking mode of the socket. - @param bNonBlockingMode If <code>sal_True</code>, blocking mode will be switched off - If <code>sal_False</code>, the socket will become a blocking - socket (which is the default behaviour of a socket). - @return <code>sal_True</code> if mode could be set. - */ - inline sal_Bool SAL_CALL enableNonBlockingMode( sal_Bool bNonBlockingMode); - - /** Query blocking mode of the socket. - @return <code>sal_True</code> if non-blocking mode is set. - */ - inline sal_Bool SAL_CALL isNonBlockingMode() const; - - - /** clears the error status - */ - inline void SAL_CALL clearError() const; - - /** returns a constant decribing the last error for the socket system. - - @return osl_Socket_E_NONE if no error occurred, invalid_SocketError if - an unknown (unmapped) error occurred, otherwise an enum describing the - error. - @see osl_getLastSocketError() - */ - inline oslSocketError getError() const; - - /** Builds a string with the last error-message for the socket. - */ - inline ::rtl::OUString getErrorAsString( ) const; - - /** Returns the underlying handle unacquired (The caller must acquire it to keep it). - */ - inline oslSocket getHandle() const; - }; - - - class StreamSocket : public Socket - { - public: - /** Creates a socket. - @param Family the Family of the socket (Inet by default) - @param Protocol the Protocon of the socket (IP by default) - @param Type For some protocols it might be desirable to - use a different type than <code>osl_Socket_TypeStream</code> - (like <code>osl_Socket_TypeSeqPacket</code>). - Therefore this parameter is not hidden. - */ - inline StreamSocket(oslAddrFamily Family = osl_Socket_FamilyInet, - oslProtocol Protocol = osl_Socket_ProtocolIp, - oslSocketType Type = osl_Socket_TypeStream); - - inline StreamSocket( const StreamSocket & ); - - inline StreamSocket( oslSocket Socket , __sal_NoAcquire noacquire ); - - inline StreamSocket( oslSocket Socket ); - - /** Retrieves n bytes from the stream and copies them into pBuffer. - The method avoids incomplete reads due to packet boundaries and is thus - blocking. - @param pBuffer receives the read data. pBuffer must be large enough - to hold n bytes. - @param n the number of bytes to read. - @return the number of read bytes. The number will only be smaller than - n if an exceptional condition (e.g. connection closed) occurs. - */ - inline sal_Int32 SAL_CALL read(void* pBuffer, sal_uInt32 n); - - /** Writes n bytes from pBuffer to the stream. The method avoids - incomplete writes due to packet boundaries and is thus blocking. - @param pBuffer contains the data to be written. - @param n the number of bytes to write. - @return the number of written bytes. The number will only be smaller than - n if an exceptional condition (e.g. connection closed) occurs. - */ - inline sal_Int32 SAL_CALL write(const void* pBuffer, sal_uInt32 n); - - - /** Tries to receive BytesToRead data from the connected socket, - - @param[out] pBuffer Points to a buffer that will be filled with the received - data. pBuffer must have at least have a size of BytesToRead. - @param[in] BytesToRead The number of bytes to read. - @param[in] flags Modifier for the call. Valid values are: - - <ul> - <li><code>osl_Socket_MsgNormal</code> - <li><code>osl_Socket_MsgOOB</code> - <li><code>osl_Socket_MsgPeek</code> - <li><code>osl_Socket_MsgDontRoute</code> - <li><code>osl_Socket_MsgMaxIOVLen</code> - </ul> - @return the number of received bytes, which may be less than BytesToRead. - */ - inline sal_Int32 SAL_CALL recv(void* pBuffer, - sal_uInt32 BytesToRead, - oslSocketMsgFlag flags= osl_Socket_MsgNormal); - - /** Tries to send BytesToSend data to the connected socket. - - @param pBuffer [in] Points to a buffer that contains the send-data. - @param BytesToSend [in] The number of bytes to send. pBuffer must have at least - this size. - @param Flag [in] Modifier for the call. Valid values are: - <ul> - <li><code>osl_Socket_MsgNormal</code> - <li><code>osl_Socket_MsgOOB</code> - <li><code>osl_Socket_MsgPeek</code> - <li><code>osl_Socket_MsgDontRoute</code> - <li><code>osl_Socket_MsgMaxIOVLen</code> - </ul> - - @return the number of transfered bytes. It may be less than BytesToSend. - */ - sal_Int32 SAL_CALL send(const void* pBuffer, - sal_uInt32 BytesToSend, - oslSocketMsgFlag= osl_Socket_MsgNormal); - }; - - class ConnectorSocket : public StreamSocket - { - public: - /** Creates a socket that can connect to a (remote) host. - @param Family the Family of the socket (Inet by default) - @param Protocol the Protocon of the socket (IP by default) - @param Type For some protocols it might be desirable to - use a different type than sock_stream <code>osl_Socket_TypeSeqPacket</code> - (like <code>osl_Socket_TypeSeqPacket</code>). - Therefore we do not hide this parameter here. - */ - ConnectorSocket(oslAddrFamily Family = osl_Socket_FamilyInet, - oslProtocol Protocol = osl_Socket_ProtocolIp, - oslSocketType Type = osl_Socket_TypeStream); - - - /** Connects the socket to a (remote) host. - @param TargetHost The address of the target. - @param pTimeout The timeout for blocking. If 0, a default system dependent timeout - us used. - @return <code> osl_Socket_Ok</code> if connected successfully, - <code>osl_Socket_TimedOut</code> on timeout, - <code>osl_Socket_Interrupted</code> if unblocked forcefully (by osl::Socket::close()), - <code>osl_Socket_Error</code> if connect failed. - */ - oslSocketResult SAL_CALL connect(const SocketAddr& TargetHost, const TimeValue* pTimeout = 0); - }; - - /** Allows to accept socket connections. - */ - class AcceptorSocket : public Socket - { - public: - inline AcceptorSocket(oslAddrFamily Family = osl_Socket_FamilyInet, - oslProtocol Protocol = osl_Socket_ProtocolIp, - oslSocketType Type = osl_Socket_TypeStream); - - /** Prepare a socket for the accept-call. The socket must have been - bound before to the local address. - @param MaxPendingConnections The maximum number of pending - connections (waiting to be accepted) on this socket. If you use - -1, a system default value is used. - @return <code>sal_True</code> if call was successful. - */ - inline sal_Bool SAL_CALL listen(sal_Int32 MaxPendingConnections= -1); - - /** Accepts incoming connections on the socket. You must - precede this call with osl::Socket::bind() and listen(). - @param Connection receives the incoming connection. - @return <code>osl_Socket_Ok</code>, if a connection has been accepted, - <code>osl_Socket_TimedOut</code>, if m_RecvTimeout milliseconds passed without connect, - <code>osl_Socket_Error</code> on errors. - */ - inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection); - - /** Accepts incoming connections on the socket. You must - precede this call with osl::Socket::bind() and listen(). - @param PeerAddr receives the address of the connecting entity - (your communication partner). - @param Connection receives the incoming connection. - @return <code>osl_Socket_Ok</code>, if a connection has been accepted, - <code>osl_Socket_TimedOut</code>, if m_RecvTimeout milliseconds passed without connect, - <code>osl_Socket_Error</code> on errors. - */ - inline oslSocketResult SAL_CALL acceptConnection( StreamSocket& Connection, SocketAddr & PeerAddr); - }; - - - - /** A connectionless socket to send and receive datagrams. - */ - class DatagramSocket : public Socket - { - public: - - /** Creates a datagram socket. - @param Family the Family of the socket (Inet by default) - @param Protocol the Protocon of the socket (IP by default) - @param Type is sock_dgram by default. - */ - inline DatagramSocket(oslAddrFamily Family= osl_Socket_FamilyInet, - oslProtocol Protocol= osl_Socket_ProtocolIp, - oslSocketType Type= osl_Socket_TypeDgram); - - /** Tries to receives BufferSize data from the socket, if no error occurs. - - @param pSenderAddr [out] You must provide pointer to a SocketAddr. - It will be filled with the address of the datagrams sender. - If pSenderAddr is 0, it is ignored. - @param pBuffer [out] Points to a buffer that will be filled with the received - datagram. - @param BufferSize [in] The size of pBuffer. - @param Flag [in] Modifier for the call. Valid values are: - <ul> - <li><code>osl_Socket_MsgNormal</code> - <li><code>osl_Socket_MsgOOB</code> - <li><code>osl_Socket_MsgPeek</code> - <li><code>osl_Socket_MsgDontRoute</code> - <li><code>osl_Socket_MsgMaxIOVLen</code> - </ul> - - @return the number of received bytes. - */ - inline sal_Int32 SAL_CALL recvFrom(void* pBuffer, - sal_uInt32 BufferSize, - SocketAddr* pSenderAddr= 0, - oslSocketMsgFlag Flag= osl_Socket_MsgNormal); - - /** Tries to send one datagram with BytesToSend size to the given ReceiverAddr. - Since there is only send one packet, the function doesn't care about - packet boundaries. - - @param ReceiverAddr [in] A SocketAddr that contains - the destination address for this send. - - @param pBuffer [in] Points to a buffer that contains the send-data. - @param BufferSize [in] The number of bytes to send. pBuffer must have at least - this size. - @param Flag [in] Modifier for the call. Valid values are: - - <ul> - <li><code>osl_Socket_MsgNormal</code> - <li><code>osl_Socket_MsgOOB</code> - <li><code>osl_Socket_MsgPeek</code> - <li><code>osl_Socket_MsgDontRoute</code> - <li><code>osl_Socket_MsgMaxIOVLen</code> - </ul> - - @return the number of transfered bytes. - */ - inline sal_Int32 SAL_CALL sendTo( const SocketAddr& ReceiverAddr, - const void* pBuffer, - sal_uInt32 BufferSize, - oslSocketMsgFlag Flag= osl_Socket_MsgNormal); - }; - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |