diff options
Diffstat (limited to 'sal/inc/osl/socket.hxx')
-rw-r--r-- | sal/inc/osl/socket.hxx | 559 |
1 files changed, 0 insertions, 559 deletions
diff --git a/sal/inc/osl/socket.hxx b/sal/inc/osl/socket.hxx deleted file mode 100644 index f8246c48a448..000000000000 --- a/sal/inc/osl/socket.hxx +++ /dev/null @@ -1,559 +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_HXX_ -#define _OSL_SOCKET_HXX_ - -#include <osl/socket_decl.hxx> - -namespace osl -{ - //______________________________________________________________________________ - inline SocketAddr::SocketAddr() - : m_handle( osl_createEmptySocketAddr( osl_Socket_FamilyInet ) ) - {} - - //______________________________________________________________________________ - inline SocketAddr::SocketAddr(const SocketAddr& Addr) - : m_handle( osl_copySocketAddr( Addr.m_handle ) ) - { - } - - //______________________________________________________________________________ - inline SocketAddr::SocketAddr(oslSocketAddr Addr) - : m_handle( osl_copySocketAddr( Addr ) ) - { - } - - //______________________________________________________________________________ - inline SocketAddr::SocketAddr(oslSocketAddr Addr, __osl_socket_NoCopy ) - : m_handle( Addr ) - { - } - - //______________________________________________________________________________ - inline SocketAddr::SocketAddr( const ::rtl::OUString& strAddrOrHostName, sal_Int32 nPort) - : m_handle( osl_createInetSocketAddr( strAddrOrHostName.pData, nPort ) ) - { - if(! m_handle ) - { - m_handle = osl_resolveHostname(strAddrOrHostName.pData); - - // host found? - if(m_handle) - { - osl_setInetPortOfSocketAddr(m_handle, nPort); - } - else - { - osl_destroySocketAddr( m_handle ); - m_handle = 0; - } - } - } - - //______________________________________________________________________________ - inline SocketAddr::~SocketAddr() - { - if( m_handle ) - osl_destroySocketAddr( m_handle ); - } - - //______________________________________________________________________________ - inline ::rtl::OUString SocketAddr::getHostname( oslSocketResult *pResult ) const - { - ::rtl::OUString hostname; - oslSocketResult result = osl_getHostnameOfSocketAddr( m_handle, &(hostname.pData) ); - if( pResult ) - *pResult = result; - return hostname; - } - - //______________________________________________________________________________ - inline sal_Int32 SAL_CALL SocketAddr::getPort() const - { - return osl_getInetPortOfSocketAddr(m_handle); - } - - //______________________________________________________________________________ - inline sal_Bool SAL_CALL SocketAddr::setPort( sal_Int32 nPort ) - { - return osl_setInetPortOfSocketAddr(m_handle, nPort ); - } - - inline sal_Bool SAL_CALL SocketAddr::setHostname( const ::rtl::OUString &sDottedIpOrHostname ) - { - *this = SocketAddr( sDottedIpOrHostname , getPort() ); - return is(); - } - - //______________________________________________________________________________ - inline sal_Bool SAL_CALL SocketAddr::setAddr( const ::rtl::ByteSequence & address ) - { - return osl_setAddrOfSocketAddr( m_handle, address.getHandle() ) - == osl_Socket_Ok; - } - - inline ::rtl::ByteSequence SAL_CALL SocketAddr::getAddr( oslSocketResult *pResult ) const - { - ::rtl::ByteSequence sequence; - oslSocketResult result = osl_getAddrOfSocketAddr( m_handle,(sal_Sequence **) &sequence ); - if( pResult ) - *pResult = result; - return sequence; - } - - //______________________________________________________________________________ - inline SocketAddr & SAL_CALL SocketAddr::operator= (oslSocketAddr Addr) - { - oslSocketAddr pNewAddr = osl_copySocketAddr( Addr ); - if( m_handle ) - osl_destroySocketAddr( m_handle ); - m_handle = pNewAddr; - return *this; - } - - //______________________________________________________________________________ - inline SocketAddr & SAL_CALL SocketAddr::operator= (const SocketAddr& Addr) - { - *this = (Addr.getHandle()); - return *this; - } - - inline SocketAddr & SAL_CALL SocketAddr::assign( oslSocketAddr Addr, __osl_socket_NoCopy ) - { - if( m_handle ) - osl_destroySocketAddr( m_handle ); - m_handle = Addr; - return *this; - } - - //______________________________________________________________________________ - inline sal_Bool SAL_CALL SocketAddr::operator== (oslSocketAddr Addr) const - { - return osl_isEqualSocketAddr( m_handle, Addr ); - } - - inline oslSocketAddr SocketAddr::getHandle() const - { - return m_handle; - } - - //______________________________________________________________________________ - inline sal_Bool SocketAddr::is() const - { - return m_handle != 0; - } - - // (static method)______________________________________________________________ - inline ::rtl::OUString SAL_CALL SocketAddr::getLocalHostname( oslSocketResult *pResult ) - { - ::rtl::OUString hostname; - oslSocketResult result = osl_getLocalHostname( &(hostname.pData) ); - if(pResult ) - *pResult = result; - return hostname; - } - - // (static method)______________________________________________________________ - inline void SAL_CALL SocketAddr::resolveHostname( - const ::rtl::OUString & strHostName, SocketAddr &Addr) - { - Addr = SocketAddr( osl_resolveHostname( strHostName.pData ) , SAL_NO_COPY ); - } - - // (static method)______________________________________________________________ - inline sal_Int32 SAL_CALL SocketAddr::getServicePort( - const ::rtl::OUString& strServiceName, - const ::rtl::OUString & strProtocolName ) - { - return osl_getServicePort( strServiceName.pData, strProtocolName.pData ); - } - - //______________________________________________________________________________ - inline Socket::Socket(oslSocketType Type, - oslAddrFamily Family, - oslProtocol Protocol) - : m_handle( osl_createSocket(Family, Type, Protocol) ) - {} - - //______________________________________________________________________________ - inline Socket::Socket( oslSocket socketHandle, __sal_NoAcquire ) - : m_handle( socketHandle ) - {} - - //______________________________________________________________________________ - inline Socket::Socket( oslSocket socketHandle ) - : m_handle( socketHandle ) - { - osl_acquireSocket( m_handle ); - } - - //______________________________________________________________________________ - inline Socket::Socket( const Socket & socket ) - : m_handle( socket.getHandle() ) - { - osl_acquireSocket( m_handle ); - } - - //______________________________________________________________________________ - inline Socket::~Socket() - { - osl_releaseSocket( m_handle ); - } - - //______________________________________________________________________________ - inline Socket& Socket::operator= ( oslSocket socketHandle) - { - osl_acquireSocket( socketHandle ); - osl_releaseSocket( m_handle ); - m_handle = socketHandle; - return *this; - } - - //______________________________________________________________________________ - inline Socket& Socket::operator= (const Socket& sock) - { - return (*this) = sock.getHandle(); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::operator==( const Socket& rSocket ) const - { - return m_handle == rSocket.getHandle(); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::operator==( const oslSocket socketHandle ) const - { - return m_handle == socketHandle; - } - - //______________________________________________________________________________ - inline void Socket::shutdown( oslSocketDirection Direction ) - { - osl_shutdownSocket( m_handle , Direction ); - } - - //______________________________________________________________________________ - inline void Socket::close() - { - osl_closeSocket( m_handle ); - } - - //______________________________________________________________________________ - inline void Socket::getLocalAddr( SocketAddr & addr) const - { - addr.assign( osl_getLocalAddrOfSocket( m_handle ) , SAL_NO_COPY ); - } - - //______________________________________________________________________________ - inline sal_Int32 Socket::getLocalPort() const - { - SocketAddr addr( 0 ); - getLocalAddr( addr ); - return addr.getPort(); - } - - //______________________________________________________________________________ - inline ::rtl::OUString Socket::getLocalHost() const - { - SocketAddr addr( 0 ); - getLocalAddr( addr ); - return addr.getHostname(); - } - - //______________________________________________________________________________ - inline void Socket::getPeerAddr( SocketAddr &addr ) const - { - addr.assign( osl_getPeerAddrOfSocket( m_handle ), SAL_NO_COPY ); - } - - //______________________________________________________________________________ - inline sal_Int32 Socket::getPeerPort() const - { - SocketAddr addr( 0 ); - getPeerAddr( addr ); - return addr.getPort(); - } - - //______________________________________________________________________________ - inline ::rtl::OUString Socket::getPeerHost() const - { - SocketAddr addr( 0 ); - getPeerAddr( addr ); - return addr.getHostname(); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::bind(const SocketAddr& LocalInterface) - { - return osl_bindAddrToSocket( m_handle , LocalInterface.getHandle() ); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::isRecvReady(const TimeValue *pTimeout ) const - { - return osl_isReceiveReady( m_handle , pTimeout ); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::isSendReady(const TimeValue *pTimeout ) const - { - return osl_isSendReady( m_handle, pTimeout ); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::isExceptionPending(const TimeValue *pTimeout ) const - { - return osl_isExceptionPending( m_handle, pTimeout ); - } - - //______________________________________________________________________________ - inline oslSocketType Socket::getType() const - { - return osl_getSocketType( m_handle ); - } - - //______________________________________________________________________________ - inline sal_Int32 Socket::getOption( - oslSocketOption Option, - void* pBuffer, - sal_uInt32 BufferLen, - oslSocketOptionLevel Level) const - { - return osl_getSocketOption( m_handle, Level, Option, pBuffer , BufferLen ); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::setOption( oslSocketOption Option, - void* pBuffer, - sal_uInt32 BufferLen, - oslSocketOptionLevel Level ) const - { - return osl_setSocketOption( m_handle, Level, Option , pBuffer, BufferLen ); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::setOption( oslSocketOption option, sal_Int32 nValue ) - { - return setOption( option, &nValue, sizeof( nValue ) ); - } - - //______________________________________________________________________________ - inline sal_Int32 Socket::getOption( oslSocketOption option ) const - { - sal_Int32 n; - getOption( option, &n, sizeof( n ) ); - return n; - } - - //______________________________________________________________________________ - inline sal_Bool Socket::enableNonBlockingMode( sal_Bool bNonBlockingMode) - { - return osl_enableNonBlockingMode( m_handle , bNonBlockingMode ); - } - - //______________________________________________________________________________ - inline sal_Bool Socket::isNonBlockingMode() const - { - return osl_isNonBlockingMode( m_handle ); - } - - //______________________________________________________________________________ - inline void SAL_CALL Socket::clearError() const - { - sal_Int32 err = 0; - getOption(osl_Socket_OptionError, &err, sizeof(err)); - } - - //______________________________________________________________________________ - inline oslSocketError Socket::getError() const - { - return osl_getLastSocketError( m_handle ); - } - - //______________________________________________________________________________ - inline ::rtl::OUString Socket::getErrorAsString( ) const - { - ::rtl::OUString error; - osl_getLastSocketErrorDescription( m_handle, &(error.pData) ); - return error; - } - - //______________________________________________________________________________ - inline oslSocket Socket::getHandle() const - { - return m_handle; - } - - //______________________________________________________________________________ - inline StreamSocket::StreamSocket(oslAddrFamily Family, - oslProtocol Protocol, - oslSocketType Type ) - : Socket( Type, Family, Protocol ) - {} - - //______________________________________________________________________________ - inline StreamSocket::StreamSocket( oslSocket socketHandle, __sal_NoAcquire noacquire ) - : Socket( socketHandle, noacquire ) - {} - - //______________________________________________________________________________ - inline StreamSocket::StreamSocket( oslSocket socketHandle ) - : Socket( socketHandle ) - {} - - //______________________________________________________________________________ - inline StreamSocket::StreamSocket( const StreamSocket & socket ) - : Socket( socket ) - {} - - //______________________________________________________________________________ - inline sal_Int32 StreamSocket::read(void* pBuffer, sal_uInt32 n) - { - return osl_readSocket( m_handle, pBuffer, n ); - } - - //______________________________________________________________________________ - inline sal_Int32 StreamSocket::write(const void* pBuffer, sal_uInt32 n) - { - return osl_writeSocket( m_handle, pBuffer, n ); - } - - - //______________________________________________________________________________ - inline sal_Int32 StreamSocket::recv(void* pBuffer, - sal_uInt32 BytesToRead, - oslSocketMsgFlag Flag) - { - return osl_receiveSocket( m_handle, pBuffer,BytesToRead, Flag ); - } - - //______________________________________________________________________________ - inline sal_Int32 StreamSocket::send(const void* pBuffer, - sal_uInt32 BytesToSend, - oslSocketMsgFlag Flag) - { - return osl_sendSocket( m_handle, pBuffer, BytesToSend, Flag ); - } - - //______________________________________________________________________________ - inline ConnectorSocket::ConnectorSocket(oslAddrFamily Family, - oslProtocol Protocol, - oslSocketType Type) - : StreamSocket( Family, Protocol ,Type ) - {} - - //______________________________________________________________________________ - inline oslSocketResult ConnectorSocket::connect( const SocketAddr& TargetHost, - const TimeValue* pTimeout ) - { - return osl_connectSocketTo( m_handle , TargetHost.getHandle(), pTimeout ); - } - - //______________________________________________________________________________ - inline AcceptorSocket::AcceptorSocket(oslAddrFamily Family , - oslProtocol Protocol , - oslSocketType Type ) - : Socket( Type, Family, Protocol ) - {} - - //______________________________________________________________________________ - inline sal_Bool AcceptorSocket::listen(sal_Int32 MaxPendingConnections) - { - return osl_listenOnSocket( m_handle, MaxPendingConnections ); - } - - //______________________________________________________________________________ - inline oslSocketResult AcceptorSocket::acceptConnection( StreamSocket& Connection) - { - oslSocket o = osl_acceptConnectionOnSocket( m_handle, 0 ); - oslSocketResult status = osl_Socket_Ok; - if( o ) - { - Connection = StreamSocket( o , SAL_NO_ACQUIRE ); - } - else - { - Connection = StreamSocket(); - status = osl_Socket_Error; - } - return status; - } - - //______________________________________________________________________________ - inline oslSocketResult AcceptorSocket::acceptConnection( - StreamSocket& Connection, SocketAddr & PeerAddr) - { - // TODO change in/OUT parameter - oslSocket o = osl_acceptConnectionOnSocket( m_handle, (oslSocketAddr *)&PeerAddr ); - oslSocketResult status = osl_Socket_Ok; - if( o ) - { - Connection = StreamSocket( o , SAL_NO_ACQUIRE ); - } - else - { - Connection = StreamSocket(); - status = osl_Socket_Error; - } - return status; - } - - //______________________________________________________________________________ - inline DatagramSocket::DatagramSocket(oslAddrFamily Family, - oslProtocol Protocol, - oslSocketType Type) - : Socket( Type, Family, Protocol ) - {} - - //______________________________________________________________________________ - inline sal_Int32 DatagramSocket::recvFrom(void* pBuffer, - sal_uInt32 BufferSize, - SocketAddr* pSenderAddr, - oslSocketMsgFlag Flag ) - { - sal_Int32 nByteRead; - if( pSenderAddr ) - { - // TODO : correct the out-parameter pSenderAddr outparameter - nByteRead = osl_receiveFromSocket( m_handle, pSenderAddr->getHandle() , pBuffer, - BufferSize, Flag); -// nByteRead = osl_receiveFromSocket( m_handle, *(oslSocketAddr**) &pSenderAddr , pBuffer, -// BufferSize, Flag); - } - else - { - nByteRead = osl_receiveFromSocket( m_handle, 0 , pBuffer , BufferSize , Flag ); - } - return nByteRead; - } - - //______________________________________________________________________________ - inline sal_Int32 DatagramSocket::sendTo( const SocketAddr& ReceiverAddr, - const void* pBuffer, - sal_uInt32 BufferSize, - oslSocketMsgFlag Flag ) - { - return osl_sendToSocket( m_handle, ReceiverAddr.getHandle(), pBuffer, BufferSize, Flag ); - } -} -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |