diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2010-10-11 22:07:17 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2010-10-25 19:55:36 -0500 |
commit | 5baa9a51a87ea15a36997cab013a1753c2fec0db (patch) | |
tree | b5926bb76eaf564c556b129628a371ecb47b4fac | |
parent | 548517c16a36dc87aaa38085c0dad5a262d7c3e0 (diff) |
merge vosremoval-pipe.diff
-rw-r--r-- | vos/inc/vos/pipe.hxx | 261 | ||||
-rw-r--r-- | vos/source/makefile.mk | 2 | ||||
-rw-r--r-- | vos/source/pipe.cxx | 418 |
3 files changed, 0 insertions, 681 deletions
diff --git a/vos/inc/vos/pipe.hxx b/vos/inc/vos/pipe.hxx deleted file mode 100644 index 68a0062d2dae..000000000000 --- a/vos/inc/vos/pipe.hxx +++ /dev/null @@ -1,261 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - - -#ifndef _VOS_PIPE_HXX_ -#define _VOS_PIPE_HXX_ - -# include <osl/pipe.h> -# include <vos/types.hxx> -# include <vos/object.hxx> -# include <vos/istream.hxx> -#ifndef _VOS_REFERMCE_HXX_ -# include <vos/refernce.hxx> -#endif -# include <vos/refobj.hxx> -#include <osl/security.hxx> -# include <rtl/ustring.hxx> - - -namespace vos -{ - -class OStreamPipe; - -/** Represents a pipe. -*/ -class OPipe : public NAMESPACE_VOS(OReference), - public NAMESPACE_VOS(OObject) -{ - VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OPipe)); - -public: - /* - Represents pipe-options - */ - enum TPipeOption { - TOption_Open = osl_Pipe_OPEN, /* open existing pipe */ - TOption_Create = osl_Pipe_CREATE /* create pipe and open it, */ - /* fails if already existst */ - }; - - enum TPipeError { - E_None = osl_Pipe_E_None, /* no error */ - E_NotFound = osl_Pipe_E_NotFound, /* Pipe could not be found */ - E_AlreadyExists = osl_Pipe_E_AlreadyExists, /* Pipe already exists */ - E_NoProtocol = osl_Pipe_E_NoProtocol, /* Protocol not available */ - E_NetworkReset = osl_Pipe_E_NetworkReset, /* Network dropped connection because of reset */ - E_ConnectionAbort = osl_Pipe_E_ConnectionAbort, /* Software caused connection abort */ - E_ConnectionReset = osl_Pipe_E_ConnectionReset, /* Connection reset by peer */ - E_NoBufferSpace = osl_Pipe_E_NoBufferSpace, /* No buffer space available */ - E_TimedOut = osl_Pipe_E_TimedOut, /* Connection timed out */ - E_ConnectionRefused = osl_Pipe_E_ConnectionRefused, /* Connection refused */ - E_invalidError = osl_Pipe_E_invalidError /* unmapped error */ - }; - -protected: - typedef ORefObj<oslPipe> PipeRef; - - PipeRef* m_pPipeRef; - -public: - - /** Does not create a pipe. Use assignment operator to - make this a useable pipe. - */ - OPipe(); - - /** Creates a pipe. - @param strName - @param Options - */ - OPipe(const ::rtl::OUString& strName, TPipeOption Options = TOption_Open); - - /** Creates a pipe. - @param strName - @param Options - @param Security - */ - OPipe(const ::rtl::OUString& strName, TPipeOption Options, - const osl::Security& rSecurity); - - /** Copy constructor. - */ - OPipe(const OPipe& pipe); - - /** Creates pipe as wrapper around the underlying oslPipe. - @param Pipe - */ - OPipe(oslPipe Pipe); - - /** Destructor. Destroys the underlying oslPipe. - */ - virtual ~OPipe(); - - /** Create a pipe with the given attributes. - If socket was already created, the old one will be discarded. - @param strName - @param Options - @return True if socket was successfully created. - */ - sal_Bool SAL_CALL create(const ::rtl::OUString& strName, TPipeOption Options = TOption_Open); - - /** Create a pipe with the given attributes. - If socket was already created, the old one will be discarded. - @param strName - @param Options - @param Security - @return True if socket was successfully created. - */ - sal_Bool SAL_CALL create(const ::rtl::OUString& strName, TPipeOption Options, - const osl::Security& rSecurity); - - /** Assignment operator. If pipe was already created, the old one will - be discarded. - */ - OPipe& SAL_CALL operator= (const OPipe& pipe); - - /** Allow cast to underlying oslPipe. - */ - SAL_CALL operator oslPipe() const; - - /** Checks if the pipe is valid. - @return True if the object represents a valid pipe. - */ - sal_Bool SAL_CALL isValid() const; - - sal_Bool SAL_CALL operator==( const OPipe& rPipe ) - { - return m_pPipeRef == rPipe.m_pPipeRef; - } - - /** Closes the pipe. - */ - virtual void SAL_CALL close(); - - /** Accept connection on an existing pipe - */ - TPipeError SAL_CALL accept(OStreamPipe& Connection); - - /** Tries to receives BytesToRead data from the connected pipe, - - @param pBuffer [out] Points to a buffer that will be filled with the received - data. - @param BytesToRead [in] The number of bytes to read. pBuffer must have at least - this size. - @return the number of received bytes. - */ - sal_Int32 SAL_CALL recv(void* pBuffer, sal_uInt32 BytesToRead); - - /** Tries to sends BytesToSend data from the connected pipe. - - @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. - @return the number of transfered bytes. - */ - sal_Int32 SAL_CALL send(const void* pBuffer, sal_uInt32 BytesToSend); - - /** Delivers a constant decribing the last error for the pipe system. - @return ENONE if no error occured, invalid_PipeError if - an unknown (unmapped) error occured, otherwise an enum describing the - error. - */ - TPipeError SAL_CALL getError() const; - -}; - -/** A pipe to send or receive a stream of data. -*/ -class OStreamPipe : public NAMESPACE_VOS(OPipe), - public NAMESPACE_VOS(IStream) -{ - VOS_DECLARE_CLASSINFO(NAMESPACE_VOS(OStreamPipe)); -public: - - /** Creates an unattached pipe. You must attach the pipe to an oslPipe - e.g. by using the operator=(oslPipe), before you can use the stream- - functionality of the object. - */ - OStreamPipe(); - - /** Creates pipe as wrapper around the underlying oslPipe. - @param Pipe - */ - OStreamPipe(oslPipe Pipe); - - /** Copy constructor. - @param Pipe - */ - OStreamPipe(const OStreamPipe& Pipe); - - /** Destructor. Calls shutdown(readwrite) and close(). - */ - virtual ~OStreamPipe(); - - /** Attaches the oslPipe to this object. If the object - already was attached to an oslPipe, the old one will - be closed and destroyed. - @param Pipe. - */ - OStreamPipe& SAL_CALL operator=(oslPipe Pipe); - - /** Assignment operator - */ - OStreamPipe& SAL_CALL operator=(const OPipe& pipe); - - /** Retrieves n bytes from the stream and copies them into pBuffer. - The method avoids incomplete reads due to packet boundaries. - @param pBuffer receives the read data. - @param n the number of bytes to read. pBuffer must be large enough - to hold the n bytes! - @return the number of read bytes. The number will only be smaller than - n if an exceptional condition (e.g. connection closed) occurs. - */ - virtual sal_Int32 SAL_CALL read(void* pBuffer, sal_uInt32 n) const; - - /** Writes n bytes from pBuffer to the stream. The method avoids - incomplete writes due to packet boundaries. - @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. - */ - virtual sal_Int32 SAL_CALL write(const void* pBuffer, sal_uInt32 n); - - /** Checks if pipe is closed. - @return True if pipe is closed. - */ - virtual sal_Bool SAL_CALL isEof() const; -}; - -} - -#endif // _VOS_PIPE_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk index 962f2d386777..95aa1d0325be 100644 --- a/vos/source/makefile.mk +++ b/vos/source/makefile.mk @@ -45,7 +45,6 @@ SLOFILES= $(SLO)$/mutex.obj \ $(SLO)$/module.obj \ $(SLO)$/timer.obj \ $(SLO)$/process.obj \ - $(SLO)$/pipe.obj \ $(SLO)$/xception.obj @@ -58,7 +57,6 @@ OBJFILES= $(OBJ)$/mutex.obj \ $(OBJ)$/module.obj \ $(OBJ)$/timer.obj \ $(OBJ)$/process.obj \ - $(OBJ)$/pipe.obj \ $(OBJ)$/xception.obj .ENDIF diff --git a/vos/source/pipe.cxx b/vos/source/pipe.cxx deleted file mode 100644 index c4eb6a5aea04..000000000000 --- a/vos/source/pipe.cxx +++ /dev/null @@ -1,418 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - - -#include <vos/pipe.hxx> -#include <osl/diagnose.h> - -using namespace vos; - -/////////////////////////////////////////////////////////////////////////////// -// Pipe - - -VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OPipe, vos), - VOS_NAMESPACE(OPipe, vos), - VOS_NAMESPACE(OObject, vos), 0); - -/*****************************************************************************/ -// OPipe() -/*****************************************************************************/ -OPipe::OPipe() -{ - m_pPipeRef= 0; -} - -/*****************************************************************************/ -// OPipe() -/*****************************************************************************/ - -OPipe::OPipe( const rtl::OUString& strName, TPipeOption Options) -{ - m_pPipeRef = - new PipeRef( osl_createPipe(strName.pData, - (oslPipeOptions)Options, - NULL) ); - - OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n"); - OSL_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n"); -} - -/*****************************************************************************/ -// OPipe() -/*****************************************************************************/ - -OPipe::OPipe( const rtl::OUString& strName, - TPipeOption Options, - const osl::Security& rSecurity) -{ - m_pPipeRef= - new PipeRef(osl_createPipe(strName.pData, - (oslPipeOptions)Options, - rSecurity.getHandle())); - - OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n"); - OSL_POSTCOND((*m_pPipeRef)(), "OPipe(): creation of pipe failed!\n"); -} - -/*****************************************************************************/ -// OPipe() -/*****************************************************************************/ -OPipe::OPipe(const OPipe& pipe) : -OReference(), OObject() -{ - - OSL_ASSERT(pipe.m_pPipeRef != 0); - - m_pPipeRef= pipe.m_pPipeRef; - - m_pPipeRef->acquire(); -} - -/*****************************************************************************/ -// OPipe() -/*****************************************************************************/ -OPipe::OPipe(oslPipe Pipe) -{ - m_pPipeRef = new PipeRef(Pipe); -} - - -/*****************************************************************************/ -// ~OPipe() -/*****************************************************************************/ -OPipe::~OPipe() -{ - close(); -} - -/*****************************************************************************/ -// create -/*****************************************************************************/ -sal_Bool OPipe::create( const rtl::OUString& strName, TPipeOption Options ) -{ - // if this was a valid pipe, decrease reference - if ((m_pPipeRef) && (m_pPipeRef->release() == 0)) - { - osl_releasePipe((*m_pPipeRef)()); - delete m_pPipeRef; - m_pPipeRef= 0; - } - - m_pPipeRef= - new PipeRef(osl_createPipe(strName.pData, - (oslPipeOptions)Options, - NULL)); - - OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n"); - - return (*m_pPipeRef)() != 0; -} - -/*****************************************************************************/ -// create -/*****************************************************************************/ -sal_Bool OPipe::create( const rtl::OUString& strName, - TPipeOption Options, - const osl::Security& rSecurity ) -{ - // if this was a valid pipe, decrease reference - if ((m_pPipeRef) && (m_pPipeRef->release() == 0)) - { - osl_releasePipe((*m_pPipeRef)()); - delete m_pPipeRef; - m_pPipeRef= 0; - } - - m_pPipeRef= - new PipeRef(osl_createPipe(strName.pData, - (oslPipeOptions)Options, - rSecurity.getHandle())); - - OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n"); - - return (*m_pPipeRef)() != 0; -} - -/*****************************************************************************/ -// operator= -/*****************************************************************************/ -OPipe& OPipe::operator= (const OPipe& pipe) -{ - OSL_PRECOND(pipe.m_pPipeRef != 0, "OPipe::operator=: tried to assign an empty/invalid pipe\n"); - - if (m_pPipeRef == pipe.m_pPipeRef) - return *this; - - // if this was a valid pipe, decrease reference - if ((m_pPipeRef) && (m_pPipeRef->release() == 0)) - { - osl_releasePipe((*m_pPipeRef)()); - delete m_pPipeRef; - m_pPipeRef= 0; - } - - m_pPipeRef= pipe.m_pPipeRef; - - m_pPipeRef->acquire(); - - return *this; -} - -/*****************************************************************************/ -// operator oslPipe() -/*****************************************************************************/ -OPipe::operator oslPipe() const -{ - OSL_ASSERT(m_pPipeRef); - return (*m_pPipeRef)(); -} - -/*****************************************************************************/ -// isValid() -/*****************************************************************************/ -sal_Bool OPipe::isValid() const -{ - return m_pPipeRef != 0 && (*m_pPipeRef)() != 0; -} - - -/*****************************************************************************/ -// close -/*****************************************************************************/ -void OPipe::close() -{ - if (m_pPipeRef && (m_pPipeRef->release() == 0)) - { - osl_releasePipe((*m_pPipeRef)()); - delete m_pPipeRef; - } - m_pPipeRef= 0; -} - -/*****************************************************************************/ -// accept -/*****************************************************************************/ -OPipe::TPipeError OPipe::accept(OStreamPipe& Connection) -{ - if ( isValid() ) - { - Connection = osl_acceptPipe((*m_pPipeRef)()); - - if(Connection.isValid()) - return E_None; - } - - return getError(); -} - -/*****************************************************************************/ -// recv -/*****************************************************************************/ -sal_Int32 OPipe::recv(void* pBuffer, sal_uInt32 BytesToRead) -{ - if ( isValid() ) - return osl_receivePipe((*m_pPipeRef)(), - pBuffer, - BytesToRead); - else - return -1; - -} - -/*****************************************************************************/ -// send -/*****************************************************************************/ -sal_Int32 OPipe::send(const void* pBuffer, sal_uInt32 BytesToSend) -{ - if ( isValid() ) - return osl_sendPipe((*m_pPipeRef)(), - pBuffer, - BytesToSend); - else - return -1; -} - -/*****************************************************************************/ -// getError -/*****************************************************************************/ -OPipe::TPipeError OPipe::getError() const -{ - if (m_pPipeRef) - return (TPipeError)osl_getLastPipeError((*m_pPipeRef)()); - else - return (TPipeError)osl_getLastPipeError(NULL); -} - - - -VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OStreamPipe, vos), - VOS_NAMESPACE(OStreamPipe, vos), - VOS_NAMESPACE(OPipe, vos), 0); - - - -/*****************************************************************************/ -// OStreamPipe -/*****************************************************************************/ -OStreamPipe::OStreamPipe() -{ -} - -/*****************************************************************************/ -// OStreamPipe -/*****************************************************************************/ -OStreamPipe::OStreamPipe(oslPipe Pipe) : - OPipe(Pipe) -{ -} - -/*****************************************************************************/ -// OStreamPipe -// copy constructor -/*****************************************************************************/ -OStreamPipe::OStreamPipe(const OStreamPipe& pipe) : -OPipe(), IStream() -{ - OSL_ASSERT(pipe.m_pPipeRef != 0); - - m_pPipeRef= pipe.m_pPipeRef; - - m_pPipeRef->acquire(); -} - -/*****************************************************************************/ -// ~OStreamPipe -/*****************************************************************************/ -OStreamPipe::~OStreamPipe() -{ -} - -/*****************************************************************************/ -// operator=(oslPipe) -/*****************************************************************************/ -OStreamPipe& OStreamPipe::operator=(oslPipe Pipe) -{ - - // if this was a valid pipe, decrease reference - if (m_pPipeRef && (m_pPipeRef->release() == 0)) - { - osl_releasePipe((*m_pPipeRef)()); - delete m_pPipeRef; - m_pPipeRef= 0; - } - - m_pPipeRef= new PipeRef(Pipe); - - OSL_POSTCOND(m_pPipeRef != 0, "OPipe(): new failed.\n"); - - return *this; -} - -/*****************************************************************************/ -// operator=OPipe -/*****************************************************************************/ - -OStreamPipe& OStreamPipe::operator= (const OPipe& pipe) -{ - OPipe::operator= ( pipe ); - return *this; -} - -/*****************************************************************************/ -// read -/*****************************************************************************/ -sal_Int32 OStreamPipe::read(void* pBuffer, sal_uInt32 n) const -{ - OSL_ASSERT(m_pPipeRef && (*m_pPipeRef)()); - - /* loop until all desired bytes were read or an error occured */ - sal_Int32 BytesRead= 0; - sal_Int32 BytesToRead= n; - while (BytesToRead > 0) - { - sal_Int32 RetVal; - RetVal= osl_receivePipe((*m_pPipeRef)(), - pBuffer, - BytesToRead); - - /* error occured? */ - if(RetVal <= 0) - { - break; - } - - BytesToRead -= RetVal; - BytesRead += RetVal; - pBuffer= (sal_Char*)pBuffer + RetVal; - } - - return BytesRead; -} - -/*****************************************************************************/ -// write -/*****************************************************************************/ -sal_Int32 OStreamPipe::write(const void* pBuffer, sal_uInt32 n) -{ - OSL_ASSERT(m_pPipeRef && (*m_pPipeRef)()); - - /* loop until all desired bytes were send or an error occured */ - sal_Int32 BytesSend= 0; - sal_Int32 BytesToSend= n; - while (BytesToSend > 0) - { - sal_Int32 RetVal; - - RetVal= osl_sendPipe((*m_pPipeRef)(), - pBuffer, - BytesToSend); - - /* error occured? */ - if(RetVal <= 0) - { - break; - } - - BytesToSend -= RetVal; - BytesSend += RetVal; - pBuffer= (sal_Char*)pBuffer + RetVal; - } - - return BytesSend; -} - -sal_Bool OStreamPipe::isEof() const -{ - return isValid(); -} - - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |