summaryrefslogtreecommitdiff
path: root/io
diff options
context:
space:
mode:
Diffstat (limited to 'io')
-rw-r--r--io/inc/makefile.mk49
-rw-r--r--io/inc/pch/precompiled_io.cxx31
-rw-r--r--io/inc/pch/precompiled_io.hxx34
-rw-r--r--io/prj/build.lst8
-rw-r--r--io/prj/d.lst12
-rw-r--r--io/source/TextInputStream/TextInputStream.cxx518
-rw-r--r--io/source/TextInputStream/makefile.mk69
-rw-r--r--io/source/TextInputStream/textinstream.component34
-rw-r--r--io/source/TextOutputStream/TextOutputStream.cxx316
-rw-r--r--io/source/TextOutputStream/makefile.mk70
-rw-r--r--io/source/TextOutputStream/textoutstream.component34
-rw-r--r--io/source/acceptor/acc_pipe.cxx233
-rw-r--r--io/source/acceptor/acc_socket.cxx418
-rw-r--r--io/source/acceptor/acceptor.component34
-rw-r--r--io/source/acceptor/acceptor.cxx364
-rw-r--r--io/source/acceptor/acceptor.hxx80
-rw-r--r--io/source/acceptor/acceptor.xml42
-rw-r--r--io/source/acceptor/makefile.mk81
-rw-r--r--io/source/connector/connector.component34
-rw-r--r--io/source/connector/connector.cxx276
-rw-r--r--io/source/connector/connector.hxx146
-rw-r--r--io/source/connector/connectr.xml42
-rw-r--r--io/source/connector/ctr_pipe.cxx120
-rw-r--r--io/source/connector/ctr_socket.cxx257
-rw-r--r--io/source/connector/makefile.mk81
-rw-r--r--io/source/stm/factreg.cxx116
-rw-r--r--io/source/stm/factreg.hxx69
-rw-r--r--io/source/stm/makefile.mk84
-rw-r--r--io/source/stm/odata.cxx1664
-rw-r--r--io/source/stm/omark.cxx1016
-rw-r--r--io/source/stm/opipe.cxx481
-rw-r--r--io/source/stm/opump.cxx509
-rw-r--r--io/source/stm/stm.xml278
-rw-r--r--io/source/stm/streamhelper.cxx247
-rw-r--r--io/source/stm/streamhelper.hxx165
-rw-r--r--io/source/stm/streams.component55
-rw-r--r--io/test/makefile.mk92
-rw-r--r--io/test/stm/datatest.cxx1113
-rw-r--r--io/test/stm/exports.dxp2
-rw-r--r--io/test/stm/makefile.mk99
-rw-r--r--io/test/stm/marktest.cxx680
-rw-r--r--io/test/stm/pipetest.cxx442
-rw-r--r--io/test/stm/pumptest.cxx452
-rw-r--r--io/test/stm/testfactreg.cxx211
-rw-r--r--io/test/stm/testfactreg.hxx122
-rw-r--r--io/test/testcomponent.cxx220
-rw-r--r--io/test/testconnection.cxx285
47 files changed, 0 insertions, 11785 deletions
diff --git a/io/inc/makefile.mk b/io/inc/makefile.mk
deleted file mode 100644
index e327f58d0..000000000
--- a/io/inc/makefile.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=io
-TARGET=inc
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.IF "$(L10N_framework)"==""
-# --- Files --------------------------------------------------------
-# --- Targets -------------------------------------------------------
-.ENDIF # L10N_framework
-
-.INCLUDE : target.mk
-.IF "$(L10N_framework)"==""
-.IF "$(ENABLE_PCH)"!=""
-ALLTAR : \
- $(SLO)$/precompiled.pch \
- $(SLO)$/precompiled_ex.pch
-
-.ENDIF # "$(ENABLE_PCH)"!=""
-.ENDIF # L10N_framework
-
diff --git a/io/inc/pch/precompiled_io.cxx b/io/inc/pch/precompiled_io.cxx
deleted file mode 100644
index 0dfe5cee5..000000000
--- a/io/inc/pch/precompiled_io.cxx
+++ /dev/null
@@ -1,31 +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 "precompiled_io.hxx"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/inc/pch/precompiled_io.hxx b/io/inc/pch/precompiled_io.hxx
deleted file mode 100644
index 109bd0862..000000000
--- a/io/inc/pch/precompiled_io.hxx
+++ /dev/null
@@ -1,34 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): Generated on 2006-09-01 17:49:50.045714
-
-#ifdef PRECOMPILED_HEADERS
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/prj/build.lst b/io/prj/build.lst
deleted file mode 100644
index eab94bf8c..000000000
--- a/io/prj/build.lst
+++ /dev/null
@@ -1,8 +0,0 @@
-io io : LIBXSLT:libxslt DESKTOP:rdbmaker NULL
-io io usr1 - all io_mkout NULL
-io io\inc nmake - all io_inc NULL
-io io\source\acceptor nmake - all io_acceptor io_connector io_inc NULL
-io io\source\connector nmake - all io_connector io_inc NULL
-io io\source\stm nmake - all io_stm io_inc NULL
-io io\source\TextInputStream nmake - all io_txtistr io_inc NULL
-io io\source\TextOutputStream nmake - all io_txtostr io_inc NULL
diff --git a/io/prj/d.lst b/io/prj/d.lst
deleted file mode 100644
index 40eb9ab13..000000000
--- a/io/prj/d.lst
+++ /dev/null
@@ -1,12 +0,0 @@
-..\%__SRC%\bin\*.dll %_DEST%\bin\*
-..\%__SRC%\bin\*.rdb %_DEST%\rdb\*
-..\source\acceptor\acceptor.xml %_DEST%\xml\acceptor.uno.xml
-..\source\connector\connectr.xml %_DEST%\xml\connector.uno.xml
-..\source\stm\stm.xml %_DEST%\xml\streams.uno.xml
-..\%__SRC%\lib\*.so %_DEST%\lib\*
-..\%__SRC%\lib\*.dylib %_DEST%\lib\*
-..\%__SRC%\misc\acceptor.component %_DEST%\xml\acceptor.component
-..\%__SRC%\misc\connector.component %_DEST%\xml\connector.component
-..\%__SRC%\misc\streams.component %_DEST%\xml\streams.component
-..\%__SRC%\misc\textinstream.component %_DEST%\xml\textinstream.component
-..\%__SRC%\misc\textoutstream.component %_DEST%\xml\textoutstream.component
diff --git a/io/source/TextInputStream/TextInputStream.cxx b/io/source/TextInputStream/TextInputStream.cxx
deleted file mode 100644
index c157bc171..000000000
--- a/io/source/TextInputStream/TextInputStream.cxx
+++ /dev/null
@@ -1,518 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-
-#include <string.h>
-#include <osl/mutex.hxx>
-#include <osl/diagnose.h>
-
-#include <rtl/unload.h>
-
-#include <uno/mapping.hxx>
-
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase3.hxx>
-#include <cppuhelper/implementationentry.hxx>
-
-#include <rtl/textenc.h>
-#include <rtl/tencinfo.h>
-
-#include <com/sun/star/io/XTextInputStream.hpp>
-#include <com/sun/star/io/XActiveDataSink.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-
-#define IMPLEMENTATION_NAME "com.sun.star.comp.io.TextInputStream"
-#define SERVICE_NAME "com.sun.star.io.TextInputStream"
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::registry;
-
-namespace io_TextInputStream
-{
- rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
-
-//===========================================================================
-// Implementation XTextInputStream
-
-typedef WeakImplHelper3< XTextInputStream, XActiveDataSink, XServiceInfo > TextInputStreamHelper;
-class OCommandEnvironment;
-
-#define INITIAL_UNICODE_BUFFER_CAPACITY 0x100
-#define READ_BYTE_COUNT 0x100
-
-class OTextInputStream : public TextInputStreamHelper
-{
- Reference< XInputStream > mxStream;
-
- // Encoding
- OUString mEncoding;
- sal_Bool mbEncodingInitialized;
- rtl_TextToUnicodeConverter mConvText2Unicode;
- rtl_TextToUnicodeContext mContextText2Unicode;
- Sequence<sal_Int8> mSeqSource;
-
- // Internal buffer for characters that are already converted successfully
- sal_Unicode* mpBuffer;
- sal_Int32 mnBufferSize;
- sal_Int32 mnCharsInBuffer;
- sal_Bool mbReachedEOF;
-
- void implResizeBuffer( void );
- OUString implReadString( const Sequence< sal_Unicode >& Delimiters,
- sal_Bool bRemoveDelimiter, sal_Bool bFindLineEnd )
- throw(IOException, RuntimeException);
- sal_Int32 implReadNext() throw(IOException, RuntimeException);
-
-public:
- OTextInputStream();
- virtual ~OTextInputStream();
-
- // Methods XTextInputStream
- virtual OUString SAL_CALL readLine( )
- throw(IOException, RuntimeException);
- virtual OUString SAL_CALL readString( const Sequence< sal_Unicode >& Delimiters, sal_Bool bRemoveDelimiter )
- throw(IOException, RuntimeException);
- virtual sal_Bool SAL_CALL isEOF( )
- throw(IOException, RuntimeException);
- virtual void SAL_CALL setEncoding( const OUString& Encoding ) throw(RuntimeException);
-
- // Methods XInputStream
- virtual sal_Int32 SAL_CALL readBytes( Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException);
- virtual sal_Int32 SAL_CALL readSomeBytes( Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException);
- virtual void SAL_CALL skipBytes( sal_Int32 nBytesToSkip )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException);
- virtual sal_Int32 SAL_CALL available( )
- throw(NotConnectedException, IOException, RuntimeException);
- virtual void SAL_CALL closeInput( )
- throw(NotConnectedException, IOException, RuntimeException);
-
- // Methods XActiveDataSink
- virtual void SAL_CALL setInputStream( const Reference< XInputStream >& aStream )
- throw(RuntimeException);
- virtual Reference< XInputStream > SAL_CALL getInputStream()
- throw(RuntimeException);
-
- // Methods XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw();
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw();
- virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw();
-};
-
-OTextInputStream::OTextInputStream()
- : mSeqSource( READ_BYTE_COUNT ), mpBuffer( NULL ), mnBufferSize( 0 )
- , mnCharsInBuffer( 0 ), mbReachedEOF( sal_False )
-{
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- mbEncodingInitialized = false;
-}
-
-OTextInputStream::~OTextInputStream()
-{
- if( mbEncodingInitialized )
- {
- rtl_destroyUnicodeToTextContext( mConvText2Unicode, mContextText2Unicode );
- rtl_destroyUnicodeToTextConverter( mConvText2Unicode );
- }
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-void OTextInputStream::implResizeBuffer( void )
-{
- sal_Int32 mnNewBufferSize = mnBufferSize * 2;
- sal_Unicode* pNewBuffer = new sal_Unicode[ mnNewBufferSize ];
- memcpy( pNewBuffer, mpBuffer, mnCharsInBuffer * sizeof( sal_Unicode ) );
- mpBuffer = pNewBuffer;
- mnBufferSize = mnNewBufferSize;
-}
-
-
-//===========================================================================
-// XTextInputStream
-
-OUString OTextInputStream::readLine( )
- throw(IOException, RuntimeException)
-{
- static Sequence< sal_Unicode > aDummySeq;
- return implReadString( aDummySeq, sal_True, sal_True );
-}
-
-OUString OTextInputStream::readString( const Sequence< sal_Unicode >& Delimiters, sal_Bool bRemoveDelimiter )
- throw(IOException, RuntimeException)
-{
- return implReadString( Delimiters, bRemoveDelimiter, sal_False );
-}
-
-sal_Bool OTextInputStream::isEOF()
- throw(IOException, RuntimeException)
-{
- sal_Bool bRet = sal_False;
- if( mnCharsInBuffer == 0 && mbReachedEOF )
- bRet = sal_True;
- return bRet;
-}
-
-
-OUString OTextInputStream::implReadString( const Sequence< sal_Unicode >& Delimiters,
- sal_Bool bRemoveDelimiter, sal_Bool bFindLineEnd )
- throw(IOException, RuntimeException)
-{
- OUString aRetStr;
- if( !mbEncodingInitialized )
- {
- OUString aUtf8Str( RTL_CONSTASCII_USTRINGPARAM("utf8") );
- setEncoding( aUtf8Str );
- }
- if( !mbEncodingInitialized )
- return aRetStr;
-
- if( !mpBuffer )
- {
- mnBufferSize = INITIAL_UNICODE_BUFFER_CAPACITY;
- mpBuffer = new sal_Unicode[ mnBufferSize ];
- }
-
- // Only for bFindLineEnd
- sal_Unicode cLineEndChar1 = 0x0D;
- sal_Unicode cLineEndChar2 = 0x0A;
-
- sal_Int32 nBufferReadPos = 0;
- sal_Int32 nCopyLen = 0;
- sal_Bool bFound = sal_False;
- sal_Bool bFoundFirstLineEndChar = sal_False;
- sal_Unicode cFirstLineEndChar = 0;
- const sal_Unicode* pDelims = Delimiters.getConstArray();
- const sal_Int32 nDelimCount = Delimiters.getLength();
- while( !bFound )
- {
- // Still characters available?
- if( nBufferReadPos == mnCharsInBuffer )
- {
- // Already reached EOF? Then we can't read any more
- if( mbReachedEOF )
- break;
-
- // No, so read new characters
- if( !implReadNext() )
- break;
- }
-
- // Now there should be characters available
- // (otherwise the loop should have been breaked before)
- sal_Unicode c = mpBuffer[ nBufferReadPos++ ];
-
- if( bFindLineEnd )
- {
- if( bFoundFirstLineEndChar )
- {
- bFound = sal_True;
- nCopyLen = nBufferReadPos - 2;
- if( c == cLineEndChar1 || c == cLineEndChar2 )
- {
- // Same line end char -> new line break
- if( c == cFirstLineEndChar )
- {
- nBufferReadPos--;
- }
- }
- else
- {
- // No second line end char
- nBufferReadPos--;
- }
- }
- else if( c == cLineEndChar1 || c == cLineEndChar2 )
- {
- bFoundFirstLineEndChar = sal_True;
- cFirstLineEndChar = c;
- }
- }
- else
- {
- for( sal_Int32 i = 0 ; i < nDelimCount ; i++ )
- {
- if( c == pDelims[ i ] )
- {
- bFound = sal_True;
- nCopyLen = nBufferReadPos;
- if( bRemoveDelimiter )
- nCopyLen--;
- }
- }
- }
- }
-
- // Nothing found? Return all
- if( !nCopyLen && !bFound && mbReachedEOF )
- nCopyLen = nBufferReadPos;
-
- // Create string
- if( nCopyLen )
- aRetStr = OUString( mpBuffer, nCopyLen );
-
- // Copy rest of buffer
- memmove( mpBuffer, mpBuffer + nBufferReadPos,
- (mnCharsInBuffer - nBufferReadPos) * sizeof( sal_Unicode ) );
- mnCharsInBuffer -= nBufferReadPos;
-
- return aRetStr;
-}
-
-
-sal_Int32 OTextInputStream::implReadNext()
- throw(IOException, RuntimeException)
-{
- sal_Int32 nFreeBufferSize = mnBufferSize - mnCharsInBuffer;
- if( nFreeBufferSize < READ_BYTE_COUNT )
- implResizeBuffer();
- nFreeBufferSize = mnBufferSize - mnCharsInBuffer;
-
- try
- {
- sal_Int32 nBytesToRead = READ_BYTE_COUNT;
- sal_Int32 nRead = mxStream->readSomeBytes( mSeqSource, nBytesToRead );
- sal_Int32 nTotalRead = nRead;
- if( nRead < nBytesToRead )
- mbReachedEOF = sal_True;
-
- // Try to convert
- sal_uInt32 uiInfo;
- sal_Size nSrcCvtBytes = 0;
- sal_Size nTargetCount = 0;
- sal_Size nSourceCount = 0;
- while( sal_True )
- {
- const sal_Int8 *pbSource = mSeqSource.getConstArray();
-
- // All invalid characters are transformed to the unicode undefined char
- nTargetCount += rtl_convertTextToUnicode(
- mConvText2Unicode,
- mContextText2Unicode,
- (const sal_Char*) &( pbSource[nSourceCount] ),
- nTotalRead - nSourceCount,
- mpBuffer + mnCharsInBuffer + nTargetCount,
- nFreeBufferSize - nTargetCount,
- RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT,
- &uiInfo,
- &nSrcCvtBytes );
- nSourceCount += nSrcCvtBytes;
-
- sal_Bool bCont = sal_False;
- if( uiInfo & RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOSMALL )
- {
- implResizeBuffer();
- bCont = sal_True;
- }
-
- if( uiInfo & RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL )
- {
- // read next byte
- static Sequence< sal_Int8 > aOneByteSeq( 1 );
- nRead = mxStream->readSomeBytes( aOneByteSeq, 1 );
- if( nRead == 0 )
- {
- mbReachedEOF = sal_True;
- break;
- }
-
- sal_Int32 nOldLen = mSeqSource.getLength();
- nTotalRead++;
- if( nTotalRead > nOldLen )
- {
- mSeqSource.realloc( nTotalRead );
- }
- mSeqSource.getArray()[ nOldLen ] = aOneByteSeq.getConstArray()[ 0 ];
- pbSource = mSeqSource.getConstArray();
- bCont = sal_True;
- }
-
- if( bCont )
- continue;
- break;
- }
-
- mnCharsInBuffer += nTargetCount;
- return nTargetCount;
- }
- catch( NotConnectedException& )
- {
- throw IOException();
- //throw IOException( L"OTextInputStream::implReadString failed" );
- }
- catch( BufferSizeExceededException& )
- {
- throw IOException();
- }
-}
-
-void OTextInputStream::setEncoding( const OUString& Encoding )
- throw(RuntimeException)
-{
- OString aOEncodingStr = OUStringToOString( Encoding, RTL_TEXTENCODING_ASCII_US );
- rtl_TextEncoding encoding = rtl_getTextEncodingFromMimeCharset( aOEncodingStr.getStr() );
- if( RTL_TEXTENCODING_DONTKNOW == encoding )
- return;
-
- mbEncodingInitialized = true;
- mConvText2Unicode = rtl_createTextToUnicodeConverter( encoding );
- mContextText2Unicode = rtl_createTextToUnicodeContext( mConvText2Unicode );
- mEncoding = Encoding;
-}
-
-//===========================================================================
-// XInputStream
-
-sal_Int32 OTextInputStream::readBytes( Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
-{
- return mxStream->readBytes( aData, nBytesToRead );
-}
-
-sal_Int32 OTextInputStream::readSomeBytes( Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
-{
- return mxStream->readSomeBytes( aData, nMaxBytesToRead );
-}
-
-void OTextInputStream::skipBytes( sal_Int32 nBytesToSkip )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
-{
- mxStream->skipBytes( nBytesToSkip );
-}
-
-sal_Int32 OTextInputStream::available( )
- throw(NotConnectedException, IOException, RuntimeException)
-{
- return mxStream->available();
-}
-
-void OTextInputStream::closeInput( )
- throw(NotConnectedException, IOException, RuntimeException)
-{
- mxStream->closeInput();
-}
-
-
-//===========================================================================
-// XActiveDataSink
-
-void OTextInputStream::setInputStream( const Reference< XInputStream >& aStream )
- throw(RuntimeException)
-{
- mxStream = aStream;
-}
-
-Reference< XInputStream > OTextInputStream::getInputStream()
- throw(RuntimeException)
-{
- return mxStream;
-}
-
-
-Reference< XInterface > SAL_CALL TextInputStream_CreateInstance( const Reference< XComponentContext > &)
-{
- return Reference < XInterface >( ( OWeakObject * ) new OTextInputStream() );
-}
-
-OUString TextInputStream_getImplementationName()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-}
-
-Sequence< OUString > TextInputStream_getSupportedServiceNames()
-{
- Sequence< OUString > seqNames(1);
- seqNames.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICE_NAME ) );
- return seqNames;
-}
-
-OUString OTextInputStream::getImplementationName() throw()
-{
- return TextInputStream_getImplementationName();
-}
-
-sal_Bool OTextInputStream::supportsService(const OUString& ServiceName) throw()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-Sequence< OUString > OTextInputStream::getSupportedServiceNames(void) throw()
-{
- return TextInputStream_getSupportedServiceNames();
-}
-
-}
-
-using namespace io_TextInputStream;
-
-static struct ImplementationEntry g_entries[] =
-{
- {
- TextInputStream_CreateInstance, TextInputStream_getImplementationName ,
- TextInputStream_getSupportedServiceNames, createSingleComponentFactory ,
- &g_moduleCount.modCnt , 0
- },
- { 0, 0, 0, 0, 0, 0 }
-};
-
-extern "C"
-{
-sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
-{
- return g_moduleCount.canUnload( &g_moduleCount , pTime );
-}
-
-//==================================================================================================
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
-}
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/TextInputStream/makefile.mk b/io/source/TextInputStream/makefile.mk
deleted file mode 100644
index ea476c57c..000000000
--- a/io/source/TextInputStream/makefile.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=io
-TARGET = textinstream.uno
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-.IF "$(L10N_framework)"==""
-DLLPRE =
-
-SLOFILES= \
- $(SLO)$/TextInputStream.obj
-
-SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
-
-SHL1STDLIBS= \
- $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)
-
-SHL1DEPN=
-SHL1IMPLIB= i$(TARGET)
-SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1RPATH= URELIB
-
-DEF1NAME= $(SHL1TARGET)
-
-# --- Targets ------------------------------------------------------
-.ENDIF # L10N_framework
-
-.INCLUDE : target.mk
-
-ALLTAR : $(MISC)/textinstream.component
-
-$(MISC)/textinstream.component .ERRREMOVE : \
- $(SOLARENV)/bin/createcomponent.xslt textinstream.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt textinstream.component
diff --git a/io/source/TextInputStream/textinstream.component b/io/source/TextInputStream/textinstream.component
deleted file mode 100644
index 6ac7d2a98..000000000
--- a/io/source/TextInputStream/textinstream.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--**********************************************************************
-*
-* 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.
-*
-**********************************************************************-->
-
-<component loader="com.sun.star.loader.SharedLibrary"
- xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.io.TextInputStream">
- <service name="com.sun.star.io.TextInputStream"/>
- </implementation>
-</component>
diff --git a/io/source/TextOutputStream/TextOutputStream.cxx b/io/source/TextOutputStream/TextOutputStream.cxx
deleted file mode 100644
index 6ea4d3f5b..000000000
--- a/io/source/TextOutputStream/TextOutputStream.cxx
+++ /dev/null
@@ -1,316 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-
-#include <osl/mutex.hxx>
-#include <osl/diagnose.h>
-
-#include <uno/mapping.hxx>
-
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase3.hxx>
-#include <cppuhelper/implementationentry.hxx>
-
-#include <rtl/textenc.h>
-#include <rtl/tencinfo.h>
-#include <rtl/unload.h>
-
-#include <com/sun/star/io/XTextOutputStream.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-
-#define IMPLEMENTATION_NAME "com.sun.star.comp.io.TextOutputStream"
-#define SERVICE_NAME "com.sun.star.io.TextOutputStream"
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::registry;
-
-namespace io_TextOutputStream
-{
- rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
-//===========================================================================
-// Implementation XTextOutputStream
-
-typedef WeakImplHelper3< XTextOutputStream, XActiveDataSource, XServiceInfo > TextOutputStreamHelper;
-class OCommandEnvironment;
-
-class OTextOutputStream : public TextOutputStreamHelper
-{
- Reference< XOutputStream > mxStream;
-
- // Encoding
- OUString mEncoding;
- sal_Bool mbEncodingInitialized;
- rtl_UnicodeToTextConverter mConvUnicode2Text;
- rtl_UnicodeToTextContext mContextUnicode2Text;
-
- Sequence<sal_Int8> implConvert( const OUString& rSource );
-
-public:
- OTextOutputStream();
- ~OTextOutputStream();
-
- // Methods XTextOutputStream
- virtual void SAL_CALL writeString( const OUString& aString )
- throw(IOException, RuntimeException);
- virtual void SAL_CALL setEncoding( const OUString& Encoding )
- throw(RuntimeException);
-
- // Methods XOutputStream
- virtual void SAL_CALL writeBytes( const Sequence< sal_Int8 >& aData )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException);
- virtual void SAL_CALL flush( )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException);
- virtual void SAL_CALL closeOutput( )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException);
-
- // Methods XActiveDataSource
- virtual void SAL_CALL setOutputStream( const Reference< XOutputStream >& aStream )
- throw(RuntimeException);
- virtual Reference< XOutputStream > SAL_CALL getOutputStream( )
- throw(RuntimeException);
-
- // Methods XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw();
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw();
- virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw();
-};
-
-OTextOutputStream::OTextOutputStream()
-{
- mbEncodingInitialized = false;
-}
-
-OTextOutputStream::~OTextOutputStream()
-{
- if( mbEncodingInitialized )
- {
- rtl_destroyUnicodeToTextContext( mConvUnicode2Text, mContextUnicode2Text );
- rtl_destroyUnicodeToTextConverter( mConvUnicode2Text );
- }
-}
-
-Sequence<sal_Int8> OTextOutputStream::implConvert( const OUString& rSource )
-{
- const sal_Unicode *puSource = rSource.getStr();
- sal_Int32 nSourceSize = rSource.getLength();
-
- sal_Size nTargetCount = 0;
- sal_Size nSourceCount = 0;
-
- sal_uInt32 uiInfo;
- sal_Size nSrcCvtChars;
-
- // take nSourceSize * 3 as preference
- // this is an upper boundary for converting to utf8,
- // which most often used as the target.
- sal_Int32 nSeqSize = nSourceSize * 3;
-
- Sequence<sal_Int8> seqText( nSeqSize );
- sal_Char *pTarget = (sal_Char *) seqText.getArray();
- while( sal_True )
- {
- nTargetCount += rtl_convertUnicodeToText(
- mConvUnicode2Text,
- mContextUnicode2Text,
- &( puSource[nSourceCount] ),
- nSourceSize - nSourceCount ,
- &( pTarget[nTargetCount] ),
- nSeqSize - nTargetCount,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_DEFAULT |
- RTL_UNICODETOTEXT_FLAGS_INVALID_DEFAULT ,
- &uiInfo,
- &nSrcCvtChars);
- nSourceCount += nSrcCvtChars;
-
- if( uiInfo & RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL )
- {
- nSeqSize *= 2;
- seqText.realloc( nSeqSize ); // double array size
- pTarget = (sal_Char*) seqText.getArray();
- continue;
- }
- break;
- }
-
- // reduce the size of the buffer (fast, no copy necessary)
- seqText.realloc( nTargetCount );
- return seqText;
-}
-
-
-//===========================================================================
-// XTextOutputStream
-
-void OTextOutputStream::writeString( const OUString& aString )
- throw(IOException, RuntimeException)
-{
- if( !mbEncodingInitialized )
- {
- OUString aUtf8Str( RTL_CONSTASCII_USTRINGPARAM("utf8") );
- setEncoding( aUtf8Str );
- }
- if( !mbEncodingInitialized )
- return;
-
- Sequence<sal_Int8> aByteSeq = implConvert( aString );
- mxStream->writeBytes( aByteSeq );
-}
-
-void OTextOutputStream::setEncoding( const OUString& Encoding )
- throw(RuntimeException)
-{
- OString aOEncodingStr = OUStringToOString( Encoding, RTL_TEXTENCODING_ASCII_US );
- rtl_TextEncoding encoding = rtl_getTextEncodingFromMimeCharset( aOEncodingStr.getStr() );
- if( RTL_TEXTENCODING_DONTKNOW == encoding )
- return;
-
- mbEncodingInitialized = true;
- mConvUnicode2Text = rtl_createUnicodeToTextConverter( encoding );
- mContextUnicode2Text = rtl_createUnicodeToTextContext( mConvUnicode2Text );
- mEncoding = Encoding;
-}
-
-//===========================================================================
-// XOutputStream
-void OTextOutputStream::writeBytes( const Sequence< sal_Int8 >& aData )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
-{
- mxStream->writeBytes( aData );
-}
-
-void OTextOutputStream::flush( )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
-{
- mxStream->flush();
-}
-
-void OTextOutputStream::closeOutput( )
- throw(NotConnectedException, BufferSizeExceededException, IOException, RuntimeException)
-{
- mxStream->closeOutput();
-}
-
-
-//===========================================================================
-// XActiveDataSource
-
-void OTextOutputStream::setOutputStream( const Reference< XOutputStream >& aStream )
- throw(RuntimeException)
-{
- mxStream = aStream;
-}
-
-Reference< XOutputStream > OTextOutputStream::getOutputStream()
- throw(RuntimeException)
-{
- return mxStream;
-}
-
-
-Reference< XInterface > SAL_CALL TextOutputStream_CreateInstance( const Reference< XComponentContext > &)
-{
- return Reference < XInterface >( ( OWeakObject * ) new OTextOutputStream() );
-}
-
-OUString TextOutputStream_getImplementationName() SAL_THROW( () )
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-}
-
-
-Sequence< OUString > TextOutputStream_getSupportedServiceNames()
-{
- Sequence< OUString > seqNames(1);
- seqNames.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICE_NAME ) );
- return seqNames;
-}
-
-OUString OTextOutputStream::getImplementationName() throw()
-{
- return TextOutputStream_getImplementationName();
-}
-
-sal_Bool OTextOutputStream::supportsService(const OUString& ServiceName) throw()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-Sequence< OUString > OTextOutputStream::getSupportedServiceNames(void) throw()
-{
- return TextOutputStream_getSupportedServiceNames();
-}
-
-
-}
-
-using namespace io_TextOutputStream;
-
-static struct ImplementationEntry g_entries[] =
-{
- {
- TextOutputStream_CreateInstance, TextOutputStream_getImplementationName ,
- TextOutputStream_getSupportedServiceNames, createSingleComponentFactory ,
- &g_moduleCount.modCnt , 0
- },
- { 0, 0, 0, 0, 0, 0 }
-};
-
-extern "C"
-{
-sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
-{
- return g_moduleCount.canUnload( &g_moduleCount , pTime );
-}
-
-//==================================================================================================
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
-}
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/TextOutputStream/makefile.mk b/io/source/TextOutputStream/makefile.mk
deleted file mode 100644
index 2c9d4eb2e..000000000
--- a/io/source/TextOutputStream/makefile.mk
+++ /dev/null
@@ -1,70 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=io
-TARGET = textoutstream.uno
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-.IF "$(L10N_framework)"==""
-DLLPRE =
-# ------------------------------------------------------------------
-
-SLOFILES= \
- $(SLO)$/TextOutputStream.obj
-
-SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
-
-SHL1STDLIBS= \
- $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)
-
-SHL1DEPN=
-SHL1IMPLIB= i$(TARGET)
-SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1RPATH= URELIB
-
-DEF1NAME= $(SHL1TARGET)
-
-# --- Targets ------------------------------------------------------
-.ENDIF # L10N_framework
-
-.INCLUDE : target.mk
-
-ALLTAR : $(MISC)/textoutstream.component
-
-$(MISC)/textoutstream.component .ERRREMOVE : \
- $(SOLARENV)/bin/createcomponent.xslt textoutstream.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt textoutstream.component
diff --git a/io/source/TextOutputStream/textoutstream.component b/io/source/TextOutputStream/textoutstream.component
deleted file mode 100644
index afbc50ab8..000000000
--- a/io/source/TextOutputStream/textoutstream.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--**********************************************************************
-*
-* 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.
-*
-**********************************************************************-->
-
-<component loader="com.sun.star.loader.SharedLibrary"
- xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.io.TextOutputStream">
- <service name="com.sun.star.io.TextOutputStream"/>
- </implementation>
-</component>
diff --git a/io/source/acceptor/acc_pipe.cxx b/io/source/acceptor/acc_pipe.cxx
deleted file mode 100644
index 8f9f4a794..000000000
--- a/io/source/acceptor/acc_pipe.cxx
+++ /dev/null
@@ -1,233 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include "osl/security.hxx"
-#include "acceptor.hxx"
-#include <com/sun/star/connection/ConnectionSetupException.hpp>
-
-#include <cppuhelper/implbase1.hxx>
-
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::connection;
-using namespace ::com::sun::star::io;
-
-
-namespace io_acceptor
-{
-
- typedef WeakImplHelper1< XConnection > MyPipeConnection;
-
- class PipeConnection :
- public MyPipeConnection
- {
- public:
- PipeConnection( const OUString &sConnectionDescription);
- ~PipeConnection();
-
- virtual sal_Int32 SAL_CALL read( Sequence< sal_Int8 >& aReadBytes, sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL write( const Sequence< sal_Int8 >& aData )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL flush( ) throw(
- ::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL close( )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getDescription( )
- throw(::com::sun::star::uno::RuntimeException);
- public:
- ::osl::StreamPipe m_pipe;
- oslInterlockedCount m_nStatus;
- OUString m_sDescription;
- };
-
-
-
- PipeConnection::PipeConnection( const OUString &sConnectionDescription) :
- m_nStatus( 0 ),
- m_sDescription( sConnectionDescription )
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
-
- // make it unique
- m_sDescription += OUString(RTL_CONSTASCII_USTRINGPARAM(",uniqueValue="));
- m_sDescription += OUString::valueOf(
- sal::static_int_cast<sal_Int64 >(
- reinterpret_cast< sal_IntPtr >(&m_pipe)),
- 10 );
- }
-
- PipeConnection::~PipeConnection()
- {
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
- }
-
- sal_Int32 PipeConnection::read( Sequence < sal_Int8 > & aReadBytes , sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( ! m_nStatus )
- {
- if( aReadBytes.getLength() < nBytesToRead )
- {
- aReadBytes.realloc( nBytesToRead );
- }
- sal_Int32 n = m_pipe.read( aReadBytes.getArray(), nBytesToRead );
- OSL_ASSERT( n >= 0 && n <= aReadBytes.getLength() );
- if( n < aReadBytes.getLength() )
- {
- aReadBytes.realloc( n );
- }
- return n;
- }
- else {
- throw IOException();
- }
- }
-
- void PipeConnection::write( const Sequence < sal_Int8 > &seq )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( ! m_nStatus )
- {
- if( m_pipe.write( seq.getConstArray() , seq.getLength() ) != seq.getLength() )
- {
- throw IOException();
- }
- }
- else {
- throw IOException();
- }
- }
-
- void PipeConnection::flush( )
- throw( ::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- }
-
- void PipeConnection::close()
- throw( ::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( 1 == osl_incrementInterlockedCount( (&m_nStatus) ) )
- {
- m_pipe.close();
- }
- }
-
- OUString PipeConnection::getDescription()
- throw(::com::sun::star::uno::RuntimeException)
- {
- return m_sDescription;
- }
-
- /***************
- * PipeAcceptor
- **************/
- PipeAcceptor::PipeAcceptor( const OUString &sPipeName , const OUString & sConnectionDescription) :
- m_sPipeName( sPipeName ),
- m_sConnectionDescription( sConnectionDescription ),
- m_bClosed( sal_False )
- {
- }
-
-
- void PipeAcceptor::init()
- {
- m_pipe = Pipe( m_sPipeName.pData , osl_Pipe_CREATE , osl::Security() );
- if( ! m_pipe.is() )
- {
- OUString error = OUString(RTL_CONSTASCII_USTRINGPARAM("io.acceptor: Couldn't setup pipe "));
- error += m_sPipeName;
- throw ConnectionSetupException( error, Reference< XInterface > () );
- }
- }
-
- Reference< XConnection > PipeAcceptor::accept( )
- {
- Pipe pipe;
- {
- MutexGuard guard( m_mutex );
- pipe = m_pipe;
- }
- if( ! pipe.is() )
- {
- OUString error = OUString(RTL_CONSTASCII_USTRINGPARAM("io.acceptor: pipe already closed"));
- error += m_sPipeName;
- throw ConnectionSetupException( error, Reference< XInterface > () );
- }
- PipeConnection *pConn = new PipeConnection( m_sConnectionDescription );
-
- oslPipeError status = pipe.accept( pConn->m_pipe );
-
- if( m_bClosed )
- {
- // stopAccepting was called !
- delete pConn;
- return Reference < XConnection >();
- }
- else if( osl_Pipe_E_None == status )
- {
- return Reference < XConnection > ( (XConnection * ) pConn );
- }
- else
- {
- OUString error = OUString(RTL_CONSTASCII_USTRINGPARAM("io.acceptor: Couldn't setup pipe "));
- error += m_sPipeName;
- throw ConnectionSetupException( error, Reference< XInterface > ());
- }
- }
-
- void PipeAcceptor::stopAccepting()
- {
- m_bClosed = sal_True;
- Pipe pipe;
- {
- MutexGuard guard( m_mutex );
- pipe = m_pipe;
- m_pipe.clear();
- }
- if( pipe.is() )
- {
- pipe.close();
- }
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/acceptor/acc_socket.cxx b/io/source/acceptor/acc_socket.cxx
deleted file mode 100644
index fc925b503..000000000
--- a/io/source/acceptor/acc_socket.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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include "acceptor.hxx"
-
-#include <boost/unordered_set.hpp>
-#include <algorithm>
-
-#include <rtl/ustrbuf.hxx>
-#include <com/sun/star/connection/XConnectionBroadcaster.hpp>
-#include <com/sun/star/connection/ConnectionSetupException.hpp>
-
-#include <cppuhelper/implbase2.hxx>
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::connection;
-
-
-namespace io_acceptor {
- template<class T>
- struct ReferenceHash
- {
- size_t operator () (const ::com::sun::star::uno::Reference<T> & ref) const
- {
- return (size_t)ref.get();
- }
- };
-
- template<class T>
- struct ReferenceEqual
- {
- sal_Bool operator () (const ::com::sun::star::uno::Reference<T> & op1,
- const ::com::sun::star::uno::Reference<T> & op2) const
- {
- return op1.get() == op2.get();
- }
- };
-
-
- typedef ::boost::unordered_set< ::com::sun::star::uno::Reference< ::com::sun::star::io::XStreamListener>,
- ReferenceHash< ::com::sun::star::io::XStreamListener>,
- ReferenceEqual< ::com::sun::star::io::XStreamListener> >
- XStreamListener_hash_set;
-
-
- class SocketConnection : public ::cppu::WeakImplHelper2<
- ::com::sun::star::connection::XConnection,
- ::com::sun::star::connection::XConnectionBroadcaster>
-
- {
- public:
- SocketConnection( const OUString & sConnectionDescription );
- ~SocketConnection();
-
- virtual sal_Int32 SAL_CALL read( ::com::sun::star::uno::Sequence< sal_Int8 >& aReadBytes,
- sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL write( const ::com::sun::star::uno::Sequence< sal_Int8 >& aData )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL flush( ) throw(
- ::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL close( )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getDescription( )
- throw(::com::sun::star::uno::RuntimeException);
-
- // XConnectionBroadcaster
- virtual void SAL_CALL addStreamListener(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStreamListener>& aListener)
- throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeStreamListener(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStreamListener>& aListener)
- throw(::com::sun::star::uno::RuntimeException);
-
- public:
- void completeConnectionString();
-
- ::osl::StreamSocket m_socket;
- ::osl::SocketAddr m_addr;
- oslInterlockedCount m_nStatus;
- ::rtl::OUString m_sDescription;
-
- ::osl::Mutex _mutex;
- sal_Bool _started;
- sal_Bool _closed;
- sal_Bool _error;
- XStreamListener_hash_set _listeners;
- };
-
- template<class T>
- void notifyListeners(SocketConnection * pCon, sal_Bool * notified, T t)
- {
- XStreamListener_hash_set listeners;
-
- {
- ::osl::MutexGuard guard(pCon->_mutex);
- if(!*notified)
- {
- *notified = sal_True;
- listeners = pCon->_listeners;
- }
- }
-
- ::std::for_each(listeners.begin(), listeners.end(), t);
- }
-
- static void callStarted(Reference<XStreamListener> xStreamListener)
- {
- xStreamListener->started();
- }
-
- struct callError {
- const Any & any;
-
- callError(const Any & any);
-
- void operator () (Reference<XStreamListener> xStreamListener);
- };
-
- callError::callError(const Any & aAny)
- : any(aAny)
- {
- }
-
- void callError::operator () (Reference<XStreamListener> xStreamListener)
- {
- xStreamListener->error(any);
- }
-
- static void callClosed(Reference<XStreamListener> xStreamListener)
- {
- xStreamListener->closed();
- }
-
-
- SocketConnection::SocketConnection( const OUString &sConnectionDescription) :
- m_nStatus( 0 ),
- m_sDescription( sConnectionDescription ),
- _started(sal_False),
- _closed(sal_False),
- _error(sal_False)
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- // make it unique
- m_sDescription += OUString( RTL_CONSTASCII_USTRINGPARAM( ",uniqueValue=" ) );
- m_sDescription += OUString::valueOf(
- sal::static_int_cast< sal_Int64 >(
- reinterpret_cast< sal_IntPtr >(&m_socket)),
- 10 );
- }
-
- SocketConnection::~SocketConnection()
- {
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
- }
-
- void SocketConnection::completeConnectionString()
- {
- OUStringBuffer buf( 256 );
- buf.appendAscii( ",peerPort=" );
- buf.append( (sal_Int32) m_socket.getPeerPort() );
- buf.appendAscii( ",peerHost=" );
- buf.append( m_socket.getPeerHost( ) );
-
- buf.appendAscii( ",localPort=" );
- buf.append( (sal_Int32) m_socket.getLocalPort() );
- buf.appendAscii( ",localHost=" );
- buf.append( m_socket.getLocalHost() );
-
- m_sDescription += buf.makeStringAndClear();
- }
-
- sal_Int32 SocketConnection::read( Sequence < sal_Int8 > & aReadBytes , sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( ! m_nStatus )
- {
- notifyListeners(this, &_started, callStarted);
-
- if( aReadBytes.getLength() != nBytesToRead )
- {
- aReadBytes.realloc( nBytesToRead );
- }
-
- sal_Int32 i = 0;
- i = m_socket.read( aReadBytes.getArray() , aReadBytes.getLength() );
-
- if(i != nBytesToRead)
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("acc_socket.cxx:SocketConnection::read: error - "));
- message += m_socket.getErrorAsString();
-
- IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
-
- Any any;
- any <<= ioException;
-
- notifyListeners(this, &_error, callError(any));
-
- throw ioException;
- }
-
- return i;
- }
- else
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("acc_socket.cxx:SocketConnection::read: error - connection already closed"));
-
- IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
-
- Any any;
- any <<= ioException;
-
- notifyListeners(this, &_error, callError(any));
-
- throw ioException;
- }
- }
-
- void SocketConnection::write( const Sequence < sal_Int8 > &seq )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( ! m_nStatus )
- {
- if( m_socket.write( seq.getConstArray() , seq.getLength() ) != seq.getLength() )
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("acc_socket.cxx:SocketConnection::write: error - "));
- message += m_socket.getErrorAsString();
-
- IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
-
- Any any;
- any <<= ioException;
-
- notifyListeners(this, &_error, callError(any));
-
- throw ioException;
- }
- }
- else
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("acc_socket.cxx:SocketConnection::write: error - connection already closed"));
-
- IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
-
- Any any;
- any <<= ioException;
-
- notifyListeners(this, &_error, callError(any));
-
- throw ioException;
- }
- }
-
- void SocketConnection::flush( )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
-
- }
-
- void SocketConnection::close()
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- // enshure close is called only once
- if( 1 == osl_incrementInterlockedCount( (&m_nStatus) ) )
- {
- m_socket.shutdown();
- notifyListeners(this, &_closed, callClosed);
- }
- }
-
- OUString SocketConnection::getDescription()
- throw( ::com::sun::star::uno::RuntimeException)
- {
- return m_sDescription;
- }
-
-
- // XConnectionBroadcaster
- void SAL_CALL SocketConnection::addStreamListener(const Reference<XStreamListener> & aListener) throw(RuntimeException)
- {
- MutexGuard guard(_mutex);
-
- _listeners.insert(aListener);
- }
-
- void SAL_CALL SocketConnection::removeStreamListener(const Reference<XStreamListener> & aListener) throw(RuntimeException)
- {
- MutexGuard guard(_mutex);
-
- _listeners.erase(aListener);
- }
-
- SocketAcceptor::SocketAcceptor( const OUString &sSocketName,
- sal_uInt16 nPort,
- sal_Bool bTcpNoDelay,
- const OUString &sConnectionDescription) :
- m_sSocketName( sSocketName ),
- m_sConnectionDescription( sConnectionDescription ),
- m_nPort( nPort ),
- m_bTcpNoDelay( bTcpNoDelay ),
- m_bClosed( sal_False )
- {
- }
-
-
- void SocketAcceptor::init()
- {
- if( ! m_addr.setPort( m_nPort ) )
- {
- OUStringBuffer message( 128 );
- message.appendAscii( "acc_socket.cxx:SocketAcceptor::init - error - invalid tcp/ip port " );
- message.append( (sal_Int32) m_nPort );
- throw ConnectionSetupException(
- message.makeStringAndClear() , Reference< XInterface> () );
- }
- if( ! m_addr.setHostname( m_sSocketName.pData ) )
- {
- OUStringBuffer message( 128 );
- message.appendAscii( "acc_socket.cxx:SocketAcceptor::init - error - invalid host " );
- message.append( m_sSocketName );
- throw ConnectionSetupException(
- message.makeStringAndClear(), Reference< XInterface > () );
- }
- m_socket.setOption( osl_Socket_OptionReuseAddr, 1);
-
- if(! m_socket.bind(m_addr) )
- {
- OUStringBuffer message( 128 );
- message.appendAscii( "acc_socket.cxx:SocketAcceptor::init - error - couldn't bind on " );
- message.append( m_sSocketName ).appendAscii( ":" ).append((sal_Int32)m_nPort);
- throw ConnectionSetupException(
- message.makeStringAndClear(),
- Reference<XInterface>());
- }
-
- if(! m_socket.listen() )
- {
- OUStringBuffer message( 128 );
- message.appendAscii( "acc_socket.cxx:SocketAcceptor::init - error - can't listen on " );
- message.append( m_sSocketName ).appendAscii( ":" ).append( (sal_Int32) m_nPort);
- throw ConnectionSetupException( message.makeStringAndClear(),Reference<XInterface>() );
- }
- }
-
- Reference< XConnection > SocketAcceptor::accept( )
- {
- SocketConnection *pConn = new SocketConnection( m_sConnectionDescription );
-
- if( m_socket.acceptConnection( pConn->m_socket )!= osl_Socket_Ok )
- {
- // stopAccepting was called
- delete pConn;
- return Reference < XConnection > ();
- }
- if( m_bClosed )
- {
- delete pConn;
- return Reference < XConnection > ();
- }
-
- pConn->completeConnectionString();
- if( m_bTcpNoDelay )
- {
- sal_Int32 nTcpNoDelay = sal_True;
- pConn->m_socket.setOption( osl_Socket_OptionTcpNoDelay , &nTcpNoDelay,
- sizeof( nTcpNoDelay ) , osl_Socket_LevelTcp );
- }
-
- return Reference < XConnection > ( (XConnection * ) pConn );
- }
-
- void SocketAcceptor::stopAccepting()
- {
- m_bClosed = sal_True;
- m_socket.close();
- }
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/acceptor/acceptor.component b/io/source/acceptor/acceptor.component
deleted file mode 100644
index 81e0399b2..000000000
--- a/io/source/acceptor/acceptor.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--**********************************************************************
-*
-* 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.
-*
-**********************************************************************-->
-
-<component loader="com.sun.star.loader.SharedLibrary"
- xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.io.Acceptor">
- <service name="com.sun.star.connection.Acceptor"/>
- </implementation>
-</component>
diff --git a/io/source/acceptor/acceptor.cxx b/io/source/acceptor/acceptor.cxx
deleted file mode 100644
index 8d1c1a69e..000000000
--- a/io/source/acceptor/acceptor.cxx
+++ /dev/null
@@ -1,364 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include <osl/mutex.hxx>
-
-#include <uno/mapping.hxx>
-
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implementationentry.hxx>
-#include "cppuhelper/unourl.hxx"
-#include "rtl/malformeduriexception.hxx"
-
-#include <com/sun/star/connection/XAcceptor.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include "acceptor.hxx"
-
-#define IMPLEMENTATION_NAME "com.sun.star.comp.io.Acceptor"
-#define SERVICE_NAME "com.sun.star.connection.Acceptor"
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-using namespace ::com::sun::star::connection;
-
-namespace io_acceptor
-{
- rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
-
- class OAcceptor : public WeakImplHelper2< XAcceptor, XServiceInfo >
- {
- public:
- OAcceptor(const Reference< XComponentContext > & xCtx);
- virtual ~OAcceptor();
- public:
- // Methods
- virtual Reference< XConnection > SAL_CALL accept( const OUString& sConnectionDescription )
- throw( AlreadyAcceptingException,
- ConnectionSetupException,
- IllegalArgumentException,
- RuntimeException);
- virtual void SAL_CALL stopAccepting( ) throw( RuntimeException);
-
- public: // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw();
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw();
- virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw();
-
- private:
- PipeAcceptor *m_pPipe;
- SocketAcceptor *m_pSocket;
- Mutex m_mutex;
- OUString m_sLastDescription;
- sal_Bool m_bInAccept;
-
- Reference< XMultiComponentFactory > _xSMgr;
- Reference< XComponentContext > _xCtx;
- Reference<XAcceptor> _xAcceptor;
- };
-
-
- OAcceptor::OAcceptor( const Reference< XComponentContext > & xCtx )
- : m_pPipe( 0 )
- , m_pSocket( 0 )
- , m_bInAccept( sal_False )
- , _xSMgr( xCtx->getServiceManager() )
- , _xCtx( xCtx )
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- }
-
- OAcceptor::~OAcceptor()
- {
- if( m_pPipe )
- {
- delete m_pPipe;
- }
- if( m_pSocket )
- {
- delete m_pSocket;
- }
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
- }
-
- struct BeingInAccept
- {
- BeingInAccept( sal_Bool *pFlag,const OUString & sConnectionDescription ) throw( AlreadyAcceptingException)
- : m_pFlag( pFlag )
- {
- if( *m_pFlag )
- {
- OUString sMessage( RTL_CONSTASCII_USTRINGPARAM( "AlreadyAcceptingException :" ) );
- sMessage += sConnectionDescription;
- throw AlreadyAcceptingException( sMessage , Reference< XInterface > () );
- }
- *m_pFlag = sal_True;
- }
- ~BeingInAccept()
- {
- *m_pFlag = sal_False;
- }
- sal_Bool *m_pFlag;
- };
-
- Reference< XConnection > OAcceptor::accept( const OUString &sConnectionDescription )
- throw( AlreadyAcceptingException,
- ConnectionSetupException,
- IllegalArgumentException,
- RuntimeException)
- {
- OSL_TRACE(
- "acceptor %s\n",
- OUStringToOString(
- sConnectionDescription, RTL_TEXTENCODING_ASCII_US).getStr());
- // if there is a thread alread accepting in this object, throw an exception.
- struct BeingInAccept guard( &m_bInAccept, sConnectionDescription );
-
- Reference< XConnection > r;
- if( m_sLastDescription.getLength() &&
- m_sLastDescription != sConnectionDescription )
- {
- // instantiate another acceptor for different ports
- OUString sMessage = OUString( RTL_CONSTASCII_USTRINGPARAM(
- "acceptor::accept called multiple times with different conncetion strings\n" ) );
- throw ConnectionSetupException( sMessage, Reference< XInterface > () );
- }
-
- if( ! m_sLastDescription.getLength() )
- {
- // setup the acceptor
- try
- {
- cppu::UnoUrlDescriptor aDesc(sConnectionDescription);
- if (aDesc.getName().equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM("pipe")))
- {
- rtl::OUString aName(
- aDesc.getParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "name"))));
-
- m_pPipe = new PipeAcceptor(aName, sConnectionDescription);
-
- try
- {
- m_pPipe->init();
- }
- catch( ... )
- {
- {
- MutexGuard g( m_mutex );
- delete m_pPipe;
- m_pPipe = 0;
- }
- throw;
- }
- }
- else if (aDesc.getName().equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM("socket")))
- {
- rtl::OUString aHost;
- if (aDesc.hasParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("host"))))
- aHost = aDesc.getParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("host")));
- else
- aHost = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "localhost"));
- sal_uInt16 nPort = static_cast< sal_uInt16 >(
- aDesc.getParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("port"))).
- toInt32());
- bool bTcpNoDelay
- = aDesc.getParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "tcpnodelay"))).toInt32() != 0;
-
- m_pSocket = new SocketAcceptor(
- aHost, nPort, bTcpNoDelay, sConnectionDescription);
-
- try
- {
- m_pSocket->init();
- }
- catch( ... )
- {
- {
- MutexGuard g( m_mutex );
- delete m_pSocket;
- m_pSocket = 0;
- }
- throw;
- }
- }
- else
- {
- OUString delegatee = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.connection.Acceptor."));
- delegatee += aDesc.getName();
-
- OSL_TRACE(
- "trying to get service %s\n",
- OUStringToOString(
- delegatee, RTL_TEXTENCODING_ASCII_US).getStr());
- _xAcceptor = Reference<XAcceptor>(
- _xSMgr->createInstanceWithContext(delegatee, _xCtx), UNO_QUERY);
-
- if(!_xAcceptor.is())
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("Acceptor: unknown delegatee "));
- message += delegatee;
-
- throw ConnectionSetupException(message, Reference<XInterface>());
- }
- }
- }
- catch (rtl::MalformedUriException & rEx)
- {
- throw IllegalArgumentException(
- rEx.getMessage(),
- Reference< XInterface > (),
- 0 );
- }
- m_sLastDescription = sConnectionDescription;
- }
-
- if( m_pPipe )
- {
- r = m_pPipe->accept();
- }
- else if( m_pSocket )
- {
- r = m_pSocket->accept();
- }
- else
- {
- r = _xAcceptor->accept(sConnectionDescription);
- }
-
- return r;
- }
-
- void SAL_CALL OAcceptor::stopAccepting( ) throw( RuntimeException)
- {
- MutexGuard guard( m_mutex );
-
- if( m_pPipe )
- {
- m_pPipe->stopAccepting();
- }
- else if ( m_pSocket )
- {
- m_pSocket->stopAccepting();
- }
- else if( _xAcceptor.is() )
- {
- _xAcceptor->stopAccepting();
- }
-
- }
-
- OUString acceptor_getImplementationName()
- {
- return OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
- }
-
- Reference< XInterface > SAL_CALL acceptor_CreateInstance( const Reference< XComponentContext > & xCtx)
- {
- return Reference < XInterface >( ( OWeakObject * ) new OAcceptor(xCtx) );
- }
-
- Sequence< OUString > acceptor_getSupportedServiceNames()
- {
- Sequence< OUString > seqNames(1);
- seqNames.getArray()[0] = OUString(RTL_CONSTASCII_USTRINGPARAM(SERVICE_NAME));
- return seqNames;
- }
-
- OUString OAcceptor::getImplementationName() throw()
- {
- return acceptor_getImplementationName();
- }
-
- sal_Bool OAcceptor::supportsService(const OUString& ServiceName) throw()
- {
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
- }
-
- Sequence< OUString > OAcceptor::getSupportedServiceNames(void) throw()
- {
- return acceptor_getSupportedServiceNames();
- }
-
-
-}
-
-using namespace io_acceptor;
-
-static struct ImplementationEntry g_entries[] =
-{
- {
- acceptor_CreateInstance, acceptor_getImplementationName ,
- acceptor_getSupportedServiceNames, createSingleComponentFactory ,
- &g_moduleCount.modCnt , 0
- },
- { 0, 0, 0, 0, 0, 0 }
-};
-
-extern "C"
-{
-
-sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
-{
- return g_moduleCount.canUnload( &g_moduleCount , pTime );
-}
-
-//==================================================================================================
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
-}
-}
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/acceptor/acceptor.hxx b/io/source/acceptor/acceptor.hxx
deleted file mode 100644
index ff031028e..000000000
--- a/io/source/acceptor/acceptor.hxx
+++ /dev/null
@@ -1,80 +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 <osl/pipe.hxx>
-#include <osl/socket.hxx>
-#include <rtl/unload.h>
-
-#include <com/sun/star/connection/XConnection.hpp>
-
-namespace io_acceptor {
-
- extern rtl_StandardModuleCount g_moduleCount;
-
- class PipeAcceptor
- {
- public:
- PipeAcceptor( const ::rtl::OUString &sPipeName , const ::rtl::OUString &sConnectionDescription );
-
- void init();
- ::com::sun::star::uno::Reference < ::com::sun::star::connection::XConnection > accept( );
-
- void stopAccepting();
-
- ::osl::Mutex m_mutex;
- ::osl::Pipe m_pipe;
- ::rtl::OUString m_sPipeName;
- ::rtl::OUString m_sConnectionDescription;
- sal_Bool m_bClosed;
- };
-
- class SocketAcceptor
- {
- public:
- SocketAcceptor( const ::rtl::OUString & sSocketName ,
- sal_uInt16 nPort,
- sal_Bool bTcpNoDelay,
- const ::rtl::OUString &sConnectionDescription );
-
- void init();
- ::com::sun::star::uno::Reference < ::com::sun::star::connection::XConnection > accept();
-
- void stopAccepting();
-
- ::osl::SocketAddr m_addr;
- ::osl::AcceptorSocket m_socket;
- ::rtl::OUString m_sSocketName;
- ::rtl::OUString m_sConnectionDescription;
- sal_uInt16 m_nPort;
- sal_Bool m_bTcpNoDelay;
- sal_Bool m_bClosed;
- };
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/acceptor/acceptor.xml b/io/source/acceptor/acceptor.xml
deleted file mode 100644
index 920b37ece..000000000
--- a/io/source/acceptor/acceptor.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
- <module-name> acceptor.uno </module-name>
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.Acceptor </name>
- <description>
- This component allows
- to accept an connect-attempt from a different process.
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.connection.Acceptor </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.connection.XAcceptor </type>
- <type> com.sun.star.connection.XConnectionBroadcaster </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
- <project-build-dependency> cppuhelper </project-build-dependency>
- <project-build-dependency> cppu </project-build-dependency>
- <project-build-dependency> sal </project-build-dependency>
- <runtime-module-dependency> cppuhelper </runtime-module-dependency>
- <runtime-module-dependency> cppu2 </runtime-module-dependency>
- <runtime-module-dependency> sal2 </runtime-module-dependency>
-</module-description>
diff --git a/io/source/acceptor/makefile.mk b/io/source/acceptor/makefile.mk
deleted file mode 100644
index bbc7ac6d3..000000000
--- a/io/source/acceptor/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=io
-TARGET = acceptor.uno
-ENABLE_EXCEPTIONS=TRUE
-NO_BSYMBOLIC=TRUE
-COMP1TYPELIST = acceptor
-COMPRDB=$(SOLARBINDIR)$/udkapi.rdb
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-.IF "$(L10N_framework)"==""
-DLLPRE =
-# ------------------------------------------------------------------
-
-UNOUCRDEP=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCRRDB=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCROUT=$(OUT)$/inc$/acceptor
-INCPRE+= $(UNOUCROUT)
-
-
-SLOFILES= \
- $(SLO)$/acceptor.obj \
- $(SLO)$/acc_pipe.obj \
- $(SLO)$/acc_socket.obj
-
-SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
-SHL1RPATH=URELIB
-
-SHL1STDLIBS= \
- $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)
-
-SHL1DEPN=
-SHL1IMPLIB= i$(TARGET)
-SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME= $(SHL1TARGET)
-
-# --- Targets ------------------------------------------------------
-.ENDIF # L10N_framework
-
-.INCLUDE : target.mk
-
-ALLTAR : $(MISC)/acceptor.component
-
-$(MISC)/acceptor.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- acceptor.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt acceptor.component
diff --git a/io/source/connector/connector.component b/io/source/connector/connector.component
deleted file mode 100644
index 95fa72aa5..000000000
--- a/io/source/connector/connector.component
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--**********************************************************************
-*
-* 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.
-*
-**********************************************************************-->
-
-<component loader="com.sun.star.loader.SharedLibrary"
- xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.io.Connector">
- <service name="com.sun.star.connection.Connector"/>
- </implementation>
-</component>
diff --git a/io/source/connector/connector.cxx b/io/source/connector/connector.cxx
deleted file mode 100644
index 4d86512bb..000000000
--- a/io/source/connector/connector.cxx
+++ /dev/null
@@ -1,276 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include <osl/mutex.hxx>
-#include "osl/security.hxx"
-
-#include <uno/mapping.hxx>
-
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implementationentry.hxx>
-#include "cppuhelper/unourl.hxx"
-#include "rtl/malformeduriexception.hxx"
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-#include <com/sun/star/connection/XConnector.hpp>
-
-#include "connector.hxx"
-
-#define IMPLEMENTATION_NAME "com.sun.star.comp.io.Connector"
-#define SERVICE_NAME "com.sun.star.connection.Connector"
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-using namespace ::com::sun::star::connection;
-
-namespace stoc_connector
-{
- rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
-
- class OConnector : public WeakImplHelper2< XConnector, XServiceInfo >
- {
- Reference< XMultiComponentFactory > _xSMgr;
- Reference< XComponentContext > _xCtx;
- public:
- OConnector(const Reference< XComponentContext > &xCtx);
- ~OConnector();
- // Methods
- virtual Reference< XConnection > SAL_CALL connect(
- const OUString& sConnectionDescription )
- throw( NoConnectException, ConnectionSetupException, RuntimeException);
-
- public: // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw();
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw();
- virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw();
- };
-
- OConnector::OConnector(const Reference< XComponentContext > &xCtx)
- : _xSMgr( xCtx->getServiceManager() )
- , _xCtx( xCtx )
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- }
-
- OConnector::~OConnector()
- {
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
- }
-
- Reference< XConnection > SAL_CALL OConnector::connect( const OUString& sConnectionDescription )
- throw( NoConnectException, ConnectionSetupException, RuntimeException)
- {
- OSL_TRACE(
- "connector %s\n",
- OUStringToOString(
- sConnectionDescription, RTL_TEXTENCODING_ASCII_US).getStr());
-
- // split string into tokens
- try
- {
- cppu::UnoUrlDescriptor aDesc(sConnectionDescription);
-
- Reference< XConnection > r;
- if (aDesc.getName().equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(
- "pipe")))
- {
- rtl::OUString aName(
- aDesc.getParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("name"))));
-
- PipeConnection *pConn = new PipeConnection( sConnectionDescription );
-
- if( pConn->m_pipe.create( aName.pData, osl_Pipe_OPEN, osl::Security() ) )
- {
- r = Reference < XConnection > ( (XConnection * ) pConn );
- }
- else
- {
- OUString sMessage = OUString(RTL_CONSTASCII_USTRINGPARAM("Connector : couldn't connect to pipe "));
- sMessage += aName;
- sMessage += OUString(RTL_CONSTASCII_USTRINGPARAM("("));
- sMessage += OUString::valueOf( (sal_Int32 ) pConn->m_pipe.getError() );
- sMessage += OUString(RTL_CONSTASCII_USTRINGPARAM(")"));
- delete pConn;
- throw NoConnectException( sMessage ,Reference< XInterface > () );
- }
- }
- else if (aDesc.getName().equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(
- "socket")))
- {
- rtl::OUString aHost;
- if (aDesc.hasParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("host"))))
- aHost = aDesc.getParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("host")));
- else
- aHost = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "localhost"));
- sal_uInt16 nPort = static_cast< sal_uInt16 >(
- aDesc.getParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("port"))).
- toInt32());
- bool bTcpNoDelay
- = aDesc.getParameter(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "tcpnodelay"))).toInt32() != 0;
-
- SocketConnection *pConn = new SocketConnection( sConnectionDescription);
-
- SocketAddr AddrTarget( aHost.pData, nPort );
- if(pConn->m_socket.connect(AddrTarget) != osl_Socket_Ok)
- {
- OUString sMessage = OUString(RTL_CONSTASCII_USTRINGPARAM("Connector : couldn't connect to socket ("));
- OUString sError = pConn->m_socket.getErrorAsString();
- sMessage += sError;
- sMessage += OUString(RTL_CONSTASCII_USTRINGPARAM(")"));
- delete pConn;
- throw NoConnectException( sMessage, Reference < XInterface > () );
- }
- if( bTcpNoDelay )
- {
- sal_Int32 nTcpNoDelay = sal_True;
- pConn->m_socket.setOption( osl_Socket_OptionTcpNoDelay , &nTcpNoDelay,
- sizeof( nTcpNoDelay ) , osl_Socket_LevelTcp );
- }
- pConn->completeConnectionString();
- r = Reference< XConnection > ( (XConnection * ) pConn );
- }
- else
- {
- OUString delegatee = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.connection.Connector."));
- delegatee += aDesc.getName();
-
- OSL_TRACE(
- "connector: trying to get service %s\n",
- OUStringToOString(
- delegatee, RTL_TEXTENCODING_ASCII_US).getStr());
- Reference<XConnector> xConnector(
- _xSMgr->createInstanceWithContext(delegatee, _xCtx), UNO_QUERY );
-
- if(!xConnector.is())
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("Connector: unknown delegatee "));
- message += delegatee;
-
- throw ConnectionSetupException(message, Reference<XInterface>());
- }
-
- sal_Int32 index = sConnectionDescription.indexOf((sal_Unicode) ',');
-
- r = xConnector->connect(sConnectionDescription.copy(index + 1).trim());
- }
- return r;
- }
- catch (rtl::MalformedUriException & rEx)
- {
- throw ConnectionSetupException(rEx.getMessage(),
- Reference< XInterface > ());
- }
- }
-
- Sequence< OUString > connector_getSupportedServiceNames()
- {
- Sequence< OUString > seqNames(1);
- seqNames.getArray()[0] = OUString(RTL_CONSTASCII_USTRINGPARAM(SERVICE_NAME));
- return seqNames;
- }
-
- OUString connector_getImplementationName()
- {
- return OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
- }
-
- OUString OConnector::getImplementationName() throw()
- {
- return connector_getImplementationName();
- }
-
- sal_Bool OConnector::supportsService(const OUString& ServiceName) throw()
- {
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
- }
-
- Sequence< OUString > OConnector::getSupportedServiceNames(void) throw()
- {
- return connector_getSupportedServiceNames();
- }
-
- Reference< XInterface > SAL_CALL connector_CreateInstance( const Reference< XComponentContext > & xCtx)
- {
- return Reference < XInterface >( ( OWeakObject * ) new OConnector(xCtx) );
- }
-
-
-}
-using namespace stoc_connector;
-
-static struct ImplementationEntry g_entries[] =
-{
- {
- connector_CreateInstance, connector_getImplementationName ,
- connector_getSupportedServiceNames, createSingleComponentFactory ,
- &g_moduleCount.modCnt , 0
- },
- { 0, 0, 0, 0, 0, 0 }
-};
-
-extern "C"
-{
-
-sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
-{
- return g_moduleCount.canUnload( &g_moduleCount , pTime );
-}
-
-//==================================================================================================
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
-}
-
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/connector/connector.hxx b/io/source/connector/connector.hxx
deleted file mode 100644
index 3ec7368aa..000000000
--- a/io/source/connector/connector.hxx
+++ /dev/null
@@ -1,146 +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 <rtl/unload.h>
-
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase2.hxx>
-
-#include <com/sun/star/connection/XConnection.hpp>
-#include <com/sun/star/connection/XConnectionBroadcaster.hpp>
-
-#include <boost/unordered_set.hpp>
-# include <osl/socket.hxx>
-# include <osl/pipe.hxx>
-
-namespace stoc_connector
-{
- extern rtl_StandardModuleCount g_moduleCount;
-
- template<class T>
- struct ReferenceHash
- {
- size_t operator () (const ::com::sun::star::uno::Reference<T> & ref) const
- {
- return (size_t)ref.get();
- }
- };
-
- template<class T>
- struct ReferenceEqual
- {
- sal_Bool operator () (const ::com::sun::star::uno::Reference<T> & op1,
- const ::com::sun::star::uno::Reference<T> & op2) const
- {
- return op1.get() == op2.get();
- }
- };
-
- typedef ::boost::unordered_set< ::com::sun::star::uno::Reference< ::com::sun::star::io::XStreamListener>,
- ReferenceHash< ::com::sun::star::io::XStreamListener>,
- ReferenceEqual< ::com::sun::star::io::XStreamListener> >
- XStreamListener_hash_set;
-
- class PipeConnection :
- public ::cppu::WeakImplHelper1< ::com::sun::star::connection::XConnection >
-
- {
- public:
- PipeConnection( const ::rtl::OUString &sConnectionDescription );
- virtual ~PipeConnection();
-
- virtual sal_Int32 SAL_CALL read( ::com::sun::star::uno::Sequence< sal_Int8 >& aReadBytes,
- sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL write( const ::com::sun::star::uno::Sequence< sal_Int8 >& aData )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL flush( ) throw(
- ::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL close( )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getDescription( )
- throw(::com::sun::star::uno::RuntimeException);
- public:
- ::osl::StreamPipe m_pipe;
- oslInterlockedCount m_nStatus;
- ::rtl::OUString m_sDescription;
- };
-
- class SocketConnection :
- public ::cppu::WeakImplHelper2< ::com::sun::star::connection::XConnection, ::com::sun::star::connection::XConnectionBroadcaster >
-
- {
- public:
- SocketConnection( const ::rtl::OUString & sConnectionDescription );
- virtual ~SocketConnection();
-
- virtual sal_Int32 SAL_CALL read( ::com::sun::star::uno::Sequence< sal_Int8 >& aReadBytes,
- sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL write( const ::com::sun::star::uno::Sequence< sal_Int8 >& aData )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL flush( ) throw(
- ::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL close( )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getDescription( )
- throw(::com::sun::star::uno::RuntimeException);
-
-
- // XConnectionBroadcaster
- virtual void SAL_CALL addStreamListener(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStreamListener>& aListener)
- throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeStreamListener(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStreamListener>& aListener)
- throw(::com::sun::star::uno::RuntimeException);
-
- public:
- void completeConnectionString();
-
- ::osl::ConnectorSocket m_socket;
- ::osl::SocketAddr m_addr;
- oslInterlockedCount m_nStatus;
- ::rtl::OUString m_sDescription;
-
- ::osl::Mutex _mutex;
- sal_Bool _started;
- sal_Bool _closed;
- sal_Bool _error;
-
- XStreamListener_hash_set _listeners;
- };
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/connector/connectr.xml b/io/source/connector/connectr.xml
deleted file mode 100644
index 5f324f7b9..000000000
--- a/io/source/connector/connectr.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
- <module-name> connector.uno </module-name>
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.Connector </name>
- <description>
- This component allows
- to establish a connection to another process.
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.connection.Connector </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.connection.XConnector </type>
- <type> com.sun.star.connection.XConnectionBroadcaster </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
- <project-build-dependency> cppuhelper </project-build-dependency>
- <project-build-dependency> cppu </project-build-dependency>
- <project-build-dependency> sal </project-build-dependency>
- <runtime-module-dependency> cppuhelper2 </runtime-module-dependency>
- <runtime-module-dependency> cppu2 </runtime-module-dependency>
- <runtime-module-dependency> sal2 </runtime-module-dependency>
-</module-description>
diff --git a/io/source/connector/ctr_pipe.cxx b/io/source/connector/ctr_pipe.cxx
deleted file mode 100644
index 8a347a7a7..000000000
--- a/io/source/connector/ctr_pipe.cxx
+++ /dev/null
@@ -1,120 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-#include "connector.hxx"
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::connection;
-
-
-namespace stoc_connector {
-
- PipeConnection::PipeConnection( const OUString & sConnectionDescription ) :
- m_nStatus( 0 ),
- m_sDescription( sConnectionDescription )
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- // make it unique
- m_sDescription += OUString(RTL_CONSTASCII_USTRINGPARAM(",uniqueValue="));
- m_sDescription += OUString::valueOf(
- sal::static_int_cast< sal_Int64 >(
- reinterpret_cast< sal_IntPtr >(&m_pipe)),
- 10 );
- }
-
- PipeConnection::~PipeConnection()
- {
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
- }
-
- sal_Int32 PipeConnection::read( Sequence < sal_Int8 > & aReadBytes , sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( ! m_nStatus )
- {
- if( aReadBytes.getLength() != nBytesToRead )
- {
- aReadBytes.realloc( nBytesToRead );
- }
- return m_pipe.read( aReadBytes.getArray() , aReadBytes.getLength() );
- }
- else {
- throw IOException();
- }
- }
-
- void PipeConnection::write( const Sequence < sal_Int8 > &seq )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( ! m_nStatus )
- {
- if( m_pipe.write( seq.getConstArray() , seq.getLength() ) != seq.getLength() )
- {
- throw IOException();
- }
- }
- else {
- throw IOException();
- }
- }
-
- void PipeConnection::flush( )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
-
- }
-
- void PipeConnection::close()
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- // ensure that close is called only once
- if(1 == osl_incrementInterlockedCount( (&m_nStatus) ) )
- {
- m_pipe.close();
- }
- }
-
- OUString PipeConnection::getDescription()
- throw( ::com::sun::star::uno::RuntimeException)
- {
- return m_sDescription;
- }
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/connector/ctr_socket.cxx b/io/source/connector/ctr_socket.cxx
deleted file mode 100644
index 8d802eb92..000000000
--- a/io/source/connector/ctr_socket.cxx
+++ /dev/null
@@ -1,257 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-#include "connector.hxx"
-#include <rtl/ustrbuf.hxx>
-#include <algorithm>
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::connection;
-
-
-namespace stoc_connector {
- template<class T>
- void notifyListeners(SocketConnection * pCon, sal_Bool * notified, T t)
- {
- XStreamListener_hash_set listeners;
-
- {
- ::osl::MutexGuard guard(pCon->_mutex);
- if(!*notified)
- {
- *notified = sal_True;
- listeners = pCon->_listeners;
- }
- }
-
- ::std::for_each(listeners.begin(), listeners.end(), t);
- }
-
-
- static void callStarted(Reference<XStreamListener> xStreamListener)
- {
- xStreamListener->started();
- }
-
- struct callError {
- const Any & any;
-
- callError(const Any & any);
-
- void operator () (Reference<XStreamListener> xStreamListener);
- };
-
- callError::callError(const Any & aAny)
- : any(aAny)
- {
- }
-
- void callError::operator () (Reference<XStreamListener> xStreamListener)
- {
- xStreamListener->error(any);
- }
-
- static void callClosed(Reference<XStreamListener> xStreamListener)
- {
- xStreamListener->closed();
- }
-
-
- SocketConnection::SocketConnection( const OUString &sConnectionDescription ) :
- m_nStatus( 0 ),
- m_sDescription( sConnectionDescription ),
- _started(sal_False),
- _closed(sal_False),
- _error(sal_False)
- {
- // make it unique
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- m_sDescription += OUString( RTL_CONSTASCII_USTRINGPARAM( ",uniqueValue=" ) );
- m_sDescription += OUString::valueOf(
- sal::static_int_cast< sal_Int64 >(
- reinterpret_cast< sal_IntPtr >(&m_socket)),
- 10 );
- }
-
- SocketConnection::~SocketConnection()
- {
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
- }
-
- void SocketConnection::completeConnectionString()
- {
- sal_Int32 nPort;
-
- nPort = m_socket.getPeerPort();
-
- OUStringBuffer buf( 256 );
- buf.appendAscii( ",peerPort=" );
- buf.append( (sal_Int32) nPort );
- buf.appendAscii( ",peerHost=" );
- buf.append( m_socket.getPeerHost() );
-
- buf.appendAscii( ",localPort=" );
- buf.append( (sal_Int32) nPort );
- buf.appendAscii( ",localHost=" );
- buf.append( m_socket.getLocalHost( ) );
-
- m_sDescription += buf.makeStringAndClear();
- }
-
- sal_Int32 SocketConnection::read( Sequence < sal_Int8 > & aReadBytes , sal_Int32 nBytesToRead )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( ! m_nStatus )
- {
- notifyListeners(this, &_started, callStarted);
-
- if( aReadBytes.getLength() != nBytesToRead )
- {
- aReadBytes.realloc( nBytesToRead );
- }
- sal_Int32 i = m_socket.read( aReadBytes.getArray() , aReadBytes.getLength() );
-
- if(i != nBytesToRead && m_socket.getError() != osl_Socket_E_None)
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("ctr_socket.cxx:SocketConnection::read: error - "));
- message += m_socket.getErrorAsString();
-
- IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
-
- Any any;
- any <<= ioException;
-
- notifyListeners(this, &_error, callError(any));
-
- throw ioException;
- }
-
- return i;
- }
- else
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("ctr_socket.cxx:SocketConnection::read: error - connection already closed"));
-
- IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
-
- Any any;
- any <<= ioException;
-
- notifyListeners(this, &_error, callError(any));
-
- throw ioException;
- }
- }
-
- void SocketConnection::write( const Sequence < sal_Int8 > &seq )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- if( ! m_nStatus )
- {
- if( m_socket.write( seq.getConstArray() , seq.getLength() ) != seq.getLength() )
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("ctr_socket.cxx:SocketConnection::write: error - "));
- message += m_socket.getErrorAsString();
-
- IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
-
- Any any;
- any <<= ioException;
-
- notifyListeners(this, &_error, callError(any));
-
- throw ioException;
- }
- }
- else
- {
- OUString message(RTL_CONSTASCII_USTRINGPARAM("ctr_socket.cxx:SocketConnection::write: error - connection already closed"));
-
- IOException ioException(message, Reference<XInterface>(static_cast<XConnection *>(this)));
-
- Any any;
- any <<= ioException;
-
- notifyListeners(this, &_error, callError(any));
-
- throw ioException;
- }
- }
-
- void SocketConnection::flush( )
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
-
- }
-
- void SocketConnection::close()
- throw(::com::sun::star::io::IOException,
- ::com::sun::star::uno::RuntimeException)
- {
- // ensure that close is called only once
- if( 1 == osl_incrementInterlockedCount( (&m_nStatus) ) )
- {
- m_socket.shutdown();
- notifyListeners(this, &_closed, callClosed);
- }
- }
-
- OUString SocketConnection::getDescription()
- throw( ::com::sun::star::uno::RuntimeException)
- {
- return m_sDescription;
- }
-
-
-
- // XConnectionBroadcaster
- void SAL_CALL SocketConnection::addStreamListener(const Reference<XStreamListener> & aListener) throw(RuntimeException)
- {
- MutexGuard guard(_mutex);
-
- _listeners.insert(aListener);
- }
-
- void SAL_CALL SocketConnection::removeStreamListener(const Reference<XStreamListener> & aListener) throw(RuntimeException)
- {
- MutexGuard guard(_mutex);
-
- _listeners.erase(aListener);
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/connector/makefile.mk b/io/source/connector/makefile.mk
deleted file mode 100644
index e3a67abe6..000000000
--- a/io/source/connector/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=io
-TARGET = connector.uno
-ENABLE_EXCEPTIONS=TRUE
-NO_BSYMBOLIC=TRUE
-COMP1TYPELIST = connectr
-COMPRDB=$(SOLARBINDIR)$/udkapi.rdb
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-.IF "$(L10N_framework)"==""
-DLLPRE =
-# ------------------------------------------------------------------
-
-UNOUCRDEP=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCRRDB=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCROUT=$(OUT)$/inc$/connector
-INCPRE+= $(UNOUCROUT)
-
-
-SLOFILES= \
- $(SLO)$/connector.obj\
- $(SLO)$/ctr_pipe.obj\
- $(SLO)$/ctr_socket.obj
-
-SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
-SHL1RPATH=URELIB
-
-SHL1STDLIBS= \
- $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)
-
-SHL1DEPN=
-SHL1IMPLIB= i$(TARGET)
-SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME= $(SHL1TARGET)
-
-# --- Targets ------------------------------------------------------
-.ENDIF # L10N_framework
-
-.INCLUDE : target.mk
-
-ALLTAR : $(MISC)/connector.component
-
-$(MISC)/connector.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- connector.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt connector.component
diff --git a/io/source/stm/factreg.cxx b/io/source/stm/factreg.cxx
deleted file mode 100644
index 283439ff8..000000000
--- a/io/source/stm/factreg.cxx
+++ /dev/null
@@ -1,116 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-#include <osl/diagnose.h>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implementationentry.hxx>
-
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-
-#include "factreg.hxx"
-
-namespace io_stm
-{
- rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
-}
-
-using namespace io_stm;
-
-static struct ImplementationEntry g_entries[] =
-{
- {
- OPipeImpl_CreateInstance, OPipeImpl_getImplementationName ,
- OPipeImpl_getSupportedServiceNames, createSingleComponentFactory ,
- &g_moduleCount.modCnt , 0
- },
- {
- OPumpImpl_CreateInstance, OPumpImpl_getImplementationName ,
- OPumpImpl_getSupportedServiceNames, createSingleComponentFactory ,
- &g_moduleCount.modCnt , 0
- },
- {
- ODataInputStream_CreateInstance, ODataInputStream_getImplementationName,
- ODataInputStream_getSupportedServiceNames, createSingleComponentFactory,
- &g_moduleCount.modCnt, 0
- },
- {
- ODataOutputStream_CreateInstance, ODataOutputStream_getImplementationName,
- ODataOutputStream_getSupportedServiceNames, createSingleComponentFactory,
- &g_moduleCount.modCnt, 0
- },
- {
- OObjectInputStream_CreateInstance, OObjectInputStream_getImplementationName,
- OObjectInputStream_getSupportedServiceNames, createSingleComponentFactory,
- &g_moduleCount.modCnt, 0
- },
- {
- OObjectOutputStream_CreateInstance, OObjectOutputStream_getImplementationName,
- OObjectOutputStream_getSupportedServiceNames, createSingleComponentFactory,
- &g_moduleCount.modCnt, 0
- },
- {
- OMarkableInputStream_CreateInstance, OMarkableInputStream_getImplementationName,
- OMarkableInputStream_getSupportedServiceNames, createSingleComponentFactory,
- &g_moduleCount.modCnt, 0
- },
- {
- OMarkableOutputStream_CreateInstance, OMarkableOutputStream_getImplementationName,
- OMarkableOutputStream_getSupportedServiceNames, createSingleComponentFactory,
- &g_moduleCount.modCnt, 0
- },
- { 0, 0, 0, 0, 0, 0 }
-
-};
-
-extern "C"
-{
-
-sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
-{
- return g_moduleCount.canUnload( &g_moduleCount , pTime );
-}
-
-//==================================================================================================
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/stm/factreg.hxx b/io/source/stm/factreg.hxx
deleted file mode 100644
index 80cf2a9b4..000000000
--- a/io/source/stm/factreg.hxx
+++ /dev/null
@@ -1,69 +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 <rtl/unload.h>
-
-namespace io_stm {
-
-extern rtl_StandardModuleCount g_moduleCount;
-
-// OPipeImpl
-Reference< XInterface > SAL_CALL OPipeImpl_CreateInstance( const Reference< XComponentContext > & rSMgr ) throw (Exception);
-OUString OPipeImpl_getImplementationName();
-Sequence<OUString> OPipeImpl_getSupportedServiceNames(void);
-
-Reference< XInterface > SAL_CALL ODataInputStream_CreateInstance( const Reference< XComponentContext > & rSMgr ) throw (Exception);
-OUString ODataInputStream_getImplementationName();
-Sequence<OUString> ODataInputStream_getSupportedServiceNames(void);
-
-Reference< XInterface > SAL_CALL ODataOutputStream_CreateInstance( const Reference< XComponentContext > & rSMgr ) throw (Exception);
-OUString ODataOutputStream_getImplementationName();
-Sequence<OUString> ODataOutputStream_getSupportedServiceNames(void);
-
-Reference< XInterface > SAL_CALL OMarkableOutputStream_CreateInstance( const Reference< XComponentContext > & rSMgr ) throw (Exception);
-OUString OMarkableOutputStream_getImplementationName();
-Sequence<OUString> OMarkableOutputStream_getSupportedServiceNames(void);
-
-Reference< XInterface > SAL_CALL OMarkableInputStream_CreateInstance( const Reference< XComponentContext > & rSMgr ) throw (Exception);
-OUString OMarkableInputStream_getImplementationName() ;
-Sequence<OUString> OMarkableInputStream_getSupportedServiceNames(void);
-
-Reference< XInterface > SAL_CALL OObjectOutputStream_CreateInstance( const Reference< XComponentContext > & rSMgr ) throw(Exception);
-OUString OObjectOutputStream_getImplementationName();
-Sequence<OUString> OObjectOutputStream_getSupportedServiceNames(void);
-
-Reference< XInterface > SAL_CALL OObjectInputStream_CreateInstance( const Reference< XComponentContext > & rSMgr ) throw(Exception);
-OUString OObjectInputStream_getImplementationName() ;
-Sequence<OUString> OObjectInputStream_getSupportedServiceNames(void);
-
-Reference< XInterface > SAL_CALL OPumpImpl_CreateInstance( const Reference< XComponentContext > & rSMgr ) throw (Exception);
-OUString OPumpImpl_getImplementationName();
-Sequence<OUString> OPumpImpl_getSupportedServiceNames(void);
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/stm/makefile.mk b/io/source/stm/makefile.mk
deleted file mode 100644
index 52dd0c492..000000000
--- a/io/source/stm/makefile.mk
+++ /dev/null
@@ -1,84 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=io
-TARGET = streams.uno
-
-ENABLE_EXCEPTIONS=TRUE
-NO_BSYMBOLIC=TRUE
-COMP1TYPELIST = stm
-COMPRDB=$(SOLARBINDIR)$/udkapi.rdb
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-.IF "$(L10N_framework)"==""
-DLLPRE =
-# --- Files --------------------------------------------------------
-UNOUCRDEP=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCRRDB=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCROUT=$(OUT)$/inc$/stm
-INCPRE+= $(UNOUCROUT)
-
-
-SLOFILES = $(SLO)$/opipe.obj\
- $(SLO)$/factreg.obj\
- $(SLO)$/omark.obj\
- $(SLO)$/odata.obj \
- $(SLO)$/streamhelper.obj \
- $(SLO)$/opump.obj
-
-SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
-
-SHL1STDLIBS= \
- $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)
-
-
-SHL1DEPN=
-SHL1IMPLIB= i$(TARGET)
-SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1RPATH= URELIB
-
-DEF1NAME= $(SHL1TARGET)
-
-
-# --- Targets ------------------------------------------------------
-.ENDIF # L10N_framework
-
-.INCLUDE : target.mk
-
-ALLTAR : $(MISC)/streams.component
-
-$(MISC)/streams.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- streams.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt streams.component
diff --git a/io/source/stm/odata.cxx b/io/source/stm/odata.cxx
deleted file mode 100644
index 660cc7c76..000000000
--- a/io/source/stm/odata.cxx
+++ /dev/null
@@ -1,1664 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-
-// streams
-#include <boost/unordered_map.hpp>
-#include <vector>
-
-#include <com/sun/star/io/XObjectInputStream.hpp>
-#include <com/sun/star/io/XObjectOutputStream.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XActiveDataSink.hpp>
-#include <com/sun/star/io/XMarkableStream.hpp>
-#include <com/sun/star/io/XConnectable.hpp>
-#include <com/sun/star/io/UnexpectedEOFException.hpp>
-#include <com/sun/star/io/WrongFormatException.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include <cppuhelper/weak.hxx> // OWeakObject
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase4.hxx>
-#include <cppuhelper/typeprovider.hxx>
-#include <cppuhelper/queryinterface.hxx>
-
-#include <osl/mutex.hxx>
-
-#include <string.h>
-
-
-using namespace ::cppu;
-using namespace ::osl;
-using namespace ::std;
-using namespace ::rtl;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-
-#include "factreg.hxx"
-
-namespace io_stm {
-
-class ODataInputStream :
- public WeakImplHelper4 <
- XDataInputStream,
- XActiveDataSink,
- XConnectable,
- XServiceInfo
- >
-{
-public:
- ODataInputStream( )
- : m_bValidStream( sal_False )
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- }
-
- ~ODataInputStream();
-public: // XInputStream
- virtual sal_Int32 SAL_CALL readBytes(Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
- virtual sal_Int32 SAL_CALL readSomeBytes(Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
- virtual void SAL_CALL skipBytes(sal_Int32 nBytesToSkip) throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
- virtual sal_Int32 SAL_CALL available(void) throw ( NotConnectedException,
- RuntimeException);
- virtual void SAL_CALL closeInput(void) throw ( NotConnectedException,
- RuntimeException);
-
-public: // XDataInputStream
- virtual sal_Int8 SAL_CALL readBoolean(void) throw (IOException, RuntimeException);
- virtual sal_Int8 SAL_CALL readByte(void) throw (IOException, RuntimeException);
- virtual sal_Unicode SAL_CALL readChar(void) throw (IOException, RuntimeException);
- virtual sal_Int16 SAL_CALL readShort(void) throw (IOException, RuntimeException);
- virtual sal_Int32 SAL_CALL readLong(void) throw (IOException, RuntimeException);
- virtual sal_Int64 SAL_CALL readHyper(void) throw (IOException, RuntimeException);
- virtual float SAL_CALL readFloat(void) throw (IOException, RuntimeException);
- virtual double SAL_CALL readDouble(void) throw (IOException, RuntimeException);
- virtual OUString SAL_CALL readUTF(void) throw (IOException, RuntimeException);
-
-
-
-public: // XActiveDataSink
- virtual void SAL_CALL setInputStream(const Reference< XInputStream > & aStream)
- throw (RuntimeException);
- virtual Reference< XInputStream > SAL_CALL getInputStream(void) throw (RuntimeException);
-
-public: // XConnectable
- virtual void SAL_CALL setPredecessor(const Reference < XConnectable >& aPredecessor) throw (RuntimeException);
- virtual Reference < XConnectable > SAL_CALL getPredecessor(void) throw (RuntimeException);
- virtual void SAL_CALL setSuccessor(const Reference < XConnectable >& aSuccessor) throw (RuntimeException);
- virtual Reference < XConnectable > SAL_CALL getSuccessor(void) throw (RuntimeException) ;
-
-
-public: // XServiceInfo
- OUString SAL_CALL getImplementationName() throw ();
- Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw ();
- sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw ();
-
-protected:
-
- Reference < XConnectable > m_pred;
- Reference < XConnectable > m_succ;
- Reference < XInputStream > m_input;
- sal_Bool m_bValidStream;
-};
-
-ODataInputStream::~ODataInputStream()
-{
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-// XInputStream
-sal_Int32 ODataInputStream::readBytes(Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- sal_Int32 nRead;
-
- if( m_bValidStream )
- {
- nRead = m_input->readBytes( aData , nBytesToRead );
- }
- else
- {
- throw NotConnectedException( );
- }
-
- return nRead;
-}
-
-sal_Int32 ODataInputStream::readSomeBytes(Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- sal_Int32 nRead;
- if( m_bValidStream ) {
- nRead = m_input->readSomeBytes( aData , nMaxBytesToRead );
- }
- else {
- throw NotConnectedException( );
- }
-
- return nRead;
-}
-void ODataInputStream::skipBytes(sal_Int32 nBytesToSkip)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- if( m_bValidStream ) {
- m_input->skipBytes( nBytesToSkip );
- }
- else
- {
- throw NotConnectedException( );
- }
-}
-
-
-sal_Int32 ODataInputStream::available(void)
- throw ( NotConnectedException,
- RuntimeException)
-{
- sal_Int32 nAvail;
-
- if( m_bValidStream )
- {
- nAvail = m_input->available( );
- }
- else
- {
- throw NotConnectedException( );
- }
- return nAvail;
-}
-
-void ODataInputStream::closeInput(void )
- throw ( NotConnectedException,
- RuntimeException)
-{
- if( m_bValidStream ) {
- m_input->closeInput( );
- setInputStream( Reference< XInputStream > () );
- setPredecessor( Reference < XConnectable >() );
- setSuccessor( Reference < XConnectable >() );
- m_bValidStream = sal_False;
- }
- else
- {
- throw NotConnectedException( );
- }
-}
-
-
-
-
-//== XDataInputStream ===========================================
-
-// XDataInputStream
-sal_Int8 ODataInputStream::readBoolean(void) throw (IOException, RuntimeException)
-{
- return readByte();
-}
-
-sal_Int8 ODataInputStream::readByte(void) throw (IOException, RuntimeException)
-{
- Sequence<sal_Int8> aTmp(1);
- if( 1 != readBytes( aTmp, 1 ) )
- {
- throw UnexpectedEOFException();
- }
- return aTmp.getArray()[0];
-}
-
-sal_Unicode ODataInputStream::readChar(void) throw (IOException, RuntimeException)
-{
- Sequence<sal_Int8> aTmp(2);
- if( 2 != readBytes( aTmp, 2 ) )
- {
- throw UnexpectedEOFException();
- }
-
- const sal_uInt8 * pBytes = ( const sal_uInt8 * )aTmp.getConstArray();
- return ((sal_Unicode)pBytes[0] << 8) + pBytes[1];
-}
-
-sal_Int16 ODataInputStream::readShort(void) throw (IOException, RuntimeException)
-{
- Sequence<sal_Int8> aTmp(2);
- if( 2 != readBytes( aTmp, 2 ) )
- {
- throw UnexpectedEOFException();
- }
-
- const sal_uInt8 * pBytes = ( const sal_uInt8 * ) aTmp.getConstArray();
- return ((sal_Int16)pBytes[0] << 8) + pBytes[1];
-}
-
-
-sal_Int32 ODataInputStream::readLong(void) throw (IOException, RuntimeException)
-{
- Sequence<sal_Int8> aTmp(4);
- if( 4 != readBytes( aTmp, 4 ) )
- {
- throw UnexpectedEOFException( );
- }
-
- const sal_uInt8 * pBytes = ( const sal_uInt8 * ) aTmp.getConstArray();
- return ((sal_Int32)pBytes[0] << 24) + ((sal_Int32)pBytes[1] << 16) + ((sal_Int32)pBytes[2] << 8) + pBytes[3];
-}
-
-
-sal_Int64 ODataInputStream::readHyper(void) throw (IOException, RuntimeException)
-{
- Sequence<sal_Int8> aTmp(8);
- if( 8 != readBytes( aTmp, 8 ) )
- {
- throw UnexpectedEOFException( );
- }
-
- const sal_uInt8 * pBytes = ( const sal_uInt8 * ) aTmp.getConstArray();
- return
- (((sal_Int64)pBytes[0]) << 56) +
- (((sal_Int64)pBytes[1]) << 48) +
- (((sal_Int64)pBytes[2]) << 40) +
- (((sal_Int64)pBytes[3]) << 32) +
- (((sal_Int64)pBytes[4]) << 24) +
- (((sal_Int64)pBytes[5]) << 16) +
- (((sal_Int64)pBytes[6]) << 8) +
- pBytes[7];
-}
-
-float ODataInputStream::readFloat(void) throw (IOException, RuntimeException)
-{
- union { float f; sal_uInt32 n; } a;
- a.n = readLong();
- return a.f;
-}
-
-double ODataInputStream::readDouble(void) throw (IOException, RuntimeException)
-{
- sal_uInt32 n = 1;
- union { double d; struct { sal_uInt32 n1; sal_uInt32 n2; } ad; } a;
- if( *(sal_uInt8 *)&n == 1 )
- {
- // little endian
- a.ad.n2 = readLong();
- a.ad.n1 = readLong();
- }
- else
- {
- // big endian
- a.ad.n1 = readLong();
- a.ad.n2 = readLong();
- }
- return a.d;
-}
-
-OUString ODataInputStream::readUTF(void) throw (IOException, RuntimeException)
-{
- sal_uInt16 nShortLen = (sal_uInt16)readShort();
- sal_Int32 nUTFLen;
-
- if( ((sal_uInt16)0xffff) == nShortLen )
- {
- // is interpreted as a sign, that string is longer than 64k
- // incompatible to older XDataInputStream-routines, when strings are exactly 64k
- nUTFLen = readLong();
- }
- else
- {
- nUTFLen = ( sal_Int32 ) nShortLen;
- }
-
- Sequence<sal_Unicode> aBuffer( nUTFLen );
- sal_Unicode * pStr = aBuffer.getArray();
-
- sal_Int32 nCount = 0;
- sal_Int32 nStrLen = 0;
- while( nCount < nUTFLen )
- {
- sal_uInt8 c = (sal_uInt8)readByte();
- sal_uInt8 char2, char3;
- switch( c >> 4 )
- {
- case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
- // 0xxxxxxx
- nCount++;
- pStr[nStrLen++] = c;
- break;
-
- case 12: case 13:
- // 110x xxxx 10xx xxxx
- nCount += 2;
- if( ! ( nCount <= nUTFLen ) )
- {
- throw WrongFormatException( );
- }
-
- char2 = (sal_uInt8)readByte();
- if( ! ( (char2 & 0xC0) == 0x80 ) )
- {
- throw WrongFormatException( );
- }
-
- pStr[nStrLen++] = (sal_Unicode(c & 0x1F) << 6) | (char2 & 0x3F);
- break;
-
- case 14:
- // 1110 xxxx 10xx xxxx 10xx xxxx
- nCount += 3;
- if( !( nCount <= nUTFLen) )
- {
- throw WrongFormatException( );
- }
-
- char2 = (sal_uInt8)readByte();
- char3 = (sal_uInt8)readByte();
-
- if( (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80)) ) {
- throw WrongFormatException( );
- }
- pStr[nStrLen++] = (sal_Unicode(c & 0x0F) << 12) |
- (sal_Unicode(char2 & 0x3F) << 6) |
- (char3 & 0x3F);
- break;
-
- default:
- // 10xx xxxx, 1111 xxxx
- throw WrongFormatException();
- //throw new UTFDataFormatException();
- }
- }
- return OUString( pStr, nStrLen );
-}
-
-
-
-// XActiveDataSource
-void ODataInputStream::setInputStream(const Reference< XInputStream > & aStream)
- throw (RuntimeException)
-{
-
- if( m_input != aStream ) {
- m_input = aStream;
-
- Reference < XConnectable > pred( m_input , UNO_QUERY );
- setPredecessor( pred );
- }
-
- m_bValidStream = m_input.is();
-}
-
-Reference< XInputStream > ODataInputStream::getInputStream(void) throw (RuntimeException)
-{
- return m_input;
-}
-
-
-
-// XDataSink
-void ODataInputStream::setSuccessor( const Reference < XConnectable > &r ) throw (RuntimeException)
-{
- /// if the references match, nothing needs to be done
- if( m_succ != r ) {
- /// store the reference for later use
- m_succ = r;
-
- if( m_succ.is() ) {
- /// set this instance as the sink !
- m_succ->setPredecessor( Reference< XConnectable > (
- SAL_STATIC_CAST( XConnectable * , this ) ) );
- }
- }
-}
-
-Reference < XConnectable > ODataInputStream::getSuccessor() throw (RuntimeException)
-{
- return m_succ;
-}
-
-
-// XDataSource
-void ODataInputStream::setPredecessor( const Reference < XConnectable > &r )
- throw (RuntimeException)
-{
- if( r != m_pred ) {
- m_pred = r;
- if( m_pred.is() ) {
- m_pred->setSuccessor( Reference< XConnectable > (
- SAL_STATIC_CAST( XConnectable * , this ) ) );
- }
- }
-}
-Reference < XConnectable > ODataInputStream::getPredecessor() throw (RuntimeException)
-{
- return m_pred;
-}
-
-// XServiceInfo
-OUString ODataInputStream::getImplementationName() throw ()
-{
- return ODataInputStream_getImplementationName();
-}
-
-// XServiceInfo
-sal_Bool ODataInputStream::supportsService(const OUString& ServiceName) throw ()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > ODataInputStream::getSupportedServiceNames(void) throw ()
-{
- return ODataInputStream_getSupportedServiceNames();
-}
-
-/***
-*
-* registration information
-*
-*
-****/
-
-Reference< XInterface > SAL_CALL ODataInputStream_CreateInstance( const Reference < XComponentContext > & ) throw( Exception)
-{
- ODataInputStream *p = new ODataInputStream;
- return Reference< XInterface > ( (OWeakObject * ) p );
-}
-
-OUString ODataInputStream_getImplementationName()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.io.stm.DataInputStream" ) );
-}
-
-Sequence<OUString> ODataInputStream_getSupportedServiceNames(void)
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.DataInputStream" ) );
- return aRet;
-}
-
-
-
-
-class ODataOutputStream :
- public WeakImplHelper4 <
- XDataOutputStream,
- XActiveDataSource,
- XConnectable,
- XServiceInfo >
-{
-public:
- ODataOutputStream()
- : m_bValidStream( sal_False )
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- }
- ~ODataOutputStream();
-
-public: // XOutputStream
- virtual void SAL_CALL writeBytes(const Sequence< sal_Int8 >& aData)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
- virtual void SAL_CALL flush(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
- virtual void SAL_CALL closeOutput(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
-
-public: // XDataOutputStream
- virtual void SAL_CALL writeBoolean(sal_Bool Value) throw (IOException, RuntimeException);
- virtual void SAL_CALL writeByte(sal_Int8 Value) throw (IOException, RuntimeException);
- virtual void SAL_CALL writeChar(sal_Unicode Value) throw (IOException, RuntimeException);
- virtual void SAL_CALL writeShort(sal_Int16 Value) throw (IOException, RuntimeException);
- virtual void SAL_CALL writeLong(sal_Int32 Value) throw (IOException, RuntimeException);
- virtual void SAL_CALL writeHyper(sal_Int64 Value) throw (IOException, RuntimeException);
- virtual void SAL_CALL writeFloat(float Value) throw (IOException, RuntimeException);
- virtual void SAL_CALL writeDouble(double Value) throw (IOException, RuntimeException);
- virtual void SAL_CALL writeUTF(const OUString& Value) throw (IOException, RuntimeException);
-
-public: // XActiveDataSource
- virtual void SAL_CALL setOutputStream(const Reference< XOutputStream > & aStream)
- throw (RuntimeException);
- virtual Reference < XOutputStream > SAL_CALL getOutputStream(void) throw (RuntimeException);
-
-public: // XConnectable
- virtual void SAL_CALL setPredecessor(const Reference < XConnectable >& aPredecessor)
- throw (RuntimeException);
- virtual Reference < XConnectable > SAL_CALL getPredecessor(void)
- throw (RuntimeException);
- virtual void SAL_CALL setSuccessor(const Reference < XConnectable >& aSuccessor)
- throw (RuntimeException);
- virtual Reference < XConnectable > SAL_CALL getSuccessor(void)
- throw (RuntimeException);
-
-public: // XServiceInfo
- OUString SAL_CALL getImplementationName() throw ();
- Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw ();
- sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw ();
-
-protected:
- Reference < XConnectable > m_succ;
- Reference < XConnectable > m_pred;
- Reference< XOutputStream > m_output;
- sal_Bool m_bValidStream;
-};
-
-ODataOutputStream::~ODataOutputStream()
-{
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-
-// XOutputStream
-void ODataOutputStream::writeBytes(const Sequence< sal_Int8 >& aData)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- if( m_bValidStream )
- {
- m_output->writeBytes( aData );
- }
- else {
- throw NotConnectedException( );
- }
-}
-
-void ODataOutputStream::flush(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- if( m_bValidStream )
- {
- m_output->flush();
- }
- else
- {
- throw NotConnectedException();
- }
-
-}
-
-
-void ODataOutputStream::closeOutput(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- if( m_bValidStream )
- {
- m_output->closeOutput();
- setOutputStream( Reference< XOutputStream > () );
- setPredecessor( Reference < XConnectable >() );
- setSuccessor( Reference < XConnectable >() );
- }
- else
- {
- throw NotConnectedException();
- }
-}
-
-// XDataOutputStream
-void ODataOutputStream::writeBoolean(sal_Bool Value)
- throw ( IOException,
- RuntimeException)
-{
- if( Value )
- {
- writeByte( 1 );
- }
- else
- {
- writeByte( 0 );
- }
-}
-
-
-void ODataOutputStream::writeByte(sal_Int8 Value)
- throw ( IOException,
- RuntimeException)
-{
- Sequence<sal_Int8> aTmp( 1 );
- aTmp.getArray()[0] = Value;
- writeBytes( aTmp );
-}
-
-void ODataOutputStream::writeChar(sal_Unicode Value)
- throw ( IOException,
- RuntimeException)
-{
- Sequence<sal_Int8> aTmp( 2 );
- sal_Int8 * pBytes = ( sal_Int8 * ) aTmp.getArray();
- pBytes[0] = sal_Int8(Value >> 8);
- pBytes[1] = sal_Int8(Value);
- writeBytes( aTmp );
-}
-
-
-void ODataOutputStream::writeShort(sal_Int16 Value)
- throw ( IOException,
- RuntimeException)
-{
- Sequence<sal_Int8> aTmp( 2 );
- sal_Int8 * pBytes = aTmp.getArray();
- pBytes[0] = sal_Int8(Value >> 8);
- pBytes[1] = sal_Int8(Value);
- writeBytes( aTmp );
-}
-
-void ODataOutputStream::writeLong(sal_Int32 Value)
- throw ( IOException,
- RuntimeException)
-{
- Sequence<sal_Int8> aTmp( 4 );
- sal_Int8 * pBytes = aTmp.getArray();
- pBytes[0] = sal_Int8(Value >> 24);
- pBytes[1] = sal_Int8(Value >> 16);
- pBytes[2] = sal_Int8(Value >> 8);
- pBytes[3] = sal_Int8(Value);
- writeBytes( aTmp );
-}
-
-void ODataOutputStream::writeHyper(sal_Int64 Value)
- throw ( IOException,
- RuntimeException)
-{
- Sequence<sal_Int8> aTmp( 8 );
- sal_Int8 * pBytes = aTmp.getArray();
- pBytes[0] = sal_Int8(Value >> 56);
- pBytes[1] = sal_Int8(Value >> 48);
- pBytes[2] = sal_Int8(Value >> 40);
- pBytes[3] = sal_Int8(Value >> 32);
- pBytes[4] = sal_Int8(Value >> 24);
- pBytes[5] = sal_Int8(Value >> 16);
- pBytes[6] = sal_Int8(Value >> 8);
- pBytes[7] = sal_Int8(Value);
- writeBytes( aTmp );
-}
-
-
-void ODataOutputStream::writeFloat(float Value)
- throw ( IOException,
- RuntimeException)
-{
- union { float f; sal_uInt32 n; } a;
- a.f = Value;
- writeLong( a.n );
-}
-
-void ODataOutputStream::writeDouble(double Value)
- throw ( IOException,
- RuntimeException)
-{
- sal_uInt32 n = 1;
- union { double d; struct { sal_uInt32 n1; sal_uInt32 n2; } ad; } a;
- a.d = Value;
- if( *(sal_Int8 *)&n == 1 )
- {
- // little endian
- writeLong( a.ad.n2 );
- writeLong( a.ad.n1 );
- }
- else
- {
- // big endian
- writeLong( a.ad.n1 );
- writeLong( a.ad.n2 );
- }
-}
-
-void ODataOutputStream::writeUTF(const OUString& Value)
- throw ( IOException,
- RuntimeException)
-{
- sal_Int32 nStrLen = Value.getLength();
- const sal_Unicode * pStr = Value.getStr();
- sal_Int32 nUTFLen = 0;
- sal_Int32 i;
-
- for( i = 0 ; i < nStrLen ; i++ )
- {
- sal_uInt16 c = pStr[i];
- if( (c >= 0x0001) && (c <= 0x007F) )
- {
- nUTFLen++;
- }
- else if( c > 0x07FF )
- {
- nUTFLen += 3;
- }
- else
- {
- nUTFLen += 2;
- }
- }
-
-
- // compatibility mode for older implementations, where it was not possible
- // to write blocks bigger than 64 k. Note that there is a tradeoff. Blocks,
- // that are exactly 64k long can not be read by older routines when written
- // with these routines and the other way round !!!!!
- if( nUTFLen >= 0xFFFF ) {
- writeShort( (sal_Int16)-1 );
- writeLong( nUTFLen );
- }
- else {
- writeShort( ((sal_uInt16)nUTFLen) );
- }
- for( i = 0 ; i < nStrLen ; i++ )
- {
- sal_uInt16 c = pStr[i];
- if( (c >= 0x0001) && (c <= 0x007F) )
- {
- writeByte(sal_Int8(c));
- }
- else if( c > 0x07FF )
- {
- writeByte(sal_Int8(0xE0 | ((c >> 12) & 0x0F)));
- writeByte(sal_Int8(0x80 | ((c >> 6) & 0x3F)));
- writeByte(sal_Int8(0x80 | ((c >> 0) & 0x3F)));
- }
- else
- {
- writeByte(sal_Int8(0xC0 | ((c >> 6) & 0x1F)));
- writeByte(sal_Int8(0x80 | ((c >> 0) & 0x3F)));
- }
- }
-}
-
-// XActiveDataSource
-void ODataOutputStream::setOutputStream(const Reference< XOutputStream > & aStream)
- throw (RuntimeException)
-{
- if( m_output != aStream ) {
- m_output = aStream;
- m_bValidStream = m_output.is();
-
- Reference < XConnectable > succ( m_output , UNO_QUERY );
- setSuccessor( succ );
- }
-}
-
-Reference< XOutputStream > ODataOutputStream::getOutputStream(void)
- throw (RuntimeException)
-{
- return m_output;
-}
-
-
-
-
-// XDataSink
-void ODataOutputStream::setSuccessor( const Reference < XConnectable > &r )
- throw (RuntimeException)
-{
- /// if the references match, nothing needs to be done
- if( m_succ != r )
- {
- /// store the reference for later use
- m_succ = r;
-
- if( m_succ.is() )
- {
- /// set this instance as the sink !
- m_succ->setPredecessor( Reference < XConnectable > (
- SAL_STATIC_CAST( XConnectable * , this ) ));
- }
- }
-}
-Reference < XConnectable > ODataOutputStream::getSuccessor() throw (RuntimeException)
-{
- return m_succ;
-}
-
-
-// XDataSource
-void ODataOutputStream::setPredecessor( const Reference < XConnectable > &r ) throw (RuntimeException)
-{
- if( r != m_pred ) {
- m_pred = r;
- if( m_pred.is() ) {
- m_pred->setSuccessor( Reference< XConnectable > (
- SAL_STATIC_CAST( XConnectable * , this ) ));
- }
- }
-}
-Reference < XConnectable > ODataOutputStream::getPredecessor() throw (RuntimeException)
-{
- return m_pred;
-}
-
-
-
-// XServiceInfo
-OUString ODataOutputStream::getImplementationName() throw ()
-{
- return ODataOutputStream_getImplementationName();
-}
-
-// XServiceInfo
-sal_Bool ODataOutputStream::supportsService(const OUString& ServiceName) throw ()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > ODataOutputStream::getSupportedServiceNames(void) throw ()
-{
- return ODataOutputStream_getSupportedServiceNames();
-}
-
-
-
-
-Reference< XInterface > SAL_CALL ODataOutputStream_CreateInstance( const Reference < XComponentContext > & ) throw(Exception)
-{
- ODataOutputStream *p = new ODataOutputStream;
- Reference< XInterface > xService = *p;
- return xService;
-}
-
-
-OUString ODataOutputStream_getImplementationName()
-{
- return OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.io.stm.DataOutputStream" ) );
-}
-
-Sequence<OUString> ODataOutputStream_getSupportedServiceNames(void)
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.DataOutputStream" ) );
- return aRet;
-}
-
-//--------------------------------------
-struct equalObjectContainer_Impl
-{
- sal_Int32 operator()(const Reference< XInterface > & s1,
- const Reference< XInterface > & s2) const
- {
- return s1 == s2;
- }
-};
-
-//-----------------------------------------------------------------------------
-struct hashObjectContainer_Impl
-{
- size_t operator()(const Reference< XInterface > & xRef) const
- {
- return (size_t)xRef.get();
- }
-};
-
-typedef boost::unordered_map
-<
- Reference< XInterface >,
- sal_Int32,
- hashObjectContainer_Impl,
- equalObjectContainer_Impl
-> ObjectContainer_Impl;
-
-/*---------------------------------------------
-*
-*
-*
-*
-*--------------------------------------------*/
-class OObjectOutputStream :
- public ODataOutputStream,
- public XObjectOutputStream,
- public XMarkableStream
-{
-public:
- OObjectOutputStream()
- : m_nMaxId(0) ,
- m_bValidMarkable(sal_False)
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- }
-
- ~OObjectOutputStream();
-
-public:
- Any SAL_CALL queryInterface( const Type &type ) throw (::com::sun::star::uno::RuntimeException);
- void SAL_CALL acquire() throw() { ODataOutputStream::acquire(); }
- void SAL_CALL release() throw() { ODataOutputStream::release(); }
-
-public:
- // XOutputStream
- virtual void SAL_CALL writeBytes(const Sequence< sal_Int8 >& aData)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
- { ODataOutputStream::writeBytes( aData ); }
-
- virtual void SAL_CALL flush(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
- { ODataOutputStream::flush(); }
-
- virtual void SAL_CALL closeOutput(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
- { ODataOutputStream::closeOutput(); }
-
-public:
- // XDataOutputStream
- virtual void SAL_CALL writeBoolean(sal_Bool Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeBoolean( Value ); }
- virtual void SAL_CALL writeByte(sal_Int8 Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeByte( Value ); }
- virtual void SAL_CALL writeChar(sal_Unicode Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeChar( Value ); }
- virtual void SAL_CALL writeShort(sal_Int16 Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeShort( Value ); }
- virtual void SAL_CALL writeLong(sal_Int32 Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeLong( Value ); }
- virtual void SAL_CALL writeHyper(sal_Int64 Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeHyper( Value ); }
- virtual void SAL_CALL writeFloat(float Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeFloat( Value ); }
- virtual void SAL_CALL writeDouble(double Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeDouble( Value ); }
- virtual void SAL_CALL writeUTF(const OUString& Value) throw (IOException, RuntimeException)
- { ODataOutputStream::writeUTF( Value );}
-
- // XObjectOutputStream
- virtual void SAL_CALL writeObject( const Reference< XPersistObject > & r ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
-public: // XMarkableStream
- virtual sal_Int32 SAL_CALL createMark(void) throw (IOException, RuntimeException);
- virtual void SAL_CALL deleteMark(sal_Int32 Mark) throw (IOException, IllegalArgumentException, RuntimeException);
- virtual void SAL_CALL jumpToMark(sal_Int32 nMark) throw (IOException, IllegalArgumentException, RuntimeException);
- virtual void SAL_CALL jumpToFurthest(void) throw (IOException, RuntimeException);
- virtual sal_Int32 SAL_CALL offsetToMark(sal_Int32 nMark)
- throw (IOException, IllegalArgumentException, RuntimeException);
-
-public: //XTypeProvider
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL
- getTypes( ) throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
- getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
-
-public: // XServiceInfo
- OUString SAL_CALL getImplementationName() throw ();
- Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw ();
- sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw ();
-
-private:
- void connectToMarkable();
-private:
- ObjectContainer_Impl m_mapObject;
- sal_Int32 m_nMaxId;
- Reference< XMarkableStream > m_rMarkable;
- sal_Bool m_bValidMarkable;
-};
-
-OObjectOutputStream::~OObjectOutputStream()
-{
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-Any OObjectOutputStream::queryInterface( const Type &aType ) throw (::com::sun::star::uno::RuntimeException)
-{
- Any a = ::cppu::queryInterface(
- aType ,
- SAL_STATIC_CAST( XMarkableStream * , this ),
- SAL_STATIC_CAST( XObjectOutputStream * , this ) );
- if( a.hasValue() )
- {
- return a;
- }
-
- return ODataOutputStream::queryInterface( aType );
-
-}
-void OObjectOutputStream::writeObject( const Reference< XPersistObject > & xPObj ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
-{
-
- connectToMarkable();
- sal_Bool bWriteObj = sal_False;
- // create Mark to write length of info
- sal_uInt32 nInfoLenMark = m_rMarkable->createMark();
-
- // length of the info data (is later rewritten)
- OObjectOutputStream::writeShort( 0 );
-
- // write the object identifier
- if( xPObj.is() )
- {
- Reference< XInterface > rX( xPObj , UNO_QUERY );
-
- ObjectContainer_Impl::const_iterator aIt
- = m_mapObject.find( rX );
- if( aIt == m_mapObject.end() )
- {
- // insert new object in hash table
- m_mapObject[ rX ] = ++m_nMaxId;
- ODataOutputStream::writeLong( m_nMaxId );
- ODataOutputStream::writeUTF( xPObj->getServiceName() );
- bWriteObj = sal_True;
- }
- else
- {
- ODataOutputStream::writeLong( (*aIt).second );
- OUString aName;
- ODataOutputStream::writeUTF( aName );
- }
- }
- else
- {
- ODataOutputStream::writeLong( 0 );
- OUString aName;
- ODataOutputStream::writeUTF( aName );
- }
-
- sal_uInt32 nObjLenMark = m_rMarkable->createMark();
- ODataOutputStream::writeLong( 0 );
-
- sal_Int32 nInfoLen = m_rMarkable->offsetToMark( nInfoLenMark );
- m_rMarkable->jumpToMark( nInfoLenMark );
- // write length of the info data
- ODataOutputStream::writeShort( (sal_Int16)nInfoLen );
- // jump to the end of the stream
- m_rMarkable->jumpToFurthest();
-
- if( bWriteObj )
- xPObj->write( Reference< XObjectOutputStream > (
- SAL_STATIC_CAST( XObjectOutputStream * , this ) ) );
-
- sal_Int32 nObjLen = m_rMarkable->offsetToMark( nObjLenMark ) -4;
- m_rMarkable->jumpToMark( nObjLenMark );
- // write length of the info data
- ODataOutputStream::writeLong( nObjLen );
- // jump to the end of the stream
- m_rMarkable->jumpToFurthest();
-
- m_rMarkable->deleteMark( nObjLenMark );
- m_rMarkable->deleteMark( nInfoLenMark );
-}
-
-
-
-void OObjectOutputStream::connectToMarkable(void)
-{
- if( ! m_bValidMarkable ) {
- if( ! m_bValidStream )
- {
- throw NotConnectedException();
- }
-
- // find the markable stream !
- Reference< XInterface > rTry(m_output);
- while( sal_True ) {
- if( ! rTry.is() )
- {
- throw NotConnectedException();
- }
- Reference < XMarkableStream > markable( rTry , UNO_QUERY );
- if( markable.is() )
- {
- m_rMarkable = markable;
- break;
- }
- Reference < XActiveDataSource > source( rTry , UNO_QUERY );
- rTry = source;
- }
- m_bValidMarkable = sal_True;
- }
-}
-
-
-sal_Int32 OObjectOutputStream::createMark(void)
- throw (IOException, RuntimeException)
-{
- connectToMarkable(); // throws an exception, if a markable is not connected !
-
- return m_rMarkable->createMark();
-}
-
-void OObjectOutputStream::deleteMark(sal_Int32 Mark)
- throw (IOException, IllegalArgumentException, RuntimeException)
-{
- if( ! m_bValidMarkable )
- {
- throw NotConnectedException();
- }
- m_rMarkable->deleteMark( Mark );
-}
-
-void OObjectOutputStream::jumpToMark(sal_Int32 nMark)
- throw (IOException, IllegalArgumentException, RuntimeException)
-{
- if( ! m_bValidMarkable )
- {
- throw NotConnectedException();
- }
- m_rMarkable->jumpToMark( nMark );
-}
-
-
-void OObjectOutputStream::jumpToFurthest(void)
- throw (IOException, RuntimeException)
-{
- connectToMarkable();
- m_rMarkable->jumpToFurthest();
-}
-
-sal_Int32 OObjectOutputStream::offsetToMark(sal_Int32 nMark)
- throw (IOException, IllegalArgumentException, RuntimeException)
-{
- if( ! m_bValidMarkable )
- {
- throw NotConnectedException();
- }
- return m_rMarkable->offsetToMark( nMark );
-}
-
-
-
-
-Reference< XInterface > SAL_CALL OObjectOutputStream_CreateInstance( const Reference < XComponentContext > & )
- throw(Exception)
-{
- OObjectOutputStream *p = new OObjectOutputStream;
- return Reference< XInterface > ( SAL_STATIC_CAST( OWeakObject * , p ) );
-}
-
-OUString OObjectOutputStream_getImplementationName()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.io.stm.ObjectOutputStream" ) );
-}
-
-Sequence<OUString> OObjectOutputStream_getSupportedServiceNames(void)
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.ObjectOutputStream" ) );
- return aRet;
-}
-
-Sequence< Type > SAL_CALL OObjectOutputStream::getTypes(void) throw( RuntimeException )
-{
- static OTypeCollection *pCollection = 0;
- if( ! pCollection )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( ! pCollection )
- {
- static OTypeCollection collection(
- getCppuType( (Reference< XMarkableStream > * ) 0 ),
- getCppuType( (Reference< XObjectOutputStream > * ) 0 ),
- ODataOutputStream::getTypes() );
- pCollection = &collection;
- }
- }
- return (*pCollection).getTypes();
-}
-
-Sequence< sal_Int8 > SAL_CALL OObjectOutputStream::getImplementationId( ) throw( RuntimeException)
-{
- static OImplementationId *pId = 0;
- if( ! pId )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( ! pId )
- {
- static OImplementationId id( sal_False );
- pId = &id;
- }
- }
- return (*pId).getImplementationId();
-}
-
-
-// XServiceInfo
-OUString OObjectOutputStream::getImplementationName() throw ()
-{
- return ODataInputStream_getImplementationName();
-}
-
-// XServiceInfo
-sal_Bool OObjectOutputStream::supportsService(const OUString& ServiceName) throw ()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > OObjectOutputStream::getSupportedServiceNames(void) throw ()
-{
- return OObjectOutputStream_getSupportedServiceNames();
-}
-
-
-
-
-
-class OObjectInputStream :
- public ODataInputStream,
- public XObjectInputStream,
- public XMarkableStream
-{
-public:
- OObjectInputStream( const Reference < XComponentContext > &r)
- : m_rSMgr( r->getServiceManager() )
- , m_rCxt( r )
- , m_bValidMarkable(sal_False)
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- }
- ~OObjectInputStream();
-
-public:
- Any SAL_CALL queryInterface( const Type &type ) throw();
- void SAL_CALL acquire() throw() { ODataInputStream::acquire(); }
- void SAL_CALL release() throw() { ODataInputStream::release(); }
-
-public: // XInputStream
- virtual sal_Int32 SAL_CALL readBytes(Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
- { return ODataInputStream::readBytes( aData , nBytesToRead ); }
-
- virtual sal_Int32 SAL_CALL readSomeBytes(Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
- { return ODataInputStream::readSomeBytes( aData, nMaxBytesToRead ); }
-
- virtual void SAL_CALL skipBytes(sal_Int32 nBytesToSkip)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
- { ODataInputStream::skipBytes( nBytesToSkip ); }
-
- virtual sal_Int32 SAL_CALL available(void)
- throw ( NotConnectedException,
- RuntimeException)
- { return ODataInputStream::available(); }
-
- virtual void SAL_CALL closeInput(void)
- throw ( NotConnectedException,
- RuntimeException)
- { ODataInputStream::closeInput(); }
-
-public: // XDataInputStream
- virtual sal_Int8 SAL_CALL readBoolean(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readBoolean(); }
- virtual sal_Int8 SAL_CALL readByte(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readByte(); }
- virtual sal_Unicode SAL_CALL readChar(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readChar(); }
- virtual sal_Int16 SAL_CALL readShort(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readShort(); }
- virtual sal_Int32 SAL_CALL readLong(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readLong(); }
- virtual sal_Int64 SAL_CALL readHyper(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readHyper(); }
- virtual float SAL_CALL readFloat(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readFloat(); }
- virtual double SAL_CALL readDouble(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readDouble(); }
- virtual OUString SAL_CALL readUTF(void) throw (IOException, RuntimeException)
- { return ODataInputStream::readUTF(); }
-
-public: // XObjectInputStream
- virtual Reference< XPersistObject > SAL_CALL readObject( ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
-public: // XMarkableStream
- virtual sal_Int32 SAL_CALL createMark(void)
- throw (IOException, RuntimeException);
- virtual void SAL_CALL deleteMark(sal_Int32 Mark) throw (IOException, IllegalArgumentException, RuntimeException);
- virtual void SAL_CALL jumpToMark(sal_Int32 nMark) throw (IOException, IllegalArgumentException, RuntimeException);
- virtual void SAL_CALL jumpToFurthest(void) throw (IOException, RuntimeException);
- virtual sal_Int32 SAL_CALL offsetToMark(sal_Int32 nMark)
- throw (IOException, IllegalArgumentException, RuntimeException);
-
-public: //XTypeProvider
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL
- getTypes( ) throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
- getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
-
-public: // XServiceInfo
- OUString SAL_CALL getImplementationName() throw ();
- Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw ();
- sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw ();
-
-private:
- void connectToMarkable();
-private:
- Reference < XMultiComponentFactory > m_rSMgr;
- Reference < XComponentContext > m_rCxt;
- sal_Bool m_bValidMarkable;
- Reference < XMarkableStream > m_rMarkable;
- vector < Reference< XPersistObject > > m_aPersistVector;
-
-};
-
-OObjectInputStream::~OObjectInputStream()
-{
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-Any OObjectInputStream::queryInterface( const Type &aType ) throw ()
-{
- Any a = ::cppu::queryInterface(
- aType ,
- SAL_STATIC_CAST( XMarkableStream * , this ),
- SAL_STATIC_CAST( XObjectInputStream * , this ) );
- if( a.hasValue() )
- {
- return a;
- }
-
- return ODataInputStream::queryInterface( aType );
-
-}
-
-Reference< XPersistObject > OObjectInputStream::readObject() throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
-{
- // check if chain contains a XMarkableStream
- connectToMarkable();
-
- Reference< XPersistObject > xLoadedObj;
-
- // create Mark to skip newer versions
- sal_uInt32 nMark = m_rMarkable->createMark();
- // length of the data
- sal_Int32 nLen = (sal_uInt16) ODataInputStream::readShort();
- if( nLen < 0xc )
- {
- throw WrongFormatException();
- }
-
- // read the object identifier
- sal_uInt32 nId = readLong();
-
- // the name of the persist model
- // MM ???
- OUString aName = readUTF();
-
- // Read the length of the object
- sal_Int32 nObjLen = readLong();
- if( ( 0 == nId && 0 != nObjLen ) )
- {
- throw WrongFormatException();
- }
-
- // skip data of new version
- skipBytes( nLen - m_rMarkable->offsetToMark( nMark ) );
-
- sal_Bool bLoadSuccesfull = sal_True;
- if( nId )
- {
- if( aName.getLength() )
- {
- // load the object
- Reference< XInterface > x = m_rSMgr->createInstanceWithContext( aName, m_rCxt );
- xLoadedObj = Reference< XPersistObject >( x, UNO_QUERY );
- if( xLoadedObj.is() )
- {
- sal_uInt32 nSize = m_aPersistVector.size();
- if( nSize <= nId )
- {
- // grow to the right size
- Reference< XPersistObject > xEmpty;
- m_aPersistVector.insert( m_aPersistVector.end(), (long)(nId - nSize + 1), xEmpty );
- }
-
- m_aPersistVector[nId] = xLoadedObj;
- xLoadedObj->read( Reference< XObjectInputStream >(
- SAL_STATIC_CAST( XObjectInputStream *, this ) ) );
- }
- else
- {
- // no service with this name could be instantiated
- bLoadSuccesfull = sal_False;
- }
- }
- else {
- if( m_aPersistVector.size() < nId )
- {
- // id unknown, load failure !
- bLoadSuccesfull = sal_False;
- }
- else
- {
- // Object has alread been read,
- xLoadedObj = m_aPersistVector[nId];
- }
- }
- }
-
- // skip to the position behind the object
- skipBytes( nObjLen + nLen - m_rMarkable->offsetToMark( nMark ) );
- m_rMarkable->deleteMark( nMark );
-
- if( ! bLoadSuccesfull )
- {
- throw WrongFormatException();
- }
- return xLoadedObj;
-}
-
-
-void OObjectInputStream::connectToMarkable()
-{
- if( ! m_bValidMarkable ) {
- if( ! m_bValidStream )
- {
- throw NotConnectedException( );
- }
-
- // find the markable stream !
- Reference< XInterface > rTry(m_input);
- while( sal_True ) {
- if( ! rTry.is() )
- {
- throw NotConnectedException( );
- }
- Reference< XMarkableStream > markable( rTry , UNO_QUERY );
- if( markable.is() )
- {
- m_rMarkable = markable;
- break;
- }
- Reference < XActiveDataSink > sink( rTry , UNO_QUERY );
- rTry = sink;
- }
- m_bValidMarkable = sal_True;
- }
-}
-
-sal_Int32 OObjectInputStream::createMark(void) throw (IOException, RuntimeException)
-{
- connectToMarkable(); // throws an exception, if a markable is not connected !
-
- return m_rMarkable->createMark();
-}
-
-void OObjectInputStream::deleteMark(sal_Int32 Mark) throw (IOException, IllegalArgumentException, RuntimeException)
-{
- if( ! m_bValidMarkable )
- {
- throw NotConnectedException();
- }
- m_rMarkable->deleteMark( Mark );
-}
-
-void OObjectInputStream::jumpToMark(sal_Int32 nMark) throw (IOException, IllegalArgumentException, RuntimeException)
-{
- if( ! m_bValidMarkable )
- {
- throw NotConnectedException();
- }
- m_rMarkable->jumpToMark( nMark );
-}
-void OObjectInputStream::jumpToFurthest(void) throw (IOException, RuntimeException)
-{
- connectToMarkable();
- m_rMarkable->jumpToFurthest();
-}
-
-sal_Int32 OObjectInputStream::offsetToMark(sal_Int32 nMark)
- throw (IOException, IllegalArgumentException, RuntimeException)
-{
- if( ! m_bValidMarkable )
- {
- throw NotConnectedException();
- }
- return m_rMarkable->offsetToMark( nMark );
-}
-
-
-Sequence< Type > SAL_CALL OObjectInputStream::getTypes(void) throw( RuntimeException )
-{
- static OTypeCollection *pCollection = 0;
- if( ! pCollection )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( ! pCollection )
- {
- static OTypeCollection collection(
- getCppuType( (Reference< XMarkableStream > * ) 0 ),
- getCppuType( (Reference< XObjectInputStream > * ) 0 ),
- ODataInputStream::getTypes() );
- pCollection = &collection;
- }
- }
- return (*pCollection).getTypes();
-}
-
-Sequence< sal_Int8 > SAL_CALL OObjectInputStream::getImplementationId( ) throw( RuntimeException)
-{
- static OImplementationId *pId = 0;
- if( ! pId )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( ! pId )
- {
- static OImplementationId id( sal_False );
- pId = &id;
- }
- }
- return (*pId).getImplementationId();
-}
-
-
-// XServiceInfo
-OUString OObjectInputStream::getImplementationName() throw ()
-{
- return OObjectInputStream_getImplementationName();
-}
-
-// XServiceInfo
-sal_Bool OObjectInputStream::supportsService(const OUString& ServiceName) throw ()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > OObjectInputStream::getSupportedServiceNames(void) throw ()
-{
- return OObjectInputStream_getSupportedServiceNames();
-}
-
-
-
-
-Reference< XInterface > SAL_CALL OObjectInputStream_CreateInstance( const Reference < XComponentContext > & rCtx ) throw(Exception)
-{
- OObjectInputStream *p = new OObjectInputStream( rCtx );
- return Reference< XInterface> ( SAL_STATIC_CAST( OWeakObject *, p ) );
-}
-
-OUString OObjectInputStream_getImplementationName()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.io.stm.ObjectInputStream" ) );
-}
-
-Sequence<OUString> OObjectInputStream_getSupportedServiceNames(void)
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.ObjectInputStream" ) );
- return aRet;
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/stm/omark.cxx b/io/source/stm/omark.cxx
deleted file mode 100644
index 4a3912c87..000000000
--- a/io/source/stm/omark.cxx
+++ /dev/null
@@ -1,1016 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-#include <map>
-#include <vector>
-
-#include <com/sun/star/io/XMarkableStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XActiveDataSink.hpp>
-#include <com/sun/star/io/XConnectable.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/weak.hxx> // OWeakObject
-#include <cppuhelper/implbase5.hxx>
-
-#include <osl/mutex.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <string.h>
-
-
-using namespace ::std;
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::osl;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-
-#include "streamhelper.hxx"
-#include "factreg.hxx"
-
-namespace io_stm {
-
-/***********************
-*
-* OMarkableOutputStream.
-*
-* This object allows to set marks in an outputstream. It is allowed to jump back to the marks and
-* rewrite the some bytes.
-*
-* The object must buffer the data since the last mark set. Flush will not
-* have any effect. As soon as the last mark has been removed, the object may write the data
-* through to the chained object.
-*
-**********************/
-class OMarkableOutputStream :
- public WeakImplHelper5< XOutputStream ,
- XActiveDataSource ,
- XMarkableStream ,
- XConnectable,
- XServiceInfo
- >
-{
-public:
- OMarkableOutputStream( );
- ~OMarkableOutputStream();
-
-public: // XOutputStream
- virtual void SAL_CALL writeBytes(const Sequence< sal_Int8 >& aData)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
- virtual void SAL_CALL flush(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
- virtual void SAL_CALL closeOutput(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
-
-public: // XMarkable
- virtual sal_Int32 SAL_CALL createMark(void)
- throw (IOException, RuntimeException);
- virtual void SAL_CALL deleteMark(sal_Int32 Mark)
- throw (IOException,
- IllegalArgumentException,
- RuntimeException);
- virtual void SAL_CALL jumpToMark(sal_Int32 nMark)
- throw (IOException,
- IllegalArgumentException,
- RuntimeException);
- virtual void SAL_CALL jumpToFurthest(void)
- throw (IOException, RuntimeException);
- virtual sal_Int32 SAL_CALL offsetToMark(sal_Int32 nMark)
- throw (IOException,
- IllegalArgumentException,
- RuntimeException);
-
-public: // XActiveDataSource
- virtual void SAL_CALL setOutputStream(const Reference < XOutputStream > & aStream)
- throw (RuntimeException);
- virtual Reference < XOutputStream > SAL_CALL getOutputStream(void)
- throw (RuntimeException);
-
-public: // XConnectable
- virtual void SAL_CALL setPredecessor(const Reference < XConnectable > & aPredecessor)
- throw (RuntimeException);
- virtual Reference < XConnectable > SAL_CALL getPredecessor(void) throw (RuntimeException);
- virtual void SAL_CALL setSuccessor(const Reference < XConnectable >& aSuccessor)
- throw (RuntimeException);
- virtual Reference< XConnectable > SAL_CALL getSuccessor(void) throw (RuntimeException);
-
-public: // XServiceInfo
- OUString SAL_CALL getImplementationName() throw ();
- Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw ();
- sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw ();
-
-private:
- // helper methods
- void checkMarksAndFlush() throw( NotConnectedException, BufferSizeExceededException);
-
- Reference< XConnectable > m_succ;
- Reference< XConnectable > m_pred;
-
- Reference< XOutputStream > m_output;
- sal_Bool m_bValidStream;
-
- IRingBuffer *m_pBuffer;
- map<sal_Int32,sal_Int32,less< sal_Int32 > > m_mapMarks;
- sal_Int32 m_nCurrentPos;
- sal_Int32 m_nCurrentMark;
-
- Mutex m_mutex;
-};
-
-OMarkableOutputStream::OMarkableOutputStream( )
-{
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- m_pBuffer = new MemRingBuffer;
- m_nCurrentPos = 0;
- m_nCurrentMark = 0;
-}
-
-OMarkableOutputStream::~OMarkableOutputStream()
-{
- delete m_pBuffer;
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-
-// XOutputStream
-void OMarkableOutputStream::writeBytes(const Sequence< sal_Int8 >& aData)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- if( m_bValidStream ) {
- if( m_mapMarks.empty() && ( m_pBuffer->getSize() == 0 ) ) {
- // no mark and buffer active, simple write through
- m_output->writeBytes( aData );
- }
- else {
- MutexGuard guard( m_mutex );
- // new data must be buffered
- try
- {
- m_pBuffer->writeAt( m_nCurrentPos , aData );
- m_nCurrentPos += aData.getLength();
- }
- catch( IRingBuffer_OutOfBoundsException & )
- {
- throw BufferSizeExceededException();
- }
- catch( IRingBuffer_OutOfMemoryException & )
- {
- throw BufferSizeExceededException();
- }
- checkMarksAndFlush();
- }
- }
- else {
- throw NotConnectedException();
- }
-}
-
-void OMarkableOutputStream::flush(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- Reference< XOutputStream > output;
- {
- MutexGuard guard( m_mutex );
- output = m_output;
- }
-
- // Markable cannot flush buffered data, because the data may get rewritten,
- // however one can forward the flush to the chained stream to give it
- // a chance to write data buffered in the chained stream.
- if( output.is() )
- {
- output->flush();
- }
-}
-
-void OMarkableOutputStream::closeOutput(void)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- if( m_bValidStream ) {
- MutexGuard guard( m_mutex );
- // all marks must be cleared and all
-
- if( ! m_mapMarks.empty() )
- {
- m_mapMarks.clear();
- }
- m_nCurrentPos = m_pBuffer->getSize();
- checkMarksAndFlush();
-
- m_output->closeOutput();
-
- setOutputStream( Reference< XOutputStream > () );
- setPredecessor( Reference < XConnectable >() );
- setSuccessor( Reference< XConnectable > () );
- }
- else {
- throw NotConnectedException();
- }
-}
-
-
-sal_Int32 OMarkableOutputStream::createMark(void)
- throw ( IOException,
- RuntimeException)
-{
- MutexGuard guard( m_mutex );
- sal_Int32 nMark = m_nCurrentMark;
-
- m_mapMarks[nMark] = m_nCurrentPos;
-
- m_nCurrentMark ++;
- return nMark;
-}
-
-void OMarkableOutputStream::deleteMark(sal_Int32 Mark)
- throw( IOException,
- IllegalArgumentException,
- RuntimeException)
-{
- MutexGuard guard( m_mutex );
- map<sal_Int32,sal_Int32,less<sal_Int32> >::iterator ii = m_mapMarks.find( Mark );
-
- if( ii == m_mapMarks.end() ) {
- OUStringBuffer buf( 128 );
- buf.appendAscii( "MarkableOutputStream::deleteMark unknown mark (" );
- buf.append( Mark );
- buf.appendAscii( ")");
- throw IllegalArgumentException( buf.makeStringAndClear(), *this, 0);
- }
- else {
- m_mapMarks.erase( ii );
- checkMarksAndFlush();
- }
-}
-
-void OMarkableOutputStream::jumpToMark(sal_Int32 nMark)
- throw (IOException,
- IllegalArgumentException,
- RuntimeException)
-{
- MutexGuard guard( m_mutex );
- map<sal_Int32,sal_Int32,less<sal_Int32> >::iterator ii = m_mapMarks.find( nMark );
-
- if( ii == m_mapMarks.end() ) {
- OUStringBuffer buf( 128 );
- buf.appendAscii( "MarkableOutputStream::jumpToMark unknown mark (" );
- buf.append( nMark );
- buf.appendAscii( ")");
- throw IllegalArgumentException( buf.makeStringAndClear(), *this, 0);
- }
- else {
- m_nCurrentPos = (*ii).second;
- }
-}
-
-void OMarkableOutputStream::jumpToFurthest(void)
- throw (IOException,
- RuntimeException)
-{
- MutexGuard guard( m_mutex );
- m_nCurrentPos = m_pBuffer->getSize();
- checkMarksAndFlush();
-}
-
-sal_Int32 OMarkableOutputStream::offsetToMark(sal_Int32 nMark)
- throw (IOException,
- IllegalArgumentException,
- RuntimeException)
-{
-
- MutexGuard guard( m_mutex );
- map<sal_Int32,sal_Int32,less<sal_Int32> >::const_iterator ii = m_mapMarks.find( nMark );
-
- if( ii == m_mapMarks.end() )
- {
- OUStringBuffer buf( 128 );
- buf.appendAscii( "MarkableOutputStream::offsetToMark unknown mark (" );
- buf.append( nMark );
- buf.appendAscii( ")");
- throw IllegalArgumentException( buf.makeStringAndClear(), *this, 0);
- }
- return m_nCurrentPos - (*ii).second;
-}
-
-
-
-// XActiveDataSource2
-void OMarkableOutputStream::setOutputStream(const Reference < XOutputStream >& aStream)
- throw (RuntimeException)
-{
- if( m_output != aStream ) {
- m_output = aStream;
-
- Reference < XConnectable > succ( m_output , UNO_QUERY );
- setSuccessor( succ );
- }
- m_bValidStream = m_output.is();
-}
-
-Reference< XOutputStream > OMarkableOutputStream::getOutputStream(void) throw (RuntimeException)
-{
- return m_output;
-}
-
-
-
-void OMarkableOutputStream::setSuccessor( const Reference< XConnectable > &r )
- throw (RuntimeException)
-{
- /// if the references match, nothing needs to be done
- if( m_succ != r ) {
- /// store the reference for later use
- m_succ = r;
-
- if( m_succ.is() ) {
- m_succ->setPredecessor( Reference < XConnectable > (
- SAL_STATIC_CAST( XConnectable * , this ) ) );
- }
- }
-}
-Reference <XConnectable > OMarkableOutputStream::getSuccessor() throw (RuntimeException)
-{
- return m_succ;
-}
-
-
-// XDataSource
-void OMarkableOutputStream::setPredecessor( const Reference< XConnectable > &r )
- throw (RuntimeException)
-{
- if( r != m_pred ) {
- m_pred = r;
- if( m_pred.is() ) {
- m_pred->setSuccessor( Reference < XConnectable > (
- SAL_STATIC_CAST ( XConnectable * , this ) ) );
- }
- }
-}
-Reference < XConnectable > OMarkableOutputStream::getPredecessor() throw (RuntimeException)
-{
- return m_pred;
-}
-
-
-// private methods
-
-void OMarkableOutputStream::checkMarksAndFlush() throw( NotConnectedException,
- BufferSizeExceededException)
-{
- map<sal_Int32,sal_Int32,less<sal_Int32> >::iterator ii;
-
- // find the smallest mark
- sal_Int32 nNextFound = m_nCurrentPos;
- for( ii = m_mapMarks.begin() ; ii != m_mapMarks.end() ; ++ii ) {
- if( (*ii).second <= nNextFound ) {
- nNextFound = (*ii).second;
- }
- }
-
- if( nNextFound ) {
- // some data must be released !
- m_nCurrentPos -= nNextFound;
- for( ii = m_mapMarks.begin() ; ii != m_mapMarks.end() ; ++ii ) {
- (*ii).second -= nNextFound;
- }
-
- Sequence<sal_Int8> seq(nNextFound);
- m_pBuffer->readAt( 0 , seq , nNextFound );
- m_pBuffer->forgetFromStart( nNextFound );
-
- // now write data through to streams
- m_output->writeBytes( seq );
- }
- else {
- // nothing to do. There is a mark or the current cursor position, that prevents
- // releasing data !
- }
-}
-
-
-// XServiceInfo
-OUString OMarkableOutputStream::getImplementationName() throw ()
-{
- return OMarkableOutputStream_getImplementationName();
-}
-
-// XServiceInfo
-sal_Bool OMarkableOutputStream::supportsService(const OUString& ServiceName) throw ()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > OMarkableOutputStream::getSupportedServiceNames(void) throw ()
-{
- return OMarkableOutputStream_getSupportedServiceNames();
-}
-
-
-
-
-/*------------------------
-*
-* external binding
-*
-*------------------------*/
-Reference< XInterface > SAL_CALL OMarkableOutputStream_CreateInstance( const Reference < XComponentContext > & ) throw(Exception)
-{
- OMarkableOutputStream *p = new OMarkableOutputStream( );
-
- return Reference < XInterface > ( ( OWeakObject * ) p );
-}
-
-OUString OMarkableOutputStream_getImplementationName()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.io.stm.MarkableOutputStream" ));
-}
-
-Sequence<OUString> OMarkableOutputStream_getSupportedServiceNames(void)
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.MarkableOutputStream" ) );
-
- return aRet;
-}
-
-
-
-
-
-
-//------------------------------------------------
-//
-// XMarkableInputStream
-//
-//------------------------------------------------
-
-class OMarkableInputStream :
- public WeakImplHelper5
- <
- XInputStream,
- XActiveDataSink,
- XMarkableStream,
- XConnectable,
- XServiceInfo
- >
-{
-public:
- OMarkableInputStream( );
- ~OMarkableInputStream();
-
-
-public: // XInputStream
- virtual sal_Int32 SAL_CALL readBytes(Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException) ;
- virtual sal_Int32 SAL_CALL readSomeBytes(Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
- virtual void SAL_CALL skipBytes(sal_Int32 nBytesToSkip)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException);
-
- virtual sal_Int32 SAL_CALL available(void)
- throw ( NotConnectedException,
- RuntimeException);
- virtual void SAL_CALL closeInput(void) throw (NotConnectedException, RuntimeException);
-
-public: // XMarkable
- virtual sal_Int32 SAL_CALL createMark(void)
- throw (IOException, RuntimeException);
- virtual void SAL_CALL deleteMark(sal_Int32 Mark)
- throw (IOException, IllegalArgumentException, RuntimeException);
- virtual void SAL_CALL jumpToMark(sal_Int32 nMark)
- throw (IOException, IllegalArgumentException, RuntimeException);
- virtual void SAL_CALL jumpToFurthest(void)
- throw (IOException, RuntimeException);
- virtual sal_Int32 SAL_CALL offsetToMark(sal_Int32 nMark)
- throw (IOException, IllegalArgumentException,RuntimeException);
-
-public: // XActiveDataSink
- virtual void SAL_CALL setInputStream(const Reference < XInputStream > & aStream)
- throw (RuntimeException);
- virtual Reference < XInputStream > SAL_CALL getInputStream(void)
- throw (RuntimeException);
-
-public: // XConnectable
- virtual void SAL_CALL setPredecessor(const Reference < XConnectable > & aPredecessor)
- throw (RuntimeException);
- virtual Reference < XConnectable > SAL_CALL getPredecessor(void)
- throw (RuntimeException);
- virtual void SAL_CALL setSuccessor(const Reference < XConnectable > & aSuccessor)
- throw (RuntimeException);
- virtual Reference < XConnectable > SAL_CALL getSuccessor(void) throw (RuntimeException);
-
-public: // XServiceInfo
- OUString SAL_CALL getImplementationName() throw ();
- Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw ();
- sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw ();
-
-private:
- void checkMarksAndFlush();
-
- Reference < XConnectable > m_succ;
- Reference < XConnectable > m_pred;
-
- Reference< XInputStream > m_input;
- sal_Bool m_bValidStream;
-
- IRingBuffer *m_pBuffer;
- map<sal_Int32,sal_Int32,less< sal_Int32 > > m_mapMarks;
- sal_Int32 m_nCurrentPos;
- sal_Int32 m_nCurrentMark;
-
- Mutex m_mutex;
-};
-
-OMarkableInputStream::OMarkableInputStream()
-{
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- m_nCurrentPos = 0;
- m_nCurrentMark = 0;
- m_pBuffer = new MemRingBuffer;
-}
-
-
-OMarkableInputStream::~OMarkableInputStream()
-{
- if( m_pBuffer ) {
- delete m_pBuffer;
- }
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-
-
-
-// XInputStream
-
-sal_Int32 OMarkableInputStream::readBytes(Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- sal_Int32 nBytesRead;
-
- if( m_bValidStream ) {
- MutexGuard guard( m_mutex );
- if( m_mapMarks.empty() && ! m_pBuffer->getSize() ) {
- // normal read !
- nBytesRead = m_input->readBytes( aData, nBytesToRead );
- }
- else {
- // read from buffer
- sal_Int32 nRead;
-
- // read enough bytes into buffer
- if( m_pBuffer->getSize() - m_nCurrentPos < nBytesToRead ) {
- sal_Int32 nToRead = nBytesToRead - ( m_pBuffer->getSize() - m_nCurrentPos );
- nRead = m_input->readBytes( aData , nToRead );
-
- OSL_ASSERT( aData.getLength() == nRead );
-
- try
- {
- m_pBuffer->writeAt( m_pBuffer->getSize() , aData );
- }
- catch( IRingBuffer_OutOfMemoryException & ) {
- throw BufferSizeExceededException();
- }
- catch( IRingBuffer_OutOfBoundsException & ) {
- throw BufferSizeExceededException();
- }
-
- if( nRead < nToRead ) {
- nBytesToRead = nBytesToRead - (nToRead-nRead);
- }
- }
-
- OSL_ASSERT( m_pBuffer->getSize() - m_nCurrentPos >= nBytesToRead );
-
- m_pBuffer->readAt( m_nCurrentPos , aData , nBytesToRead );
-
- m_nCurrentPos += nBytesToRead;
- nBytesRead = nBytesToRead;
- }
- }
- else {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("MarkableInputStream::readBytes NotConnectedException")) ,
- *this );
- }
- return nBytesRead;
-}
-
-
-sal_Int32 OMarkableInputStream::readSomeBytes(Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
-
- sal_Int32 nBytesRead;
- if( m_bValidStream ) {
- MutexGuard guard( m_mutex );
- if( m_mapMarks.empty() && ! m_pBuffer->getSize() ) {
- // normal read !
- nBytesRead = m_input->readSomeBytes( aData, nMaxBytesToRead );
- }
- else {
- // read from buffer
- sal_Int32 nRead = 0;
- sal_Int32 nInBuffer = m_pBuffer->getSize() - m_nCurrentPos;
- sal_Int32 nAdditionalBytesToRead = Min(nMaxBytesToRead-nInBuffer,m_input->available());
- nAdditionalBytesToRead = Max(0 , nAdditionalBytesToRead );
-
- // read enough bytes into buffer
- if( 0 == nInBuffer ) {
- nRead = m_input->readSomeBytes( aData , nMaxBytesToRead );
- }
- else if( nAdditionalBytesToRead ) {
- nRead = m_input->readBytes( aData , nAdditionalBytesToRead );
- }
-
- if( nRead ) {
- aData.realloc( nRead );
- try
- {
- m_pBuffer->writeAt( m_pBuffer->getSize() , aData );
- }
- catch( IRingBuffer_OutOfMemoryException & )
- {
- throw BufferSizeExceededException();
- }
- catch( IRingBuffer_OutOfBoundsException & )
- {
- throw BufferSizeExceededException();
- }
- }
-
- nBytesRead = Min( nMaxBytesToRead , nInBuffer + nRead );
-
- // now take everything from buffer !
- m_pBuffer->readAt( m_nCurrentPos , aData , nBytesRead );
-
- m_nCurrentPos += nBytesRead;
- }
- }
- else
- {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("MarkableInputStream::readSomeBytes NotConnectedException")) ,
- *this );
- }
- return nBytesRead;
-
-
-}
-
-
-void OMarkableInputStream::skipBytes(sal_Int32 nBytesToSkip)
- throw ( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- if ( nBytesToSkip < 0 )
- throw BufferSizeExceededException(
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("precondition not met: XInputStream::skipBytes: non-negative integer required!")),
- *this
- );
-
- // this method is blocking
- Sequence<sal_Int8> seqDummy( nBytesToSkip );
- readBytes( seqDummy , nBytesToSkip );
-}
-
-sal_Int32 OMarkableInputStream::available(void) throw (NotConnectedException, RuntimeException)
-{
- sal_Int32 nAvail;
- if( m_bValidStream ) {
- MutexGuard guard( m_mutex );
- nAvail = m_input->available() + ( m_pBuffer->getSize() - m_nCurrentPos );
- }
- else
- {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "MarkableInputStream::available NotConnectedException" ) ) ,
- *this );
- }
-
- return nAvail;
-}
-
-
-void OMarkableInputStream::closeInput(void) throw (NotConnectedException, RuntimeException)
-{
- if( m_bValidStream ) {
- MutexGuard guard( m_mutex );
-
- m_input->closeInput();
-
- setInputStream( Reference< XInputStream > () );
- setPredecessor( Reference< XConnectable > () );
- setSuccessor( Reference< XConnectable >() );
-
- delete m_pBuffer;
- m_pBuffer = 0;
- m_nCurrentPos = 0;
- m_nCurrentMark = 0;
- }
- else {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "MarkableInputStream::closeInput NotConnectedException" ) ) ,
- *this );
- }
-}
-
-// XMarkable
-
-sal_Int32 OMarkableInputStream::createMark(void) throw (IOException, RuntimeException)
-{
- MutexGuard guard( m_mutex );
- sal_Int32 nMark = m_nCurrentMark;
-
- m_mapMarks[nMark] = m_nCurrentPos;
-
- m_nCurrentMark ++;
- return nMark;
-}
-
-void OMarkableInputStream::deleteMark(sal_Int32 Mark) throw (IOException, IllegalArgumentException, RuntimeException)
-{
- MutexGuard guard( m_mutex );
- map<sal_Int32,sal_Int32,less<sal_Int32> >::iterator ii = m_mapMarks.find( Mark );
-
- if( ii == m_mapMarks.end() ) {
- OUStringBuffer buf( 128 );
- buf.appendAscii( "MarkableInputStream::deleteMark unknown mark (" );
- buf.append( Mark );
- buf.appendAscii( ")");
- throw IllegalArgumentException( buf.makeStringAndClear(), *this , 0 );
- }
- else {
- m_mapMarks.erase( ii );
- checkMarksAndFlush();
- }
-}
-
-void OMarkableInputStream::jumpToMark(sal_Int32 nMark)
- throw (IOException,
- IllegalArgumentException,
- RuntimeException)
-{
- MutexGuard guard( m_mutex );
- map<sal_Int32,sal_Int32,less<sal_Int32> >::iterator ii = m_mapMarks.find( nMark );
-
- if( ii == m_mapMarks.end() )
- {
- OUStringBuffer buf( 128 );
- buf.appendAscii( "MarkableInputStream::jumpToMark unknown mark (" );
- buf.append( nMark );
- buf.appendAscii( ")");
- throw IllegalArgumentException( buf.makeStringAndClear(), *this , 0 );
- }
- else
- {
- m_nCurrentPos = (*ii).second;
- }
-}
-
-void OMarkableInputStream::jumpToFurthest(void) throw (IOException, RuntimeException)
-{
- MutexGuard guard( m_mutex );
- m_nCurrentPos = m_pBuffer->getSize();
- checkMarksAndFlush();
-}
-
-sal_Int32 OMarkableInputStream::offsetToMark(sal_Int32 nMark)
- throw (IOException,
- IllegalArgumentException,
- RuntimeException)
-{
- MutexGuard guard( m_mutex );
- map<sal_Int32,sal_Int32,less<sal_Int32> >::const_iterator ii = m_mapMarks.find( nMark );
-
- if( ii == m_mapMarks.end() )
- {
- OUStringBuffer buf( 128 );
- buf.appendAscii( "MarkableInputStream::offsetToMark unknown mark (" );
- buf.append( nMark );
- buf.appendAscii( ")");
- throw IllegalArgumentException( buf.makeStringAndClear(), *this , 0 );
- }
- return m_nCurrentPos - (*ii).second;
-}
-
-
-
-
-
-
-
-// XActiveDataSource
-void OMarkableInputStream::setInputStream(const Reference< XInputStream > & aStream)
- throw (RuntimeException)
-{
-
- if( m_input != aStream ) {
- m_input = aStream;
-
- Reference < XConnectable > pred( m_input , UNO_QUERY );
- setPredecessor( pred );
- }
-
- m_bValidStream = m_input.is();
-
-}
-
-Reference< XInputStream > OMarkableInputStream::getInputStream(void) throw (RuntimeException)
-{
- return m_input;
-}
-
-
-
-// XDataSink
-void OMarkableInputStream::setSuccessor( const Reference< XConnectable > &r )
- throw (RuntimeException)
-{
- /// if the references match, nothing needs to be done
- if( m_succ != r ) {
- /// store the reference for later use
- m_succ = r;
-
- if( m_succ.is() ) {
- /// set this instance as the sink !
- m_succ->setPredecessor( Reference< XConnectable > (
- SAL_STATIC_CAST( XConnectable * , this ) ) );
- }
- }
-}
-
-Reference < XConnectable > OMarkableInputStream::getSuccessor() throw (RuntimeException)
-{
- return m_succ;
-}
-
-
-// XDataSource
-void OMarkableInputStream::setPredecessor( const Reference < XConnectable > &r )
- throw (RuntimeException)
-{
- if( r != m_pred ) {
- m_pred = r;
- if( m_pred.is() ) {
- m_pred->setSuccessor( Reference< XConnectable > (
- SAL_STATIC_CAST( XConnectable * , this ) ) );
- }
- }
-}
-Reference< XConnectable > OMarkableInputStream::getPredecessor() throw (RuntimeException)
-{
- return m_pred;
-}
-
-
-
-
-void OMarkableInputStream::checkMarksAndFlush()
-{
- map<sal_Int32,sal_Int32,less<sal_Int32> >::iterator ii;
-
- // find the smallest mark
- sal_Int32 nNextFound = m_nCurrentPos;
- for( ii = m_mapMarks.begin() ; ii != m_mapMarks.end() ; ++ii ) {
- if( (*ii).second <= nNextFound ) {
- nNextFound = (*ii).second;
- }
- }
-
- if( nNextFound ) {
- // some data must be released !
- m_nCurrentPos -= nNextFound;
- for( ii = m_mapMarks.begin() ; ii != m_mapMarks.end() ; ++ii ) {
- (*ii).second -= nNextFound;
- }
-
- m_pBuffer->forgetFromStart( nNextFound );
-
- }
- else {
- // nothing to do. There is a mark or the current cursor position, that prevents
- // releasing data !
- }
-}
-
-
-
-// XServiceInfo
-OUString OMarkableInputStream::getImplementationName() throw ()
-{
- return OMarkableInputStream_getImplementationName();
-}
-
-// XServiceInfo
-sal_Bool OMarkableInputStream::supportsService(const OUString& ServiceName) throw ()
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > OMarkableInputStream::getSupportedServiceNames(void) throw ()
-{
- return OMarkableInputStream_getSupportedServiceNames();
-}
-
-
-/*------------------------
-*
-* external binding
-*
-*------------------------*/
-Reference < XInterface > SAL_CALL OMarkableInputStream_CreateInstance(
- const Reference < XComponentContext > & ) throw(Exception)
-{
- OMarkableInputStream *p = new OMarkableInputStream( );
- return Reference< XInterface > ( (OWeakObject * ) p );
-}
-
-OUString OMarkableInputStream_getImplementationName()
-{
- return OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.io.stm.MarkableInputStream" ));
-}
-
-Sequence<OUString> OMarkableInputStream_getSupportedServiceNames(void)
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.MarkableInputStream" ));
- return aRet;
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/stm/opipe.cxx b/io/source/stm/opipe.cxx
deleted file mode 100644
index fab16965f..000000000
--- a/io/source/stm/opipe.cxx
+++ /dev/null
@@ -1,481 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-// streams
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XConnectable.hpp>
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include <cppuhelper/factory.hxx>
-
-#include <cppuhelper/implbase4.hxx> // OWeakObject
-
-#include <osl/conditn.hxx>
-#include <osl/mutex.hxx>
-
-#include <limits>
-#include <string.h>
-
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::lang;
-
-#include "factreg.hxx"
-#include "streamhelper.hxx"
-
-// Implementation and service names
-#define IMPLEMENTATION_NAME "com.sun.star.comp.io.stm.Pipe"
-#define SERVICE_NAME "com.sun.star.io.Pipe"
-
-namespace io_stm{
-
-class OPipeImpl :
- public WeakImplHelper4< XInputStream , XOutputStream , XConnectable , XServiceInfo >
-{
-public:
- OPipeImpl( );
- ~OPipeImpl();
-
-public: // XInputStream
- virtual sal_Int32 SAL_CALL readBytes(Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException );
- virtual sal_Int32 SAL_CALL readSomeBytes(Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException );
- virtual void SAL_CALL skipBytes(sal_Int32 nBytesToSkip)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException );
- virtual sal_Int32 SAL_CALL available(void)
- throw( NotConnectedException,
- RuntimeException );
- virtual void SAL_CALL closeInput(void)
- throw( NotConnectedException,
- RuntimeException );
-
-public: // XOutputStream
-
- virtual void SAL_CALL writeBytes(const Sequence< sal_Int8 >& aData)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException );
- virtual void SAL_CALL flush(void)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException );
- virtual void SAL_CALL closeOutput(void)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException );
-
-public: // XConnectable
- virtual void SAL_CALL setPredecessor(const Reference< XConnectable >& aPredecessor)
- throw( RuntimeException );
- virtual Reference< XConnectable > SAL_CALL getPredecessor(void) throw( RuntimeException );
- virtual void SAL_CALL setSuccessor(const Reference < XConnectable > & aSuccessor)
- throw( RuntimeException );
- virtual Reference < XConnectable > SAL_CALL getSuccessor(void) throw( RuntimeException ) ;
-
-
-public: // XServiceInfo
- OUString SAL_CALL getImplementationName() throw( );
- Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw( );
- sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( );
-
-private:
-
- Reference < XConnectable > m_succ;
- Reference < XConnectable > m_pred;
-
- sal_Int32 m_nBytesToSkip;
-
- sal_Int8 *m_p;
-
- sal_Bool m_bOutputStreamClosed;
- sal_Bool m_bInputStreamClosed;
-
- oslCondition m_conditionBytesAvail;
- Mutex m_mutexAccess;
- I_FIFO *m_pFIFO;
-};
-
-
-
-OPipeImpl::OPipeImpl()
-{
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
- m_nBytesToSkip = 0;
-
- m_bOutputStreamClosed = sal_False;
- m_bInputStreamClosed = sal_False;
-
- m_pFIFO = new MemFIFO;
- m_conditionBytesAvail = osl_createCondition();
-}
-
-OPipeImpl::~OPipeImpl()
-{
- osl_destroyCondition( m_conditionBytesAvail );
- delete m_pFIFO;
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-
-sal_Int32 OPipeImpl::readBytes(Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead)
- throw( NotConnectedException, BufferSizeExceededException,RuntimeException )
-{
- while( sal_True )
- {
- { // start guarded section
- MutexGuard guard( m_mutexAccess );
- if( m_bInputStreamClosed )
- {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::readBytes NotConnectedException" )),
- *this );
- }
- sal_Int32 nOccupiedBufferLen = m_pFIFO->getSize();
-
- if( m_bOutputStreamClosed && nBytesToRead > nOccupiedBufferLen )
- {
- nBytesToRead = nOccupiedBufferLen;
- }
-
- if( nOccupiedBufferLen < nBytesToRead )
- {
- // wait outside guarded section
- osl_resetCondition( m_conditionBytesAvail );
- }
- else {
- // necessary bytes are available
- m_pFIFO->read( aData , nBytesToRead );
- return nBytesToRead;
- }
- } // end guarded section
-
- // wait for new data outside guarded section!
- osl_waitCondition( m_conditionBytesAvail , 0 );
- }
-}
-
-
-sal_Int32 OPipeImpl::readSomeBytes(Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException )
-{
- while( sal_True ) {
- {
- MutexGuard guard( m_mutexAccess );
- if( m_bInputStreamClosed )
- {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::readSomeBytes NotConnectedException" )),
- *this );
- }
- if( m_pFIFO->getSize() )
- {
- sal_Int32 nSize = Min( nMaxBytesToRead , m_pFIFO->getSize() );
- aData.realloc( nSize );
- m_pFIFO->read( aData , nSize );
- return nSize;
- }
-
- if( m_bOutputStreamClosed )
- {
- // no bytes in buffer anymore
- return 0;
- }
- }
-
- osl_waitCondition( m_conditionBytesAvail , 0 );
- }
-}
-
-
-void OPipeImpl::skipBytes(sal_Int32 nBytesToSkip)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException )
-{
- MutexGuard guard( m_mutexAccess );
- if( m_bInputStreamClosed )
- {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::skipBytes NotConnectedException" ) ),
- *this );
- }
-
- if( nBytesToSkip < 0
- || (nBytesToSkip
- > std::numeric_limits< sal_Int32 >::max() - m_nBytesToSkip) )
- {
- throw BufferSizeExceededException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::skipBytes BufferSizeExceededException" )),
- *this );
- }
- m_nBytesToSkip += nBytesToSkip;
-
- nBytesToSkip = Min( m_pFIFO->getSize() , m_nBytesToSkip );
- m_pFIFO->skip( nBytesToSkip );
- m_nBytesToSkip -= nBytesToSkip;
-}
-
-
-sal_Int32 OPipeImpl::available(void)
- throw( NotConnectedException,
- RuntimeException )
- {
- MutexGuard guard( m_mutexAccess );
- if( m_bInputStreamClosed )
- {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::available NotConnectedException" ) ),
- *this );
- }
- return m_pFIFO->getSize();
-}
-
-void OPipeImpl::closeInput(void)
- throw( NotConnectedException,
- RuntimeException)
-{
- MutexGuard guard( m_mutexAccess );
-
- m_bInputStreamClosed = sal_True;
-
- delete m_pFIFO;
- m_pFIFO = 0;
-
- // readBytes may throw an exception
- osl_setCondition( m_conditionBytesAvail );
-
- setSuccessor( Reference< XConnectable > () );
- return;
-}
-
-
-void OPipeImpl::writeBytes(const Sequence< sal_Int8 >& aData)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- MutexGuard guard( m_mutexAccess );
-
- if( m_bOutputStreamClosed )
- {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::writeBytes NotConnectedException (outputstream)" )),
- *this );
- }
-
- if( m_bInputStreamClosed )
- {
- throw NotConnectedException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::writeBytes NotConnectedException (inputstream)" )),
- *this );
- }
-
- // check skipping
- sal_Int32 nLen = aData.getLength();
- if( m_nBytesToSkip && m_nBytesToSkip >= nLen ) {
- // all must be skipped - forget whole call
- m_nBytesToSkip -= nLen;
- return;
- }
-
- // adjust buffersize if necessary
-
- try
- {
- if( m_nBytesToSkip )
- {
- Sequence< sal_Int8 > seqCopy( nLen - m_nBytesToSkip );
- memcpy( seqCopy.getArray() , &( aData.getConstArray()[m_nBytesToSkip] ) , nLen-m_nBytesToSkip );
- m_pFIFO->write( seqCopy );
- }
- else
- {
- m_pFIFO->write( aData );
- }
- m_nBytesToSkip = 0;
- }
- catch ( I_FIFO_OutOfBoundsException & )
- {
- throw BufferSizeExceededException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::writeBytes BufferSizeExceededException" )),
- *this );
- }
- catch ( I_FIFO_OutOfMemoryException & )
- {
- throw BufferSizeExceededException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pipe::writeBytes BufferSizeExceededException" )),
- *this );
- }
-
- // readBytes may check again if enough bytes are available
- osl_setCondition( m_conditionBytesAvail );
-}
-
-
-void OPipeImpl::flush(void)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- // nothing to do for a pipe
- return;
-}
-
-void OPipeImpl::closeOutput(void)
- throw( NotConnectedException,
- BufferSizeExceededException,
- RuntimeException)
-{
- MutexGuard guard( m_mutexAccess );
-
- m_bOutputStreamClosed = sal_True;
- osl_setCondition( m_conditionBytesAvail );
- setPredecessor( Reference < XConnectable > () );
- return;
-}
-
-
-void OPipeImpl::setSuccessor( const Reference < XConnectable > &r )
- throw( RuntimeException )
-{
- /// if the references match, nothing needs to be done
- if( m_succ != r ) {
- /// store the reference for later use
- m_succ = r;
-
- if( m_succ.is() )
- {
- m_succ->setPredecessor(
- Reference< XConnectable > ( SAL_STATIC_CAST( XConnectable * , this ) ) );
- }
- }
-}
-
-Reference < XConnectable > OPipeImpl::getSuccessor() throw( RuntimeException )
-{
- return m_succ;
-}
-
-
-// XDataSource
-void OPipeImpl::setPredecessor( const Reference < XConnectable > &r )
- throw( RuntimeException )
-{
- if( r != m_pred ) {
- m_pred = r;
- if( m_pred.is() ) {
- m_pred->setSuccessor(
- Reference < XConnectable > ( SAL_STATIC_CAST( XConnectable * , this ) ) );
- }
- }
-}
-
-Reference < XConnectable > OPipeImpl::getPredecessor() throw( RuntimeException )
-{
- return m_pred;
-}
-
-
-
-
-// XServiceInfo
-OUString OPipeImpl::getImplementationName() throw( )
-{
- return OPipeImpl_getImplementationName();
-}
-
-// XServiceInfo
-sal_Bool OPipeImpl::supportsService(const OUString& ServiceName) throw( )
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > OPipeImpl::getSupportedServiceNames(void) throw( )
-{
- return OPipeImpl_getSupportedServiceNames();
-}
-
-
-
-
-
-/* implementation functions
-*
-*
-*/
-
-
-Reference < XInterface > SAL_CALL OPipeImpl_CreateInstance(
- const Reference < XComponentContext > & ) throw(Exception)
-{
- OPipeImpl *p = new OPipeImpl;
-
- return Reference < XInterface > ( SAL_STATIC_CAST( OWeakObject * , p ) );
-}
-
-
-OUString OPipeImpl_getImplementationName()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM ( IMPLEMENTATION_NAME ) );
-}
-
-Sequence<OUString> OPipeImpl_getSupportedServiceNames(void)
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICE_NAME ));
- return aRet;
-}
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/stm/opump.cxx b/io/source/stm/opump.cxx
deleted file mode 100644
index 84ef394bb..000000000
--- a/io/source/stm/opump.cxx
+++ /dev/null
@@ -1,509 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-#include <stdio.h>
-
-#include <osl/diagnose.h>
-
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XActiveDataSink.hpp>
-#include <com/sun/star/io/XActiveDataControl.hpp>
-#include <com/sun/star/io/XConnectable.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-#include <uno/dispatcher.h>
-#include <uno/mapping.hxx>
-#include <cppuhelper/implbase5.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
-#include <osl/mutex.hxx>
-#include <osl/thread.h>
-
-
-using namespace osl;
-using namespace std;
-using namespace cppu;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-using namespace com::sun::star::io;
-
-using ::rtl::OUString;
-using ::rtl::OUStringToOString;
-using ::rtl::OString;
-
-#include "factreg.hxx"
-
-namespace io_stm {
-
- class Pump : public WeakImplHelper5<
- XActiveDataSource, XActiveDataSink, XActiveDataControl, XConnectable, XServiceInfo >
- {
- Mutex m_aMutex;
- oslThread m_aThread;
-
- Reference< XConnectable > m_xPred;
- Reference< XConnectable > m_xSucc;
- Reference< XInputStream > m_xInput;
- Reference< XOutputStream > m_xOutput;
- OInterfaceContainerHelper m_cnt;
- sal_Bool m_closeFired;
-
- void run();
- static void static_run( void* pObject );
-
- void close();
- void fireClose();
- void fireStarted();
- void fireTerminated();
- void fireError( const Any &a );
-
- public:
- Pump();
- virtual ~Pump();
-
- // XActiveDataSource
- virtual void SAL_CALL setOutputStream( const Reference< ::com::sun::star::io::XOutputStream >& xOutput ) throw();
- virtual Reference< ::com::sun::star::io::XOutputStream > SAL_CALL getOutputStream() throw();
-
- // XActiveDataSink
- virtual void SAL_CALL setInputStream( const Reference< ::com::sun::star::io::XInputStream >& xStream ) throw();
- virtual Reference< ::com::sun::star::io::XInputStream > SAL_CALL getInputStream() throw();
-
- // XActiveDataControl
- virtual void SAL_CALL addListener( const Reference< ::com::sun::star::io::XStreamListener >& xListener ) throw();
- virtual void SAL_CALL removeListener( const Reference< ::com::sun::star::io::XStreamListener >& xListener ) throw();
- virtual void SAL_CALL start() throw( RuntimeException );
- virtual void SAL_CALL terminate() throw();
-
- // XConnectable
- virtual void SAL_CALL setPredecessor( const Reference< ::com::sun::star::io::XConnectable >& xPred ) throw();
- virtual Reference< ::com::sun::star::io::XConnectable > SAL_CALL getPredecessor() throw();
- virtual void SAL_CALL setSuccessor( const Reference< ::com::sun::star::io::XConnectable >& xSucc ) throw();
- virtual Reference< ::com::sun::star::io::XConnectable > SAL_CALL getSuccessor() throw();
-
- public: // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw( );
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw( );
- virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( );
- };
-
-Pump::Pump() : m_aThread( 0 ),
- m_cnt( m_aMutex ),
- m_closeFired( sal_False )
-{
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
-}
-
-Pump::~Pump()
-{
- // exit gracefully
- if( m_aThread )
- {
- osl_joinWithThread( m_aThread );
- osl_destroyThread( m_aThread );
- }
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
-}
-
-void Pump::fireError( const Any & exception )
-{
- OInterfaceIteratorHelper iter( m_cnt );
- while( iter.hasMoreElements() )
- {
- try
- {
- static_cast< XStreamListener * > ( iter.next() )->error( exception );
- }
- catch ( RuntimeException &e )
- {
- OString sMessage = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- OSL_ENSURE( !"com.sun.star.comp.stoc.Pump: unexpected exception during calling listeners", sMessage.getStr() );
- }
- }
-}
-
-void Pump::fireClose()
-{
- sal_Bool bFire = sal_False;
- {
- MutexGuard guard( m_aMutex );
- if( ! m_closeFired )
- {
- m_closeFired = sal_True;
- bFire = sal_True;
- }
- }
-
- if( bFire )
- {
- OInterfaceIteratorHelper iter( m_cnt );
- while( iter.hasMoreElements() )
- {
- try
- {
- static_cast< XStreamListener * > ( iter.next() )->closed( );
- }
- catch ( RuntimeException &e )
- {
- OString sMessage = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- OSL_ENSURE( !"com.sun.star.comp.stoc.Pump: unexpected exception during calling listeners", sMessage.getStr() );
- }
- }
- }
-}
-
-void Pump::fireStarted()
-{
- OInterfaceIteratorHelper iter( m_cnt );
- while( iter.hasMoreElements() )
- {
- try
- {
- static_cast< XStreamListener * > ( iter.next() )->started( );
- }
- catch ( RuntimeException &e )
- {
- OString sMessage = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- OSL_ENSURE( !"com.sun.star.comp.stoc.Pump: unexpected exception during calling listeners", sMessage.getStr() );
- }
- }
-}
-
-void Pump::fireTerminated()
-{
- OInterfaceIteratorHelper iter( m_cnt );
- while( iter.hasMoreElements() )
- {
- try
- {
- static_cast< XStreamListener * > ( iter.next() )->terminated();
- }
- catch ( RuntimeException &e )
- {
- OString sMessage = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- OSL_ENSURE( !"com.sun.star.comp.stoc.Pump: unexpected exception during calling listeners", sMessage.getStr() );
- }
- }
-}
-
-
-
-void Pump::close()
-{
- // close streams and release references
- Reference< XInputStream > rInput;
- Reference< XOutputStream > rOutput;
- {
- MutexGuard guard( m_aMutex );
- rInput = m_xInput;
- m_xInput.clear();
-
- rOutput = m_xOutput;
- m_xOutput.clear();
- m_xSucc.clear();
- m_xPred.clear();
- }
- if( rInput.is() )
- {
- try
- {
- rInput->closeInput();
- }
- catch( Exception & )
- {
- // go down calm
- }
- }
- if( rOutput.is() )
- {
- try
- {
- rOutput->closeOutput();
- }
- catch( Exception & )
- {
- // go down calm
- }
- }
-}
-
-void Pump::static_run( void* pObject )
-{
- ((Pump*)pObject)->run();
- ((Pump*)pObject)->release();
-}
-
-void Pump::run()
-{
- try
- {
- fireStarted();
- try
- {
- Reference< XInputStream > rInput;
- Reference< XOutputStream > rOutput;
- {
- Guard< Mutex > aGuard( m_aMutex );
- rInput = m_xInput;
- rOutput = m_xOutput;
- }
-
- if( ! rInput.is() )
- {
- NotConnectedException exception(
- OUString(RTL_CONSTASCII_USTRINGPARAM("no input stream set")) , Reference<XInterface>((OWeakObject*)this) );
- throw exception;
- }
- Sequence< sal_Int8 > aData;
- while( rInput->readSomeBytes( aData, 65536 ) )
- {
- if( ! rOutput.is() )
- {
- NotConnectedException exception(
- OUString(RTL_CONSTASCII_USTRINGPARAM("no output stream set")) , Reference<XInterface>( (OWeakObject*)this) );
- throw exception;
- }
- rOutput->writeBytes( aData );
- osl_yieldThread();
- }
- }
- catch ( IOException & e )
- {
- fireError( makeAny( e ) );
- }
- catch ( RuntimeException & e )
- {
- fireError( makeAny( e ) );
- }
- catch ( Exception & e )
- {
- fireError( makeAny( e ) );
- }
-
- close();
- fireClose();
- }
- catch ( com::sun::star::uno::Exception &e )
- {
- // we are the last on the stack.
- // this is to avoid crashing the program, when e.g. a bridge crashes
- OString sMessage = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- OSL_ENSURE( !"com.sun.star.comp.stoc.Pump: unexpected exception", sMessage.getStr() );
- }
-}
-
-// ------------------------------------------------------------
-
-/*
- * XConnectable
- */
-
-void Pump::setPredecessor( const Reference< XConnectable >& xPred ) throw()
-{
- Guard< Mutex > aGuard( m_aMutex );
- m_xPred = xPred;
-}
-
-// ------------------------------------------------------------
-
-Reference< XConnectable > Pump::getPredecessor() throw()
-{
- Guard< Mutex > aGuard( m_aMutex );
- return m_xPred;
-}
-
-// ------------------------------------------------------------
-
-void Pump::setSuccessor( const Reference< XConnectable >& xSucc ) throw()
-{
- Guard< Mutex > aGuard( m_aMutex );
- m_xSucc = xSucc;
-}
-
-// ------------------------------------------------------------
-
-Reference< XConnectable > Pump::getSuccessor() throw()
-{
- Guard< Mutex > aGuard( m_aMutex );
- return m_xSucc;
-}
-
-// -----------------------------------------------------------------
-
-/*
- * XActiveDataControl
- */
-
-void Pump::addListener( const Reference< XStreamListener >& xListener ) throw()
-{
- m_cnt.addInterface( xListener );
-}
-
-// ------------------------------------------------------------
-
-void Pump::removeListener( const Reference< XStreamListener >& xListener ) throw()
-{
- m_cnt.removeInterface( xListener );
-}
-
-// ------------------------------------------------------------
-
-void Pump::start() throw( RuntimeException )
-{
- Guard< Mutex > aGuard( m_aMutex );
- m_aThread = osl_createSuspendedThread((oslWorkerFunction)Pump::static_run,this);
- if( m_aThread )
- {
- // will be released by OPump::static_run
- acquire();
- osl_resumeThread( m_aThread );
- }
- else
- {
- throw RuntimeException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Pump::start Couldn't create worker thread" )),
- *this);
- }
-}
-
-// ------------------------------------------------------------
-
-void Pump::terminate() throw()
-{
- close();
-
- // wait for the worker to die
- if( m_aThread )
- osl_joinWithThread( m_aThread );
-
- fireTerminated();
- fireClose();
-}
-
-// ------------------------------------------------------------
-
-/*
- * XActiveDataSink
- */
-
-void Pump::setInputStream( const Reference< XInputStream >& xStream ) throw()
-{
- Guard< Mutex > aGuard( m_aMutex );
- m_xInput = xStream;
- Reference< XConnectable > xConnect( xStream, UNO_QUERY );
- if( xConnect.is() )
- xConnect->setSuccessor( this );
- // data transfer starts in XActiveDataControl::start
-}
-
-// ------------------------------------------------------------
-
-Reference< XInputStream > Pump::getInputStream() throw()
-{
- Guard< Mutex > aGuard( m_aMutex );
- return m_xInput;
-}
-
-// ------------------------------------------------------------
-
-/*
- * XActiveDataSource
- */
-
-void Pump::setOutputStream( const Reference< XOutputStream >& xOut ) throw()
-{
- Guard< Mutex > aGuard( m_aMutex );
- m_xOutput = xOut;
- Reference< XConnectable > xConnect( xOut, UNO_QUERY );
- if( xConnect.is() )
- xConnect->setPredecessor( this );
- // data transfer starts in XActiveDataControl::start
-}
-
-// ------------------------------------------------------------
-
-Reference< XOutputStream > Pump::getOutputStream() throw()
-{
- Guard< Mutex > aGuard( m_aMutex );
- return m_xOutput;
-}
-
-
-// XServiceInfo
-OUString Pump::getImplementationName() throw( )
-{
- return OPumpImpl_getImplementationName();
-}
-
-// XServiceInfo
-sal_Bool Pump::supportsService(const OUString& ServiceName) throw( )
-{
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getConstArray();
-
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
-
- return sal_False;
-}
-
-// XServiceInfo
-Sequence< OUString > Pump::getSupportedServiceNames(void) throw( )
-{
- return OPumpImpl_getSupportedServiceNames();
-}
-
-
-Reference< XInterface > SAL_CALL OPumpImpl_CreateInstance( const Reference< XComponentContext > & ) throw (Exception)
-{
- return Reference< XInterface >( *new Pump );
-}
-
-OUString OPumpImpl_getImplementationName()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.io.Pump") );
-}
-
-Sequence<OUString> OPumpImpl_getSupportedServiceNames(void)
-{
- OUString s( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.Pump" ) );
- Sequence< OUString > seq( &s , 1 );
- return seq;
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/stm/stm.xml b/io/source/stm/stm.xml
deleted file mode 100644
index cf31de622..000000000
--- a/io/source/stm/stm.xml
+++ /dev/null
@@ -1,278 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
- <module-name> streams.uno </module-name>
-
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.stm.Pipe </name>
- <description>
- This component provides ...
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.io.Pipe </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.io.XObjectInputStream </type>
- <type> com.sun.star.io.XObjectOutputStream </type>
- <type> com.sun.star.io.XActiveDataSource </type>
- <type> com.sun.star.io.XActiveDataSink </type>
- <type> com.sun.star.io.XMarkableStream </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
-
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.stm.DataInputStream </name>
- <description>
- This component provides ...
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.io.DataInputStream </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.io.XObjectInputStream </type>
- <type> com.sun.star.io.XObjectOutputStream </type>
- <type> com.sun.star.io.XActiveDataSource </type>
- <type> com.sun.star.io.XActiveDataSink </type>
- <type> com.sun.star.io.XMarkableStream </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
-
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.stm.DataOutputStream </name>
- <description>
- This component provides ...
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.io.DataOutputStream </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.io.XObjectInputStream </type>
- <type> com.sun.star.io.XObjectOutputStream </type>
- <type> com.sun.star.io.XActiveDataSource </type>
- <type> com.sun.star.io.XActiveDataSink </type>
- <type> com.sun.star.io.XMarkableStream </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
-
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.stm.ObjectInputStream </name>
- <description>
- This component provides ...
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.io.ObjectInputStream </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.io.XObjectInputStream </type>
- <type> com.sun.star.io.XObjectOutputStream </type>
- <type> com.sun.star.io.XActiveDataSource </type>
- <type> com.sun.star.io.XActiveDataSink </type>
- <type> com.sun.star.io.XMarkableStream </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
-
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.stm.ObjectOutputStream </name>
- <description>
- This component provides ...
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.io.ObjectOutputStream </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.io.XObjectInputStream </type>
- <type> com.sun.star.io.XObjectOutputStream </type>
- <type> com.sun.star.io.XActiveDataSource </type>
- <type> com.sun.star.io.XActiveDataSink </type>
- <type> com.sun.star.io.XMarkableStream </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
-
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.stm.MarkableInputStream </name>
- <description>
- This component provides ...
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.io.MarkableInputStream </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.io.XObjectInputStream </type>
- <type> com.sun.star.io.XObjectOutputStream </type>
- <type> com.sun.star.io.XActiveDataSource </type>
- <type> com.sun.star.io.XActiveDataSink </type>
- <type> com.sun.star.io.XMarkableStream </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
-
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.io.stm.MarkableOutputStream </name>
- <description>
- This component provides ...
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.io.MarkableOutputStream </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.io.XObjectInputStream </type>
- <type> com.sun.star.io.XObjectOutputStream </type>
- <type> com.sun.star.io.XActiveDataSource </type>
- <type> com.sun.star.io.XActiveDataSink </type>
- <type> com.sun.star.io.XMarkableStream </type>
- <type> com.sun.star.io.UnexpectedEOFException </type>
- <type> com.sun.star.io.WrongFormatException </type>
- <type> com.sun.star.lang.XComponent </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.IllegalArgumentException </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.registry.XImplementationRegistration </type>
- <type> com.sun.star.test.XSimpleTest </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.TypeClass </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.XAggregation </type>
- </component-description>
-
- <component-description>
- <author> Joerg Budischewski </author>
- <name> com.sun.star.comp.stoc.Pump </name>
- <description>
- This component provides ...
- </description>
- <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
- <language> c++ </language>
- <status value="final"/>
- <supported-service> com.sun.star.io.Pump </supported-service>
- <service-dependency> ... </service-dependency>
- <type> com.sun.star.io.XConnectable </type>
- <type> com.sun.star.io.XActiveDataSource </type>
- <type> com.sun.star.io.XActiveDataSink </type>
- <type> com.sun.star.io.XActiveDataControl </type>
- <type> com.sun.star.lang.DisposedException </type>
- <type> com.sun.star.lang.XTypeProvider </type>
- <type> com.sun.star.lang.XServiceInfo </type>
- <type> com.sun.star.lang.XSingleServiceFactory </type>
- <type> com.sun.star.lang.XMultiServiceFactory </type>
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.lang.XSingleComponentFactory </type>
- <type> com.sun.star.uno.XComponentContext </type>
- <type> com.sun.star.uno.XAggregation </type>
- <type> com.sun.star.uno.XWeak </type>
- <type> com.sun.star.uno.TypeClass </type>
- </component-description>
-
- <project-build-dependency> cppuhelper </project-build-dependency>
- <project-build-dependency> cppu </project-build-dependency>
- <project-build-dependency> sal </project-build-dependency>
-
- <runtime-module-dependency> cppuhelper </runtime-module-dependency>
- <runtime-module-dependency> cppu2 </runtime-module-dependency>
- <runtime-module-dependency> sal2 </runtime-module-dependency>
-</module-description>
-
diff --git a/io/source/stm/streamhelper.cxx b/io/source/stm/streamhelper.cxx
deleted file mode 100644
index c09aa2282..000000000
--- a/io/source/stm/streamhelper.cxx
+++ /dev/null
@@ -1,247 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include <rtl/alloc.h>
-
-#include <limits>
-#include <string.h>
-
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <com/sun/star/uno/Exception.hpp>
-
-using namespace ::com::sun::star::uno;
-
-#include "streamhelper.hxx"
-
-namespace io_stm {
-
-void MemFIFO::write( const Sequence< sal_Int8 > &seq )
- throw ( I_FIFO_OutOfMemoryException,
- I_FIFO_OutOfBoundsException )
-{
- try
- {
- writeAt(getSize(), seq );
- }
- catch( IRingBuffer_OutOfMemoryException & )
- {
- throw I_FIFO_OutOfMemoryException();
- }
- catch( IRingBuffer_OutOfBoundsException & )
- {
- throw I_FIFO_OutOfBoundsException();
- }
-}
-
-void MemFIFO::read( Sequence<sal_Int8> &seq , sal_Int32 nBufferLen ) throw (I_FIFO_OutOfBoundsException)
-{
- try
- {
- readAt(0, seq , nBufferLen);
- forgetFromStart( nBufferLen );
- }
- catch ( IRingBuffer_OutOfBoundsException & )
- {
- throw I_FIFO_OutOfBoundsException();
- }
-}
-
-void MemFIFO::skip( sal_Int32 nBytesToSkip ) throw ( I_FIFO_OutOfBoundsException )
-{
- try
- {
- forgetFromStart( nBytesToSkip );
- }
- catch( IRingBuffer_OutOfBoundsException & )
- {
- throw I_FIFO_OutOfBoundsException();
- }
-}
-
-
-
-MemRingBuffer::MemRingBuffer()
-{
- m_nBufferLen = 0;
- m_p = 0;
- m_nStart = 0;
- m_nOccupiedBuffer = 0;
-}
-
-MemRingBuffer::~MemRingBuffer()
-{
- if( m_p ) {
- rtl_freeMemory( m_p );
- }
-}
-
-void MemRingBuffer::resizeBuffer( sal_Int32 nMinSize ) throw( IRingBuffer_OutOfMemoryException)
-{
- sal_Int32 nNewLen = 1;
-
- while( nMinSize > nNewLen ) {
- nNewLen = nNewLen << 1;
- }
-
- // buffer never shrinks !
- if( nNewLen < m_nBufferLen ) {
- nNewLen = m_nBufferLen;
- }
-
- if( nNewLen != m_nBufferLen ) {
- m_p = ( sal_Int8 * ) rtl_reallocateMemory( m_p , nNewLen );
- if( !m_p ) {
- throw IRingBuffer_OutOfMemoryException();
- }
-
- if( m_nStart + m_nOccupiedBuffer > m_nBufferLen ) {
- memmove( &( m_p[m_nStart+(nNewLen-m_nBufferLen)]) , &(m_p[m_nStart]) , m_nBufferLen - m_nStart );
- m_nStart += nNewLen - m_nBufferLen;
- }
- m_nBufferLen = nNewLen;
- }
-}
-
-
-void MemRingBuffer::readAt( sal_Int32 nPos, Sequence<sal_Int8> &seq , sal_Int32 nBytesToRead ) const
- throw(IRingBuffer_OutOfBoundsException)
-{
- if( nPos + nBytesToRead > m_nOccupiedBuffer ) {
- throw IRingBuffer_OutOfBoundsException();
- }
-
- sal_Int32 nStartReadingPos = nPos + m_nStart;
- if( nStartReadingPos >= m_nBufferLen ) {
- nStartReadingPos -= m_nBufferLen;
- }
-
- seq.realloc( nBytesToRead );
-
- if( nStartReadingPos + nBytesToRead > m_nBufferLen ) {
- sal_Int32 nDeltaLen = m_nBufferLen - nStartReadingPos;
- memcpy( seq.getArray() , &(m_p[nStartReadingPos]) , nDeltaLen );
- memcpy( &(seq.getArray()[nDeltaLen]), m_p , nBytesToRead - nDeltaLen );
- }
- else {
- memcpy( seq.getArray() , &(m_p[nStartReadingPos]) , nBytesToRead );
- }
-}
-
-
-void MemRingBuffer::writeAt( sal_Int32 nPos, const Sequence<sal_Int8> &seq )
- throw (IRingBuffer_OutOfBoundsException,
- IRingBuffer_OutOfMemoryException )
-{
- checkInvariants();
- sal_Int32 nLen = seq.getLength();
-
- if( nPos < 0 || nPos > std::numeric_limits< sal_Int32 >::max() - nLen )
- {
- throw IRingBuffer_OutOfBoundsException();
- }
-
- if( nPos + nLen - m_nOccupiedBuffer > 0 ) {
- resizeBuffer( nPos + seq.getLength() );
- }
-
- sal_Int32 nStartWritingIndex = m_nStart + nPos;
- if( nStartWritingIndex >= m_nBufferLen ) {
- nStartWritingIndex -= m_nBufferLen;
- }
-
- if( nLen + nStartWritingIndex > m_nBufferLen ) {
- // two area copy
- memcpy( &(m_p[nStartWritingIndex]) , seq.getConstArray(), m_nBufferLen-nStartWritingIndex );
- memcpy( m_p , &( seq.getConstArray()[m_nBufferLen-nStartWritingIndex] ),
- nLen - (m_nBufferLen-nStartWritingIndex) );
-
- }
- else {
- // one area copy
- memcpy( &( m_p[nStartWritingIndex]), seq.getConstArray() , nLen );
- }
- m_nOccupiedBuffer = Max( nPos + seq.getLength() , m_nOccupiedBuffer );
- checkInvariants();
-}
-
-
-sal_Int32 MemRingBuffer::getSize() const throw()
-{
- return m_nOccupiedBuffer;
-}
-
-void MemRingBuffer::forgetFromStart( sal_Int32 nBytesToForget ) throw (IRingBuffer_OutOfBoundsException)
-{
- checkInvariants();
- if( nBytesToForget > m_nOccupiedBuffer ) {
- throw IRingBuffer_OutOfBoundsException();
- }
- m_nStart += nBytesToForget;
- if( m_nStart >= m_nBufferLen ) {
- m_nStart = m_nStart - m_nBufferLen;
- }
- m_nOccupiedBuffer -= nBytesToForget;
- checkInvariants();
-}
-
-
-void MemRingBuffer::forgetFromEnd( sal_Int32 nBytesToForget ) throw (IRingBuffer_OutOfBoundsException)
-{
- checkInvariants();
- if( nBytesToForget > m_nOccupiedBuffer ) {
- throw IRingBuffer_OutOfBoundsException();
- }
- m_nOccupiedBuffer -= nBytesToForget;
- checkInvariants();
-}
-
-
-void MemRingBuffer::shrink() throw ()
-{
- checkInvariants();
-
- // Up to now, only shrinking of while buffer works.
- // No other shrinking supported up to now.
- if( ! m_nOccupiedBuffer ) {
- if( m_p ) {
- free( m_p );
- }
- m_p = 0;
- m_nBufferLen = 0;
- m_nStart = 0;
- }
-
- checkInvariants();
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/stm/streamhelper.hxx b/io/source/stm/streamhelper.hxx
deleted file mode 100644
index 8481d67f6..000000000
--- a/io/source/stm/streamhelper.hxx
+++ /dev/null
@@ -1,165 +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.
- *
- ************************************************************************/
-
-// Save NDEBUG state
-#ifdef NDEBUG
-#define STREAMHELPER_HXX_HAD_NDEBUG
-#undef NDEBUG
-#endif
-
-#if OSL_DEBUG_LEVEL == 0
-#define NDEBUG
-#endif
-#include <assert.h>
-
-#define Max( a, b ) (((a)>(b)) ? (a) : (b) )
-#define Min( a, b ) (((a)<(b)) ? (a) : (b) )
-
-namespace io_stm {
-
-class I_FIFO_OutOfBoundsException :
- public Exception
-{};
-
-class I_FIFO_OutOfMemoryException :
- public Exception
-{};
-
-class I_FIFO
-{
-public:
-
-
- virtual void write( const Sequence<sal_Int8> &) throw( I_FIFO_OutOfMemoryException,
- I_FIFO_OutOfBoundsException )=0;
-
- virtual void read( Sequence<sal_Int8> & , sal_Int32 nBytesToRead )
- throw( I_FIFO_OutOfBoundsException )=0;
- virtual void skip( sal_Int32 nBytesToSkip )
- throw( I_FIFO_OutOfBoundsException )=0;
- virtual sal_Int32 getSize() const throw( ) =0;
- virtual void shrink() throw() = 0;
-
- virtual ~I_FIFO() {};
-};
-
-
-class IRingBuffer_OutOfBoundsException :
- public Exception
-{};
-
-class IRingBuffer_OutOfMemoryException :
- public Exception
-{};
-
-class IRingBuffer
-{
-public:
- /***
- * overwrites data at given position. Size is automatically extended, when
- * data is written beyond end.
- *
- ***/
-
- virtual void writeAt( sal_Int32 nPos, const Sequence<sal_Int8> &)
- throw( IRingBuffer_OutOfMemoryException,
- IRingBuffer_OutOfBoundsException )=0;
- virtual void readAt( sal_Int32 nPos, Sequence<sal_Int8> & , sal_Int32 nBytesToRead ) const
- throw( IRingBuffer_OutOfBoundsException )=0;
- virtual sal_Int32 getSize() const throw( ) =0;
- virtual void forgetFromStart( sal_Int32 nBytesToForget ) throw(IRingBuffer_OutOfBoundsException)=0;
- virtual void forgetFromEnd( sal_Int32 nBytesToForget ) throw(IRingBuffer_OutOfBoundsException)=0;
- virtual void shrink() throw() = 0;
- virtual ~IRingBuffer() {};
-};
-
-
-class MemRingBuffer :
- public IRingBuffer
-{
-public:
- MemRingBuffer();
- virtual ~MemRingBuffer();
-
- virtual void writeAt( sal_Int32 nPos, const Sequence<sal_Int8> &)
- throw( IRingBuffer_OutOfMemoryException,
- IRingBuffer_OutOfBoundsException );
- virtual void readAt( sal_Int32 nPos, Sequence<sal_Int8> & , sal_Int32 nBytesToRead ) const
- throw( IRingBuffer_OutOfBoundsException );
- virtual sal_Int32 getSize() const throw( );
- virtual void forgetFromStart( sal_Int32 nBytesToForget ) throw(IRingBuffer_OutOfBoundsException);
- virtual void forgetFromEnd( sal_Int32 nBytesToForget ) throw(IRingBuffer_OutOfBoundsException);
-
- virtual void shrink() throw();
-
-private:
-
- void resizeBuffer( sal_Int32 nMinSize ) throw( IRingBuffer_OutOfMemoryException );
- inline void checkInvariants()
- {
- assert( m_nBufferLen >= 0 );
- assert( m_nOccupiedBuffer >= 0 );
- assert( m_nOccupiedBuffer <= m_nBufferLen );
- assert( m_nStart >= 0 );
- assert( 0 == m_nStart || m_nStart < m_nBufferLen );
- }
-
- sal_Int8 *m_p;
- sal_Int32 m_nBufferLen;
- sal_Int32 m_nStart;
- sal_Int32 m_nOccupiedBuffer;
-};
-
-
-class MemFIFO :
- public I_FIFO,
- private MemRingBuffer
-{
-public:
- virtual void write( const Sequence<sal_Int8> &) throw( I_FIFO_OutOfMemoryException,
- I_FIFO_OutOfBoundsException );
- virtual void read( Sequence<sal_Int8> & , sal_Int32 nBytesToRead )
- throw( I_FIFO_OutOfBoundsException );
- virtual void skip( sal_Int32 nBytesToSkip ) throw( I_FIFO_OutOfBoundsException );
- virtual sal_Int32 getSize() const throw( )
- { return MemRingBuffer::getSize(); }
- virtual void shrink() throw()
- { MemRingBuffer::shrink(); }
-
-};
-
-// Restore NDEBUG state
-#ifdef STREAMHELPER_HXX_HAD_NDEBUG
-#define NDEBUG
-#else
-#undef NDEBUG
-#endif
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/source/stm/streams.component b/io/source/stm/streams.component
deleted file mode 100644
index 76890d360..000000000
--- a/io/source/stm/streams.component
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--**********************************************************************
-*
-* 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.
-*
-**********************************************************************-->
-
-<component loader="com.sun.star.loader.SharedLibrary"
- xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.io.Pump">
- <service name="com.sun.star.io.Pump"/>
- </implementation>
- <implementation name="com.sun.star.comp.io.stm.DataInputStream">
- <service name="com.sun.star.io.DataInputStream"/>
- </implementation>
- <implementation name="com.sun.star.comp.io.stm.DataOutputStream">
- <service name="com.sun.star.io.DataOutputStream"/>
- </implementation>
- <implementation name="com.sun.star.comp.io.stm.MarkableInputStream">
- <service name="com.sun.star.io.MarkableInputStream"/>
- </implementation>
- <implementation name="com.sun.star.comp.io.stm.MarkableOutputStream">
- <service name="com.sun.star.io.MarkableOutputStream"/>
- </implementation>
- <implementation name="com.sun.star.comp.io.stm.ObjectInputStream">
- <service name="com.sun.star.io.ObjectInputStream"/>
- </implementation>
- <implementation name="com.sun.star.comp.io.stm.ObjectOutputStream">
- <service name="com.sun.star.io.ObjectOutputStream"/>
- </implementation>
- <implementation name="com.sun.star.comp.io.stm.Pipe">
- <service name="com.sun.star.io.Pipe"/>
- </implementation>
-</component>
diff --git a/io/test/makefile.mk b/io/test/makefile.mk
deleted file mode 100644
index e35f33622..000000000
--- a/io/test/makefile.mk
+++ /dev/null
@@ -1,92 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=extensions
-TARGET=workben
-LIBTARGET=NO
-
-TARGETTYPE=CUI
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.IF "$(L10N_framework)"==""
-# --- Files --------------------------------------------------------
-
-OBJFILES= $(OBJ)$/testcomponent.obj \
- $(OBJ)$/testconnection.obj
-
-UNOUCRDEP=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCRRDB=$(SOLARBINDIR)$/udkapi.rdb
-
-# output directory (one dir for each project)
-UNOUCROUT=$(OUT)$/inc
-
-UNOTYPES = com.sun.star.connection.XConnector \
- com.sun.star.connection.XAcceptor \
- com.sun.star.registry.XImplementationRegistration \
- com.sun.star.lang.XComponent \
- com.sun.star.lang.XSingleServiceFactory \
- com.sun.star.lang.XMultiServiceFactory \
- com.sun.star.test.XSimpleTest \
- com.sun.star.lang.XSingleComponentFactory \
- com.sun.star.lang.XMultiComponentFactory
-
-
-#
-# std testcomponent
-#
-
-APP1TARGET = testcomponent
-APP1OBJS = $(OBJ)$/testcomponent.obj
-APP1STDLIBS = $(SALLIB) \
- $(CPPULIB)\
- $(CPPUHELPERLIB)
-
-APP2TARGET = testconnection
-APP2OBJS = $(OBJ)$/testconnection.obj
-APP2STDLIBS = $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)
-
-
-
-# --- Targets ------------------------------------------------------
-
-ALL : $(BIN)$/applicat.rdb \
- ALLTAR
-
-$(BIN)$/applicat.rdb: $(SOLARBINDIR)$/udkapi.rdb
- rm -f $@
- regmerge $@ / $?
-
-.ENDIF # L10N_framework
-
-.INCLUDE : target.mk
diff --git a/io/test/stm/datatest.cxx b/io/test/stm/datatest.cxx
deleted file mode 100644
index f9fc2f6c8..000000000
--- a/io/test/stm/datatest.cxx
+++ /dev/null
@@ -1,1113 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-#include <stdio.h>
-
-#include <com/sun/star/test/XSimpleTest.hpp>
-#include <com/sun/star/io/XActiveDataSink.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XObjectInputStream.hpp>
-#include <com/sun/star/io/XObjectOutputStream.hpp>
-#include <com/sun/star/io/XMarkableStream.hpp>
-#include <com/sun/star/io/XConnectable.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/lang/WrappedTargetException.hpp>
-
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include <cppuhelper/factory.hxx>
-
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase2.hxx>
-
-#include <osl/conditn.hxx>
-#include <osl/mutex.hxx>
-
-#include <string.h>
-
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::test;
-using namespace ::com::sun::star::beans;
-// streams
-
-#include "testfactreg.hxx"
-
-#define DATASTREAM_TEST_MAX_HANDLE 1
-
-/****
-* The following test class tests XDataInputStream and XDataOutputStream at equal terms,
-* so when errors occur, it may be in either one implementation.
-* The class also uses stardiv.uno.io.pipe. If problems occur, make sure to run also the
-* pipe test routines ( test.com.sun.star.io.pipe ).
-*
-*
-*****/
-
-class ODataStreamTest :
- public WeakImplHelper1< XSimpleTest >
-{
-public:
- ODataStreamTest( const Reference < XMultiServiceFactory > & rFactory ) :
- m_rFactory( rFactory )
- {}
-
-public:
- virtual void SAL_CALL testInvariant(const OUString& TestName, const Reference < XInterface >& TestObject)
- throw ( IllegalArgumentException,
- RuntimeException);
-
- virtual sal_Int32 SAL_CALL test( const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException,
- RuntimeException);
-
- virtual sal_Bool SAL_CALL testPassed(void) throw ( RuntimeException);
- virtual Sequence< OUString > SAL_CALL getErrors(void) throw (RuntimeException);
- virtual Sequence< Any > SAL_CALL getErrorExceptions(void) throw (RuntimeException);
- virtual Sequence< OUString > SAL_CALL getWarnings(void) throw (RuntimeException);
-
-private:
- void testSimple( const Reference < XDataInputStream > & , const Reference < XDataOutputStream > &);
-
-protected:
- Sequence<Any> m_seqExceptions;
- Sequence<OUString> m_seqErrors;
- Sequence<OUString> m_seqWarnings;
-
- Reference < XMultiServiceFactory > m_rFactory;
-};
-
-
-
-
-void ODataStreamTest::testInvariant(
- const OUString& TestName,
- const Reference < XInterface >& TestObject )
- throw ( IllegalArgumentException,
- RuntimeException)
-{
- if( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataInputStream")) == TestName ) {
- Reference < XConnectable > connect( TestObject , UNO_QUERY );
- Reference < XActiveDataSink > active( TestObject , UNO_QUERY );
- Reference < XInputStream > input( TestObject , UNO_QUERY );
- Reference < XDataInputStream > dataInput( TestObject , UNO_QUERY );
-
- WARNING_ASSERT( connect.is(), "XConnectable cannot be queried" );
- WARNING_ASSERT( active.is() , "XActiveDataSink cannot be queried" );
- ERROR_ASSERT( input.is() , "XInputStream cannot be queried" );
- ERROR_ASSERT( dataInput.is() , "XDataInputStream cannot be queried" );
-
-
- }
- else if( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataInputStream")) == TestName ) {
- Reference < XConnectable > connect( TestObject , UNO_QUERY );
- Reference < XActiveDataSource > active( TestObject , UNO_QUERY );
- Reference < XOutputStream > output( TestObject , UNO_QUERY );
- Reference < XDataOutputStream > dataOutput( TestObject , UNO_QUERY );
-
- WARNING_ASSERT( connect.is(), "XConnectable cannot be queried" );
- WARNING_ASSERT( active.is() , "XActiveDataSink cannot be queried" );
- ERROR_ASSERT( output.is() , "XInputStream cannot be queried" );
- ERROR_ASSERT( dataOutput.is(), "XDataInputStream cannot be queried" );
-
- }
-
- Reference < XServiceInfo > info( TestObject, UNO_QUERY );
- ERROR_ASSERT( info.is() , "XServiceInfo not supported !" );
- if( info.is() )
- {
- ERROR_ASSERT( info->supportsService( TestName ), "XServiceInfo test failed" );
- ERROR_ASSERT( ! info->supportsService( OUString(RTL_CONSTASCII_USTRINGPARAM("bla bluzb")) ) , "XServiceInfo test failed" );
- }
-
-}
-
-
-sal_Int32 ODataStreamTest::test(
- const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException,
- RuntimeException)
-{
- if( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataInputStream")) == TestName ||
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataOutputStream")) == TestName ) {
-
- try
- {
- if( 0 == hTestHandle ) {
- testInvariant( TestName , TestObject );
- }
- else {
- Reference <XActiveDataSink > rSink( TestObject, UNO_QUERY );
- Reference <XActiveDataSource > rSource( TestObject , UNO_QUERY );
-
- Reference < XDataInputStream > rInput( TestObject , UNO_QUERY );
- Reference < XDataOutputStream > rOutput( TestObject , UNO_QUERY );
-
-
- Reference < XInterface > x = m_rFactory->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe" )));
-
- Reference < XInputStream > rPipeInput( x , UNO_QUERY );
- Reference < XOutputStream > rPipeOutput( x , UNO_QUERY );
-
- if( ! rSink.is() ) {
- x = m_rFactory->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataInputStream")) );
- rInput = Reference < XDataInputStream > ( x , UNO_QUERY);
- rSink = Reference< XActiveDataSink > ( x , UNO_QUERY );
- }
- else if ( !rSource.is() )
- {
- x = m_rFactory->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataOutputStream") ) );
- rOutput = Reference< XDataOutputStream > ( x , UNO_QUERY );
- rSource = Reference< XActiveDataSource > ( x, UNO_QUERY );
- }
-
- OSL_ASSERT( rPipeInput.is() );
- OSL_ASSERT( rPipeOutput.is() );
- rSink->setInputStream( rPipeInput );
- rSource->setOutputStream( rPipeOutput );
-
- OSL_ASSERT( rSink->getInputStream().is() );
- OSL_ASSERT( rSource->getOutputStream().is() );
-
- if( 1 == hTestHandle ) {
- testSimple( rInput , rOutput );
- }
- }
- }
- catch( Exception & e )
- {
- OString o = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- BUILD_ERROR( 0 , o.getStr() );
- }
- catch( ... )
- {
- BUILD_ERROR( 0 , "unknown exception (Exception is not base class)" );
- }
-
- hTestHandle ++;
-
- if( hTestHandle >= 2) {
- // all tests finished.
- hTestHandle = -1;
- }
- }
- else {
- BUILD_ERROR( 0 , "service not supported by test." );
- }
- return hTestHandle;
-}
-
-
-
-sal_Bool ODataStreamTest::testPassed(void) throw (RuntimeException)
-{
- return m_seqErrors.getLength() == 0;
-}
-
-
-Sequence< OUString > ODataStreamTest::getErrors(void) throw (RuntimeException)
-{
- return m_seqErrors;
-}
-
-
-Sequence< Any > ODataStreamTest::getErrorExceptions(void) throw (RuntimeException)
-{
- return m_seqExceptions;
-}
-
-
-Sequence< OUString > ODataStreamTest::getWarnings(void) throw (RuntimeException)
-{
- return m_seqWarnings;
-}
-
-void ODataStreamTest::testSimple( const Reference < XDataInputStream > &rInput,
- const Reference < XDataOutputStream > &rOutput )
-{
- rOutput->writeLong( 0x34ff3c );
- rOutput->writeLong( 0x34ff3d );
- rOutput->writeLong( -1027 );
-
- ERROR_ASSERT( 0x34ff3c == rInput->readLong() , "long read/write mismatch" );
- ERROR_ASSERT( 0x34ff3d == rInput->readLong() , "long read/write mismatch" );
- ERROR_ASSERT( -1027 == rInput->readLong() , "long read/write mismatch" );
-
- rOutput->writeByte( 0x77 );
- ERROR_ASSERT( 0x77 == rInput->readByte() , "byte read/write mismatch" );
-
- rOutput->writeBoolean( 25 );
- ERROR_ASSERT( rInput->readBoolean() , "boolean read/write mismatch" );
-
- rOutput->writeBoolean( sal_False );
- ERROR_ASSERT( ! rInput->readBoolean() , "boolean read/write mismatch" );
-
- rOutput->writeFloat( (float) 42.42 );
- ERROR_ASSERT( rInput->readFloat() == ((float)42.42) , "float read/write mismatch" );
-
- rOutput->writeDouble( (double) 42.42 );
- ERROR_ASSERT( rInput->readDouble() == 42.42 , "double read/write mismatch" );
-
- rOutput->writeHyper( 0x123456789abcdefLL );
- ERROR_ASSERT( rInput->readHyper() == 0x123456789abcdefLL , "int64 read/write mismatch" );
-
- rOutput->writeUTF( OUString(RTL_CONSTASCII_USTRINGPARAM("Live long and prosper !")) );
- ERROR_ASSERT( rInput->readUTF() == OUString(RTL_CONSTASCII_USTRINGPARAM("Live long and prosper !")) ,
- "UTF read/write mismatch" );
-
- Sequence<sal_Unicode> wc(0x10001);
- for( int i = 0 ; i < 0x10000 ; i ++ ) {
- wc.getArray()[i] = L'c';
- }
- wc.getArray()[0x10000] = 0;
- OUString str( wc.getArray() , 0x10000 );
- rOutput->writeUTF( str );
- ERROR_ASSERT( rInput->readUTF() == str , "error reading 64k block" );
-
- rOutput->closeOutput();
- try
- {
- rInput->readLong();
- ERROR_ASSERT( 0 , "eof-exception does not occur !" );
- }
- catch ( IOException & )
- {
- //ok
- }
- catch( ... )
- {
- ERROR_ASSERT( 0 , "wrong exception after reading beyond eof" );
- }
-
- Sequence<sal_Int8> dummy (1);
- ERROR_ASSERT( ! rInput->readBytes( dummy , 1 ),
- "stream must be on eof !" );
-
- rInput->closeInput();
-
- try
- {
- rOutput->writeByte( 1 );
- ERROR_ASSERT( 0 , "writing still possible though chain must be interrupted" );
- }
- catch( IOException & )
- {
- // ok
- }
- catch( ... ) {
- ERROR_ASSERT( 0 , "IOException expected, but another exception was thrown" );
- }
-
-}
-
-
-
-/**
-* for external binding
-*
-*
-**/
-Reference < XInterface > SAL_CALL ODataStreamTest_CreateInstance( const Reference < XMultiServiceFactory > & rSMgr ) throw(Exception)
-{
- ODataStreamTest *p = new ODataStreamTest( rSMgr );
- return Reference < XInterface > ( SAL_STATIC_CAST( OWeakObject * , p ) );
-}
-
-Sequence<OUString> ODataStreamTest_getSupportedServiceNames( int i) throw ()
-{
- Sequence<OUString> aRet(1);
-
- aRet.getArray()[0] = ODataStreamTest_getImplementationName( i);
-
-
- return aRet;
-}
-
-OUString ODataStreamTest_getServiceName( int i) throw ()
-{
- if( 1 == i ) {
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.DataInputStream" ));
- }
- else {
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.DataOutputStream" ));
- }
-}
-
-OUString ODataStreamTest_getImplementationName( int i) throw ()
-{
- if( 1 == i ) {
- return OUString(
- RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.comp.extensions.stm.DataInputStream") );
- }
- else {
- return OUString( RTL_CONSTASCII_USTRINGPARAM(
- "test.com.sun.star.comp.extensions.stm.DataOutputStream" ) );
- }
-}
-
-class MyPersistObject : public WeakImplHelper2< XPersistObject , XPropertySet >
-{
-public:
- MyPersistObject( ) : m_sServiceName( OMyPersistObject_getServiceName() ) ,
- m_l( -392 ),
- m_f( 7883.2 ),
- m_d( -123923.5 ),
- m_b( sal_True ),
- m_byte( 42 ),
- m_c( 429 ),
- m_s( OUString( RTL_CONSTASCII_USTRINGPARAM( "foo" ) ) )
- {}
- MyPersistObject( const OUString & sServiceName ) : m_sServiceName( sServiceName )
- {}
-
-
-public:
- virtual OUString SAL_CALL getServiceName(void) throw (RuntimeException);
- virtual void SAL_CALL write( const Reference< XObjectOutputStream >& OutStream )
- throw (IOException, RuntimeException);
- virtual void SAL_CALL read(const Reference< XObjectInputStream >& InStream)
- throw (IOException, RuntimeException);
-
-public:
-
- virtual Reference< XPropertySetInfo > SAL_CALL getPropertySetInfo(void)
- throw (RuntimeException);
-
- virtual void SAL_CALL setPropertyValue(const OUString& aPropertyName, const Any& aValue)
- throw ( UnknownPropertyException,
- PropertyVetoException,
- IllegalArgumentException,
- WrappedTargetException,
- RuntimeException);
- virtual Any SAL_CALL getPropertyValue(const OUString& PropertyName)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException);
- virtual void SAL_CALL addPropertyChangeListener(
- const OUString& aPropertyName,
- const Reference < XPropertyChangeListener > & xListener)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException);
-
- virtual void SAL_CALL removePropertyChangeListener(
- const OUString& aPropertyName,
- const Reference< XPropertyChangeListener > & aListener)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException);
- virtual void SAL_CALL addVetoableChangeListener(
- const OUString& PropertyName,
- const Reference< XVetoableChangeListener > & aListener)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException);
-
- virtual void SAL_CALL removeVetoableChangeListener(
- const OUString& PropertyName,
- const Reference< XVetoableChangeListener >& aListener)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException);
-
-public:
- sal_Int32 m_l;
- float m_f;
- double m_d;
- sal_Bool m_b;
- sal_Int8 m_byte;
- sal_Unicode m_c;
- OUString m_s;
- Reference< XPersistObject > m_ref;
- OUString m_sServiceName;
-};
-
-
-
-Reference <XPropertySetInfo > MyPersistObject::getPropertySetInfo(void)
- throw (RuntimeException)
-{
- return Reference< XPropertySetInfo >();
-}
-
-void MyPersistObject::setPropertyValue(
- const OUString& aPropertyName,
- const Any& aValue)
- throw ( UnknownPropertyException,
- PropertyVetoException,
- IllegalArgumentException,
- WrappedTargetException,
- RuntimeException)
-{
- if( 0 == aPropertyName.compareToAscii("long") ) {
- aValue >>= m_l;
- }
- else if ( 0 == aPropertyName.compareToAscii("float") ) {
- aValue >>= m_f;
- }
- else if( 0 == aPropertyName.compareToAscii("double") ) {
- aValue >>= m_d;
- }
- else if( 0 == aPropertyName.compareToAscii("bool") ) {
- aValue >>= m_b;
- }
- else if( 0 == aPropertyName.compareToAscii("byte" ) ) {
- aValue >>= m_byte;
- }
- else if( 0 == aPropertyName.compareToAscii("char") ) {
- aValue >>= m_c;
- }
- else if( 0 == aPropertyName.compareToAscii("string") ) {
- aValue >>= m_s;
- }
- else if( 0 == aPropertyName.compareToAscii("object") ) {
- if( aValue.getValueType() == getCppuType( (Reference< XPersistObject> *)0 ) )
- {
- aValue >>= m_ref;
- }
- else
- {
- m_ref = 0;
- }
- }
-}
-
-
-Any MyPersistObject::getPropertyValue(const OUString& aPropertyName)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException)
-{
- Any aValue;
- if( 0 == aPropertyName.compareToAscii("long" ) ) {
- aValue <<= m_l;
- }
- else if ( 0 == aPropertyName.compareToAscii("float") ) {
- aValue <<= m_f;
- }
- else if( 0 == aPropertyName.compareToAscii("double") ) {
- aValue <<= m_d;
- }
- else if( 0 == aPropertyName.compareToAscii("bool") ) {
- aValue <<= m_b;
- }
- else if( 0 == aPropertyName.compareToAscii("byte") ) {
- aValue <<= m_byte;
- }
- else if( 0 == aPropertyName.compareToAscii("char" ) ) {
- aValue <<= m_c;
- }
- else if( 0 == aPropertyName.compareToAscii("string") ) {
- aValue <<= m_s;
- }
- else if( 0 == aPropertyName.compareToAscii("object" ) )
- {
- aValue <<= m_ref;
- }
- return aValue;
-}
-
-
-void MyPersistObject::addPropertyChangeListener(
- const OUString& aPropertyName,
- const Reference< XPropertyChangeListener > & xListener)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException)
-{
-
-}
-
-void MyPersistObject::removePropertyChangeListener(
- const OUString& aPropertyName,
- const Reference < XPropertyChangeListener > & aListener)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException)
-{
-}
-
-
-void MyPersistObject::addVetoableChangeListener(
- const OUString& PropertyName,
- const Reference <XVetoableChangeListener >& aListener)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException)
-{
-
-}
-
-void MyPersistObject::removeVetoableChangeListener(
- const OUString& PropertyName,
- const Reference < XVetoableChangeListener > & aListener)
- throw ( UnknownPropertyException,
- WrappedTargetException,
- RuntimeException)
-{
-
-}
-
-
-
-
-OUString MyPersistObject::getServiceName() throw (RuntimeException)
-{
- return m_sServiceName;
-}
-
-void MyPersistObject::write( const Reference< XObjectOutputStream > & rOut )
- throw (IOException,RuntimeException)
-{
- rOut->writeLong( m_l);
- rOut->writeFloat( m_f );
- rOut->writeDouble( m_d );
- rOut->writeBoolean( m_b );
- rOut->writeByte( m_byte );
- rOut->writeChar( m_c );
- rOut->writeUTF( m_s );
- rOut->writeObject( m_ref );
-}
-
-
-void MyPersistObject::read( const Reference< XObjectInputStream > & rIn )
- throw (IOException, RuntimeException)
-{
- m_l = rIn->readLong();
- m_f = rIn->readFloat();
- m_d = rIn->readDouble();
- m_b = rIn->readBoolean();
- m_byte = rIn->readByte();
- m_c = rIn->readChar();
- m_s = rIn->readUTF();
- m_ref = rIn->readObject();
-}
-
-Reference < XInterface > SAL_CALL OMyPersistObject_CreateInstance(
- const Reference < XMultiServiceFactory > & rSMgr )
- throw(Exception)
-{
- MyPersistObject *p = new MyPersistObject( );
- return Reference < XInterface > ( SAL_STATIC_CAST( OWeakObject * , p ) );
-}
-
-Sequence<OUString> OMyPersistObject_getSupportedServiceNames( ) throw ()
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OMyPersistObject_getImplementationName();
- return aRet;
-}
-
-OUString OMyPersistObject_getServiceName( ) throw ()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.PersistTest" ));
-}
-
-OUString OMyPersistObject_getImplementationName( ) throw ()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "test.com.sun.star.io.PersistTest" ) );
-}
-
-class OObjectStreamTest :
- public ODataStreamTest
-{
-public:
- OObjectStreamTest( const Reference < XMultiServiceFactory > &r) : ODataStreamTest(r) {}
-
-public:
- virtual void SAL_CALL testInvariant(const OUString& TestName,
- const Reference < XInterface >& TestObject)
- throw ( IllegalArgumentException,
- RuntimeException);
-
- virtual sal_Int32 SAL_CALL test(
- const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException,
- RuntimeException);
-
-
-private:
- void OObjectStreamTest::testObject( const Reference <XObjectOutputStream > &rOut,
- const Reference <XObjectInputStream> &rIn );
-
-private:
-};
-
-
-void OObjectStreamTest::testInvariant( const OUString& TestName,
- const Reference < XInterface >& TestObject )
- throw ( IllegalArgumentException, RuntimeException)
-{
-
- if( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.ObjectInputStream" ) )
- == TestName )
- {
- ODataStreamTest::testInvariant( TestName , TestObject );
- Reference< XObjectInputStream > dataInput( TestObject , UNO_QUERY );
- Reference< XMarkableStream > markable( TestObject , UNO_QUERY );
- ERROR_ASSERT( dataInput.is() , "XObjectInputStream cannot be queried" );
- ERROR_ASSERT( markable.is() , "XMarkableStream cannot be queried" );
- }
- else if( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.ObjectOutputStream") )
- == TestName )
- {
- ODataStreamTest::testInvariant( TestName , TestObject );
- Reference < XMarkableStream > markable( TestObject , UNO_QUERY );
- Reference < XObjectOutputStream > dataOutput( TestObject , UNO_QUERY );
- ERROR_ASSERT( dataOutput.is(), "XObjectOutputStream cannot be queried" );
- ERROR_ASSERT( markable.is() , "XMarkableStream cannot be queried" );
- }
-
- Reference < XServiceInfo > info( TestObject, UNO_QUERY );
- ERROR_ASSERT( info.is() , "XServiceInfo not supported !" );
- if( info.is() )
- {
- ERROR_ASSERT( info->supportsService( TestName ), "XServiceInfo test failed" );
- ERROR_ASSERT( ! info->supportsService( OUString(RTL_CONSTASCII_USTRINGPARAM("bla bluzb")) ) , "XServiceInfo test failed" );
- }
-
-}
-
-sal_Int32 OObjectStreamTest::test( const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException,
- RuntimeException)
-{
- if( 0 == TestName.compareToAscii("com.sun.star.io.ObjectInputStream") ||
- 0 == TestName.compareToAscii("com.sun.star.io.ObjectOutputStream" ) ) {
-
- try
- {
- if( 0 == hTestHandle ) {
- testInvariant( TestName , TestObject );
- }
- else if( DATASTREAM_TEST_MAX_HANDLE >= hTestHandle ) {
- sal_Int32 hOldHandle = hTestHandle;
- hTestHandle = ODataStreamTest::test(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataInputStream" )),
- TestObject , hTestHandle );
- if( hTestHandle == -1 ){
- hTestHandle = hOldHandle;
- }
- }
- else {
-
- Reference<XActiveDataSink > rSink( TestObject, UNO_QUERY );
- Reference<XActiveDataSource > rSource( TestObject , UNO_QUERY );
-
- Reference< XObjectInputStream > rInput( TestObject , UNO_QUERY );
- Reference< XObjectOutputStream > rOutput( TestObject , UNO_QUERY );
-
-
- Reference < XInterface > x = m_rFactory->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe" )) );
-
- Reference <XInputStream > rPipeInput( x , UNO_QUERY );
- Reference <XOutputStream > rPipeOutput( x , UNO_QUERY );
-
- x = m_rFactory->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.MarkableInputStream") ) );
-
- Reference <XInputStream > markableInput( x , UNO_QUERY );
- Reference <XActiveDataSink> markableSink( x , UNO_QUERY );
-
- x = m_rFactory->createInstance( OUString(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.MarkableOutputStream" ) ) );
- Reference <XOutputStream > markableOutput( x , UNO_QUERY );
- Reference <XActiveDataSource > markableSource( x , UNO_QUERY );
-
- OSL_ASSERT( markableInput.is() );
- OSL_ASSERT( markableOutput.is() );
- OSL_ASSERT( markableSink.is() );
- OSL_ASSERT( markableSource.is() );
-
- markableSink->setInputStream( rPipeInput );
- markableSource->setOutputStream( rPipeOutput );
-
- if( ! rSink.is() ) {
- x = m_rFactory->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.ObjectInputStream") ));
- rInput = Reference < XObjectInputStream > ( x , UNO_QUERY );
- rSink = Reference < XActiveDataSink > ( x , UNO_QUERY );
- }
- else if ( !rSource.is() ) {
- x = m_rFactory->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.ObjectOutputStream" )));
- rOutput = Reference <XObjectOutputStream > ( x , UNO_QUERY );
- rSource = Reference <XActiveDataSource>( x, UNO_QUERY );
- }
-
- OSL_ASSERT( rPipeInput.is() );
- OSL_ASSERT( rPipeOutput.is() );
-
- rSink->setInputStream( markableInput );
- rSource->setOutputStream( markableOutput );
-
- OSL_ASSERT( rSink->getInputStream().is() );
- OSL_ASSERT( rSource->getOutputStream().is() );
-
- if( 1 + DATASTREAM_TEST_MAX_HANDLE == hTestHandle ) {
- testObject( rOutput , rInput);
- }
- rInput->closeInput();
- rOutput->closeOutput();
-
- }
- }
- catch( Exception &e ) {
- OString o = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- BUILD_ERROR( 0 , o.getStr() );
- }
- catch( ... ) {
- BUILD_ERROR( 0 , "unknown exception (Exception is not base class)" );
- }
-
- hTestHandle ++;
-
- if( hTestHandle > 1 +DATASTREAM_TEST_MAX_HANDLE ) {
- // all tests finished.
- hTestHandle = -1;
- }
- }
- else {
- BUILD_ERROR( 0 , "service not supported by test." );
- }
- return hTestHandle;
-}
-
-
-sal_Bool compareMyPropertySet( Reference< XPropertySet > &r1 , Reference < XPropertySet > &r2 )
-{
- sal_Bool b = sal_True;
-
- if( r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("long")) ).getValueType() == getCppuVoidType() ||
- r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("long")) ).getValueType() == getCppuVoidType() ) {
-
- // one of the objects is not the correct propertyset !
- fprintf( stderr, "compareMyPropertySet: 1\n" );
- return sal_False;
- }
-
- b = b && ( r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("long")) ) ==
- r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("long")) ) );
- if( ! b ) fprintf( stderr, "compareMyPropertySet: 2\n" );
-
- b = b && ( r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("float")) ) ==
- r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("float")) ) );
- if( ! b ){
- float f1(0.0);
- float f2(0.0);
- r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("float")) ) >>= f1;
- r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("float")) ) >>= f2;
- fprintf( stderr, "compareMyPropertySet: %f %f 3\n",f1,f2 );
- }
-
- b = b && ( r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("double")) ) ==
- r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("double" ))) );
- if( ! b ) fprintf( stderr, "compareMyPropertySet: 4\n" );
-
- sal_Bool b1(sal_False), b2(sal_False);
- Any a =r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("bool")) );
- a >>= b1;
- a = r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("bool")) );
- a >>= b2;
- b = b && ( (b1 && b2) || b1 == b2 );
- if( ! b ) fprintf( stderr, "compareMyPropertySet: 5\n" );
-
-// b = b && r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("bool")) ) ==
-// r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("bool")) ) );
-
- b = b && ( r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("byte")) ) ==
- r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("byte")) ) );
- if( ! b ) fprintf( stderr, "compareMyPropertySet: 6\n" );
-
- b = b && ( r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("char")) ) ==
- r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("char")) ) );
- if( ! b ) fprintf( stderr, "compareMyPropertySet: 7\n" );
-
- b = b && ( r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("string")) ) ==
- r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("string")) ));
- if( ! b ) fprintf( stderr, "compareMyPropertySet: 8\n" );
-
- Any o1 = r1->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("object")) );
- Any o2 = r2->getPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("object")) );
-
- if( o1.getValueType() == getCppuType( (Reference<XPersistObject>*)0 ) ) {
-
- if( o2.getValueType() == getCppuType( (Reference<XPersistObject>*)0 ) ) {
- Reference < XPersistObject > rPersist1;
- Reference < XPersistObject > rPersist2;
- o1 >>= rPersist1;
- o2 >>= rPersist2;
- Reference <XPropertySet > rProp1( rPersist1 , UNO_QUERY );
- Reference < XPropertySet > rProp2( rPersist2 , UNO_QUERY );
-
- if( rProp1.is() && rProp2.is() && ! ( rProp1 == rProp2 )
- &&( rProp1 != r1 )) {
- b = b && compareMyPropertySet( rProp1 , rProp2 );
- }
- }
- else {
- b = sal_False;
- }
- if( ! b ) fprintf( stderr, "compareMyPropertySet: 9\n" );
- }
- else {
- if( o2.getValueType() == getCppuType( (Reference<XPersistObject>*)0 ) ) {
- b = sal_False;
- }
- if( ! b ) fprintf( stderr, "compareMyPropertySet: 10\n" );
- }
-
- return b;
-}
-
-void OObjectStreamTest::testObject( const Reference< XObjectOutputStream > &rOut,
- const Reference < XObjectInputStream > &rIn )
-{
- ERROR_ASSERT( rOut.is() , "no objectOutputStream" );
- ERROR_ASSERT( rIn.is() , "no objectInputStream" );
-
-
-
- // tests, if saving an object with an unknown service name allows
- // reading the data behind the object !
- {
- Reference < XInterface > x = * new MyPersistObject(
- OUString( RTL_CONSTASCII_USTRINGPARAM("bla blubs")) );
-
- Reference< XPersistObject > persistRef( x , UNO_QUERY );
- ERROR_ASSERT( persistRef.is() , "couldn't instantiate PersistTest object" );
-
- rOut->writeObject( persistRef );
- rOut->writeLong( (sal_Int32) 0xdeadbeef );
-
- ERROR_ASSERT( 0 != rIn->available() , "no data arrived at input" );
-
- try
- {
- Reference <XPersistObject > xReadPersistRef = rIn->readObject();
- ERROR_ASSERT( 0 , "expected exception not thrown" );
- }
- catch( IOException & )
- {
- // all is ok
- }
-
- ERROR_ASSERT( (sal_Int32) 0xdeadbeef == rIn->readLong() ,
- "wrong data after object with unknown service name." );
- }
-
- {
- Reference < XInterface > x = m_rFactory->createInstance(
- OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.PersistTest")));
- Reference< XPersistObject > persistRef( x , UNO_QUERY );
-
- ERROR_ASSERT( persistRef.is() , "couldn't instantiate PersistTest object" );
-
- Reference < XPropertySet > rProp( persistRef , UNO_QUERY );
- ERROR_ASSERT( rProp.is() , "test object is no property set " );
-
- Any any;
- sal_Int32 i = 0x83482;
- any <<= i;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("long")) , any );
-
- float f = (float)42.23;
- any <<= f;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("float")) , any );
-
- double d = 233.321412;
- any <<= d;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("double")) , any );
-
- sal_Bool b = sal_True;
- any.setValue( &b , getCppuBooleanType() );
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("bool")) , any );
-
- sal_Int8 by = 120;
- any <<= by;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("byte")) , any );
-
- sal_Unicode c = 'h';
- any.setValue( &c , getCppuCharType() );
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("char")) , any );
-
- OUString str( RTL_CONSTASCII_USTRINGPARAM( "hi du !" ) );
- any <<= str;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("string")) , any );
-
- any <<= persistRef;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("object")) , any );
-
- // do read and write
- rOut->writeObject( persistRef );
- ERROR_ASSERT( 0 != rIn->available() , "no data arrived at input" );
- Reference< XPersistObject > xReadPersist = rIn->readObject( );
-
- Reference< XPropertySet > rPropRead( xReadPersist , UNO_QUERY );
- ERROR_ASSERT( compareMyPropertySet( rProp , rPropRead ) , "objects has not been read properly !" );
-
- // destroy selfreferences
- rProp->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("object")), Any() );
- rPropRead->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("object")), Any() );
- }
-
- {
- Reference< XMarkableStream > markableOut( rOut , UNO_QUERY );
- ERROR_ASSERT( markableOut.is() , "markable stream cannot be queried" );
-
- // do the same thing multiple times to check if
- // buffering and marks work correctly
- for( int i = 0 ; i < 2000 ; i ++ ) {
-
- Reference < XInterface > x = m_rFactory->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.PersistTest")));
- Reference< XPersistObject > persistRef( x , UNO_QUERY );
-
- Reference < XPropertySet > rProp( persistRef , UNO_QUERY );
- ERROR_ASSERT( rProp.is() , "test object is no property set " );
-
- Any any;
- sal_Int32 i = 0x83482;
- any <<= i;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("long")) , any );
-
- float f = 42.23;
- any <<= f;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("float")) , any );
-
- double d = 233.321412;
- any <<= d;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("double")) , any );
-
- sal_Bool b = sal_True;
- any.setValue( &b , getCppuBooleanType() );
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("bool")) , any );
-
- sal_Int8 by = 120;
- any <<= by;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("byte")) , any );
-
- sal_Unicode c = 'h';
- any.setValue( &c , getCppuCharType() );
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("char")) , any );
-
- OUString str( RTL_CONSTASCII_USTRINGPARAM( "hi du !" ) );
- any <<= str;
- rProp->setPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("string")) , any );
-
- x = m_rFactory->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.PersistTest")));
- Reference <XPersistObject > persist2ndRef( x , UNO_QUERY );
-
- // Note : persist2ndRef contains coincident values, but also coincident values must be
- // saved properly !
- any <<= persist2ndRef;
- rProp->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("object")) , any );
-
- // simply test, if markable operations and object operations do not interfere
- sal_Int32 nMark = markableOut->createMark();
-
- // do read and write
- rOut->writeObject( persistRef );
-
- // further markable tests !
- sal_Int32 nOffset = markableOut->offsetToMark( nMark );
- markableOut->jumpToMark( nMark );
- markableOut->deleteMark( nMark );
- markableOut->jumpToFurthest();
-
-
-
-
-
- ERROR_ASSERT( 0 != rIn->available() , "no data arrived at input" );
- Reference < XPersistObject > xReadPersistRef = rIn->readObject( );
-
- Reference< XPropertySet > rProp1( persistRef , UNO_QUERY );
- Reference< XPropertySet > rProp2( xReadPersistRef , UNO_QUERY );
- ERROR_ASSERT( compareMyPropertySet( rProp1, rProp2) ,
- "objects has not been read properly !" );
- }
- }
-}
-
-
-Reference < XInterface > SAL_CALL OObjectStreamTest_CreateInstance( const Reference < XMultiServiceFactory > & rSMgr ) throw(Exception)
-{
- OObjectStreamTest *p = new OObjectStreamTest( rSMgr );
- return Reference < XInterface > ( SAL_STATIC_CAST( OWeakObject * , p ) );
-}
-
-Sequence<OUString> OObjectStreamTest_getSupportedServiceNames( int i) throw ()
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OObjectStreamTest_getImplementationName( i);
- return aRet;
-}
-
-OUString OObjectStreamTest_getServiceName( int i) throw ()
-{
- if( 1 == i ) {
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.ObjectInputStream" ));
- }
- else {
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.ObjectOutputStream"));
- }
-}
-
-OUString OObjectStreamTest_getImplementationName( int i) throw ()
-{
- if( 1 == i ) {
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.comp.extensions.stm.ObjectInputStream" ));
- }
- else {
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.comp.extensions.stm.ObjectOutputStream"));
- }
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/test/stm/exports.dxp b/io/test/stm/exports.dxp
deleted file mode 100644
index 86214860d..000000000
--- a/io/test/stm/exports.dxp
+++ /dev/null
@@ -1,2 +0,0 @@
-component_getFactory
-component_writeInfo
diff --git a/io/test/stm/makefile.mk b/io/test/stm/makefile.mk
deleted file mode 100644
index f09cdb6ba..000000000
--- a/io/test/stm/makefile.mk
+++ /dev/null
@@ -1,99 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=io
-TARGET=teststm
-NO_BSYMBOLIC=TRUE
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-.IF "$(L10N_framework)"==""
-# --- Files --------------------------------------------------------
-UNOUCRDEP=$(SOLARBINDIR)$/udkapi.rdb
-UNOUCRRDB=$(SOLARBINDIR)$/udkapi.rdb
-
-# output directory (one dir for each project)
-UNOUCROUT=$(OUT)$/inc
-
-UNOTYPES = com.sun.star.test.XSimpleTest \
- com.sun.star.beans.XPropertySet \
- com.sun.star.io.UnexpectedEOFException \
- com.sun.star.io.WrongFormatException \
- com.sun.star.io.XActiveDataControl \
- com.sun.star.io.XActiveDataSink \
- com.sun.star.io.XActiveDataSource \
- com.sun.star.io.XConnectable \
- com.sun.star.io.XMarkableStream \
- com.sun.star.io.XObjectInputStream \
- com.sun.star.io.XObjectOutputStream \
- com.sun.star.lang.IllegalArgumentException \
- com.sun.star.lang.XComponent \
- com.sun.star.lang.XMultiServiceFactory \
- com.sun.star.lang.XServiceInfo \
- com.sun.star.lang.XSingleServiceFactory \
- com.sun.star.lang.XSingleComponentFactory \
- com.sun.star.lang.XMultiComponentFactory \
- com.sun.star.uno.XComponentContext \
- com.sun.star.lang.XTypeProvider \
- com.sun.star.registry.XImplementationRegistration \
- com.sun.star.registry.XRegistryKey \
- com.sun.star.test.XSimpleTest \
- com.sun.star.uno.TypeClass \
- com.sun.star.uno.XAggregation \
- com.sun.star.uno.XWeak
-
-SLOFILES= \
- $(SLO)$/testfactreg.obj \
- $(SLO)$/pipetest.obj \
- $(SLO)$/datatest.obj \
- $(SLO)$/marktest.obj \
- $(SLO)$/pumptest.obj
-
-SHL1TARGET= $(TARGET)
-
-SHL1STDLIBS= \
- $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)
-
-SHL1LIBS= $(SLB)$/$(TARGET).lib
-
-SHL1IMPLIB= i$(TARGET)
-
-SHL1DEPN= makefile.mk $(SHL1LIBS)
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME= $(SHL1TARGET)
-DEF1EXPORTFILE= exports.dxp
-
-
-# --- Targets ------------------------------------------------------
-.ENDIF # L10N_framework
-
-.INCLUDE : target.mk
diff --git a/io/test/stm/marktest.cxx b/io/test/stm/marktest.cxx
deleted file mode 100644
index d863f9c84..000000000
--- a/io/test/stm/marktest.cxx
+++ /dev/null
@@ -1,680 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include <com/sun/star/test/XSimpleTest.hpp>
-#include <com/sun/star/io/XActiveDataSink.hpp>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XMarkableStream.hpp>
-#include <com/sun/star/io/XConnectable.hpp>
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include <cppuhelper/factory.hxx>
-
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase2.hxx>
-
-#include <osl/conditn.hxx>
-#include <osl/mutex.hxx>
-
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::test;
-// streams
-
-#include "testfactreg.hxx"
-
-
-class OMarkableOutputStreamTest : public WeakImplHelper1< XSimpleTest >
-{
-public:
- OMarkableOutputStreamTest( const Reference< XMultiServiceFactory > & rFactory );
- ~OMarkableOutputStreamTest();
-
-public: // implementation names
- static Sequence< OUString > getSupportedServiceNames_Static(void) throw ();
- static OUString getImplementationName_Static() throw ();
-
-public:
- virtual void SAL_CALL testInvariant(
- const OUString& TestName,
- const Reference < XInterface >& TestObject)
- throw ( IllegalArgumentException,
- RuntimeException) ;
-
- virtual sal_Int32 SAL_CALL test( const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException, RuntimeException);
- virtual sal_Bool SAL_CALL testPassed(void)
- throw ( RuntimeException);
- virtual Sequence< OUString > SAL_CALL getErrors(void)
- throw (RuntimeException);
- virtual Sequence< Any > SAL_CALL getErrorExceptions(void)
- throw (RuntimeException);
- virtual Sequence< OUString > SAL_CALL getWarnings(void)
- throw (RuntimeException);
-
-private:
- void testSimple( const Reference< XOutputStream > &r, const Reference < XInputStream > &rInput );
-
-private:
- Sequence<Any> m_seqExceptions;
- Sequence<OUString> m_seqErrors;
- Sequence<OUString> m_seqWarnings;
- Reference< XMultiServiceFactory > m_rFactory;
-
-};
-
-OMarkableOutputStreamTest::OMarkableOutputStreamTest( const Reference< XMultiServiceFactory > &rFactory )
- : m_rFactory( rFactory )
-{
-
-}
-
-OMarkableOutputStreamTest::~OMarkableOutputStreamTest()
-{
-
-}
-
-
-
-
-void OMarkableOutputStreamTest::testInvariant( const OUString& TestName,
- const Reference < XInterface >& TestObject )
- throw ( IllegalArgumentException, RuntimeException)
-{
- Reference< XServiceInfo > info( TestObject, UNO_QUERY );
- ERROR_ASSERT( info.is() , "XServiceInfo not supported !" );
- if( info.is() )
- {
- ERROR_ASSERT( info->supportsService( TestName ), "XServiceInfo test failed" );
- ERROR_ASSERT( ! info->supportsService(
- OUString( RTL_CONSTASCII_USTRINGPARAM("bla bluzb")) ) , "XServiceInfo test failed" );
- }
-}
-
-
-sal_Int32 OMarkableOutputStreamTest::test(
- const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException, RuntimeException)
-{
- if( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.MarkableOutputStream") )
- == TestName ) {
- try
- {
- if( 0 == hTestHandle )
- {
- testInvariant( TestName , TestObject );
- }
- else
- {
- Reference < XInterface > x = m_rFactory->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe")));
- Reference< XOutputStream > rPipeOutput( x , UNO_QUERY );
- Reference < XInputStream > rPipeInput( x , UNO_QUERY );
-
- Reference< XActiveDataSource > source( TestObject , UNO_QUERY );
- source->setOutputStream( rPipeOutput );
-
- Reference< XOutputStream > rOutput( TestObject , UNO_QUERY );
-
- OSL_ASSERT( rPipeInput.is() );
- OSL_ASSERT( rOutput.is() );
- if( 1 == hTestHandle ) {
- // checks usual streaming
- testSimple( rOutput , rPipeInput );
- }
- }
-
- }
- catch( Exception &e )
- {
- OString o = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- BUILD_ERROR( 0 , o.getStr() );
- }
- catch( ... )
- {
- BUILD_ERROR( 0 , "unknown exception (Exception is not base class)" );
- }
-
- hTestHandle ++;
-
- if( 2 == hTestHandle )
- {
- // all tests finished.
- hTestHandle = -1;
- }
- }
- else {
- throw IllegalArgumentException();
- }
- return hTestHandle;
-}
-
-
-
-sal_Bool OMarkableOutputStreamTest::testPassed(void) throw (RuntimeException)
-{
- return m_seqErrors.getLength() == 0;
-}
-
-
-Sequence< OUString > OMarkableOutputStreamTest::getErrors(void) throw (RuntimeException)
-{
- return m_seqErrors;
-}
-
-
-Sequence< Any > OMarkableOutputStreamTest::getErrorExceptions(void) throw (RuntimeException)
-{
- return m_seqExceptions;
-}
-
-
-Sequence< OUString > OMarkableOutputStreamTest::getWarnings(void) throw (RuntimeException)
-{
- return m_seqWarnings;
-}
-
-
-void OMarkableOutputStreamTest::testSimple( const Reference< XOutputStream > &rOutput ,
- const Reference< XInputStream > &rInput )
-{
- Reference < XMarkableStream > rMarkable( rOutput , UNO_QUERY );
-
- ERROR_ASSERT( rMarkable.is() , "no MarkableStream implemented" );
-
- // first check normal input/output facility
- char pcStr[] = "Live long and prosper !";
-
- Sequence<sal_Int8> seqWrite( strlen( pcStr )+1 );
- memcpy( seqWrite.getArray() , pcStr , seqWrite.getLength() );
-
- Sequence<sal_Int8> seqRead( seqWrite.getLength() );
-
- int nMax = 10,i;
-
- for( i = 0 ; i < nMax ; i ++ ) {
- rOutput->writeBytes( seqWrite );
- rInput->readBytes( seqRead , rInput->available() );
- ERROR_ASSERT( ! strcmp( (char *) seqWrite.getArray() , (char * )seqRead.getArray() ) ,
- "error during read/write/skip" );
- }
-
- // Check buffer resizing
- nMax = 3000;
- for( i = 0 ; i < nMax ; i ++ ) {
- rOutput->writeBytes( seqWrite );
- }
-
- for( i = 0 ; i < nMax ; i ++ ) {
- rInput->readBytes( seqRead , seqWrite.getLength() );
- ERROR_ASSERT( ! strcmp( (char *) seqWrite.getArray() , (char * )seqRead.getArray() ) ,
- "error during read/write" );
- }
-
- // Check creating marks !
- sal_Int32 nMark = rMarkable->createMark();
-
- for( i = 0 ; i < nMax ; i ++ ) {
- rOutput->writeBytes( seqWrite );
- }
-
- ERROR_ASSERT( 0 == rInput->available() , "bytes available though mark is holded" );
-
- ERROR_ASSERT( nMax*seqWrite.getLength() == rMarkable->offsetToMark( nMark ) ,
- "offsetToMark failure" );
-
- rMarkable->deleteMark( nMark );
- ERROR_ASSERT( nMax*seqWrite.getLength() == rInput->available(),"bytes are not available though mark has been deleted" );
-
- rInput->skipBytes( nMax*seqWrite.getLength() );
- ERROR_ASSERT( 0 == rInput->available(), "skip bytes failure" );
-
- try
- {
- rMarkable->jumpToMark( nMark );
- ERROR_ASSERT( 0 , "jump to non existing mark possible !" );
- }
- catch ( IllegalArgumentException & )
- {
- // ok, exception was thrown
- }
-
- // test putting marks not at the end of the stream!
- ERROR_ASSERT( 0 == rInput->available(), "stream isn't clean" );
- {
- Sequence< sal_Int8 > aByte(256);
-
- for( i = 0 ; i < 256 ; i ++ )
- {
- aByte.getArray()[i] = i;
- }
- sal_Int32 nMark1 = rMarkable->createMark();
-
- rOutput->writeBytes( aByte );
- rMarkable->jumpToMark( nMark1 );
- aByte.realloc( 10 );
- rOutput->writeBytes( aByte );
-
- sal_Int32 nMark2 = rMarkable->createMark( );
-
- for( i = 0 ; i < 10 ; i ++ )
- {
- aByte.getArray()[i] = i+10;
- }
-
- rOutput->writeBytes( aByte );
-
- // allow the bytes to be written !
- rMarkable->jumpToFurthest();
- rMarkable->deleteMark( nMark1 );
- rMarkable->deleteMark( nMark2 );
-
- ERROR_ASSERT( 256 == rInput->available(), "in between mark failure" );
- rInput->readBytes( aByte ,256);
- for( i = 0 ; i < 256 ; i ++ )
- {
- ERROR_ASSERT( i == ((sal_uInt8*)(aByte.getArray()))[i] , "in between mark failure" );
- }
- }
-
- {
- // now a more extensive mark test !
- Sequence<sal_Int8> as[4];
- sal_Int32 an[4];
-
- for( i = 0 ; i < 4 ; i ++ ) {
- as[i].realloc(1);
- as[i].getArray()[0] = i;
- an[i] = rMarkable->createMark();
- rOutput->writeBytes( as[i] );
- }
-
- // check offset to mark
- for( i = 0 ; i < 4 ; i ++ ) {
- ERROR_ASSERT( rMarkable->offsetToMark( an[i] ) == 4-i , "offsetToMark failure" );
- }
-
- rMarkable->jumpToMark( an[1] );
- ERROR_ASSERT( rMarkable->offsetToMark( an[3] ) == -2 , "offsetToMark failure" );
-
- rMarkable->jumpToFurthest( );
- ERROR_ASSERT( rMarkable->offsetToMark( an[0] ) == 4 , "offsetToMark failure" );
-
- // now do a rewrite !
- for( i = 0 ; i < 4 ; i ++ ) {
- rMarkable->jumpToMark( an[3-i] );
- rOutput->writeBytes( as[i] );
- }
- // NOTE : CursorPos 1
-
- // now delete the marks !
- for( i = 0 ; i < 4 ; i ++ ) {
- rMarkable->deleteMark( an[i] );
- }
- ERROR_ASSERT( rInput->available() == 1 , "wrong number of bytes flushed" );
-
- rMarkable->jumpToFurthest();
-
- ERROR_ASSERT( rInput->available() == 4 , "wrong number of bytes flushed" );
-
- rInput->readBytes( seqRead , 4 );
-
- ERROR_ASSERT( 3 == seqRead.getArray()[0] , "rewrite didn't work" );
- ERROR_ASSERT( 2 == seqRead.getArray()[1] , "rewrite didn't work" );
- ERROR_ASSERT( 1 == seqRead.getArray()[2] , "rewrite didn't work" );
- ERROR_ASSERT( 0 == seqRead.getArray()[3] , "rewrite didn't work" );
-
- rOutput->closeOutput();
- rInput->closeInput();
- }
-
-}
-
-/***
-* the test methods
-*
-****/
-
-
-
-
-
-/**
-* for external binding
-*
-*
-**/
-Reference < XInterface > SAL_CALL OMarkableOutputStreamTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw(Exception)
-{
- OMarkableOutputStreamTest *p = new OMarkableOutputStreamTest( rSMgr );
- return Reference < XInterface > ( SAL_STATIC_CAST( OWeakObject * , p ) );
-}
-
-
-
-Sequence<OUString> OMarkableOutputStreamTest_getSupportedServiceNames(void) throw ()
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OMarkableOutputStreamTest_getImplementationName();
-
- return aRet;
-}
-
-OUString OMarkableOutputStreamTest_getServiceName() throw ()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.MarkableOutputStream"));
-}
-
-OUString OMarkableOutputStreamTest_getImplementationName() throw ()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.starextensions.stm.MarkableOutputStream"));
-}
-
-
-
-
-
-
-
-//-----------------------------------------------------
-// Input stream
-
-
-class OMarkableInputStreamTest : public WeakImplHelper1< XSimpleTest >
-{
-public:
- OMarkableInputStreamTest( const Reference< XMultiServiceFactory > & rFactory );
- ~OMarkableInputStreamTest();
-
-public: // implementation names
- static Sequence< OUString > getSupportedServiceNames_Static(void) throw () ;
- static OUString getImplementationName_Static() throw () ;
-
-public:
- virtual void SAL_CALL testInvariant(
- const OUString& TestName,
- const Reference < XInterface >& TestObject)
- throw ( IllegalArgumentException, RuntimeException) ;
-
- virtual sal_Int32 SAL_CALL test(
- const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException,
- RuntimeException) ;
-
- virtual sal_Bool SAL_CALL testPassed(void)
- throw ( RuntimeException);
- virtual Sequence< OUString > SAL_CALL getErrors(void)
- throw (RuntimeException);
- virtual Sequence< Any > SAL_CALL getErrorExceptions(void)
- throw (RuntimeException);
- virtual Sequence< OUString > SAL_CALL getWarnings(void)
- throw (RuntimeException);
-
-private:
- void testSimple( const Reference< XOutputStream > &r,
- const Reference < XInputStream > &rInput );
-
-private:
- Sequence<Any> m_seqExceptions;
- Sequence<OUString> m_seqErrors;
- Sequence<OUString> m_seqWarnings;
- Reference< XMultiServiceFactory > m_rFactory;
-
-};
-
-OMarkableInputStreamTest::OMarkableInputStreamTest( const Reference< XMultiServiceFactory > &rFactory )
- : m_rFactory( rFactory )
-{
-
-}
-
-OMarkableInputStreamTest::~OMarkableInputStreamTest()
-{
-
-}
-
-
-
-void OMarkableInputStreamTest::testInvariant(
- const OUString& TestName, const Reference < XInterface >& TestObject )
- throw ( IllegalArgumentException, RuntimeException)
-{
- if( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.MarkableInputStream"))
- == TestName ) {
- Reference <XServiceInfo > info( TestObject, UNO_QUERY );
- ERROR_ASSERT( info.is() , "XServiceInfo not supported !" );
- if( info.is() )
- {
- ERROR_ASSERT( info->supportsService( TestName ), "XServiceInfo test failed" );
- ERROR_ASSERT(
- ! info->supportsService(
- OUString(RTL_CONSTASCII_USTRINGPARAM("bla bluzb")) ) ,
- "XServiceInfo test failed" );
- }
- }
- else
- {
- throw IllegalArgumentException();
- }
-}
-
-
-sal_Int32 OMarkableInputStreamTest::test(
- const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle) throw ( IllegalArgumentException, RuntimeException)
-{
- if( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.MarkableInputStream")) == TestName )
- {
- try
- {
- if( 0 == hTestHandle ) {
- testInvariant( TestName , TestObject );
- }
- else {
- Reference < XInterface > x = m_rFactory->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe")));
- Reference< XOutputStream > rPipeOutput( x , UNO_QUERY );
- Reference < XInputStream > rPipeInput( x , UNO_QUERY );
-
- Reference < XActiveDataSink > sink( TestObject , UNO_QUERY );
- sink->setInputStream( rPipeInput );
-
- Reference < XInputStream > rInput( TestObject , UNO_QUERY );
-
- OSL_ASSERT( rPipeOutput.is() );
- OSL_ASSERT( rInput.is() );
- if( 1 == hTestHandle ) {
- // checks usual streaming
- testSimple( rPipeOutput , rInput );
- }
- }
-
- }
- catch( Exception & e )
- {
- OString o = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- BUILD_ERROR( 0 , o.getStr() );
- }
- catch( ... )
- {
- BUILD_ERROR( 0 , "unknown exception (Exception is not base class)" );
- }
-
- hTestHandle ++;
-
- if( 2 == hTestHandle ) {
- // all tests finished.
- hTestHandle = -1;
- }
- }
- else
- {
- throw IllegalArgumentException();
- }
- return hTestHandle;
-}
-
-
-
-sal_Bool OMarkableInputStreamTest::testPassed(void) throw (RuntimeException)
-{
- return m_seqErrors.getLength() == 0;
-}
-
-
-Sequence< OUString > OMarkableInputStreamTest::getErrors(void) throw (RuntimeException)
-{
- return m_seqErrors;
-}
-
-
-Sequence< Any > OMarkableInputStreamTest::getErrorExceptions(void) throw (RuntimeException)
-{
- return m_seqExceptions;
-}
-
-
-Sequence< OUString > OMarkableInputStreamTest::getWarnings(void) throw (RuntimeException)
-{
- return m_seqWarnings;
-}
-
-
-void OMarkableInputStreamTest::testSimple( const Reference< XOutputStream > &rOutput ,
- const Reference < XInputStream > &rInput )
-{
- Reference < XMarkableStream > rMarkable( rInput , UNO_QUERY );
-
- Sequence<sal_Int8> seqWrite( 256 );
- Sequence<sal_Int8> seqRead(10);
-
- for( int i = 0 ; i < 256 ; i ++ )
- {
- seqWrite.getArray()[i] = i;
- }
-
- rOutput->writeBytes( seqWrite );
- ERROR_ASSERT( 256 == rInput->available() , "basic read/write failure" );
-
- rInput->readBytes( seqRead , 10 );
- ERROR_ASSERT( 9 == seqRead.getArray()[9] , "basic read/write failure" );
-
- sal_Int32 nMark = rMarkable->createMark();
-
- rInput->skipBytes( 50 );
- ERROR_ASSERT( 256-10-50 == rInput->available() , "marking error" );
- ERROR_ASSERT( 50 == rMarkable->offsetToMark( nMark ) , "marking error" );
-
- rMarkable->jumpToMark( nMark );
- ERROR_ASSERT( 256-10 == rInput->available() , "marking error" );
-
- rInput->readBytes( seqRead , 10 );
- ERROR_ASSERT( 10 == seqRead.getArray()[0] , "marking error" );
-
- // pos 20
- {
- sal_Int32 nInBetweenMark = rMarkable->createMark( );
- rMarkable->jumpToMark( nMark );
- rMarkable->jumpToMark( nInBetweenMark );
-
- rInput->readBytes( seqRead , 10 );
- ERROR_ASSERT( 20 == seqRead.getArray()[0] , "Inbetween mark failed!\n" );
-
- rMarkable->deleteMark( nMark );
-
- // Check if releasing the first bytes works correct.
- rMarkable->jumpToMark( nInBetweenMark);
- rInput->readBytes( seqRead , 10 );
- ERROR_ASSERT( 20 == seqRead.getArray()[0] , "Inbetween mark failed!\n" );
-
- rMarkable->deleteMark( nInBetweenMark );
- }
-
- rMarkable->jumpToFurthest();
- ERROR_ASSERT( 256-10-50 == rInput->available() , "marking error" );
-
-
- ERROR_ASSERT( 100 == rInput->readSomeBytes( seqRead , 100 ) , "wrong results using readSomeBytes" );
- ERROR_ASSERT( 96 == rInput->readSomeBytes( seqRead , 1000) , "wrong results using readSomeBytes" );
- rOutput->closeOutput();
- rInput->closeInput();
-}
-
-/***
-* the test methods
-*
-****/
-
-
-
-
-
-/**
-* for external binding
-*
-*
-**/
-Reference < XInterface > SAL_CALL OMarkableInputStreamTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw(Exception)
-{
- OMarkableInputStreamTest *p = new OMarkableInputStreamTest( rSMgr );
- return Reference < XInterface > ( SAL_STATIC_CAST( OWeakObject * , p ) );
-}
-
-
-
-Sequence<OUString> OMarkableInputStreamTest_getSupportedServiceNames(void) throw ()
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OMarkableInputStreamTest_getImplementationName();
-
- return aRet;
-}
-
-OUString OMarkableInputStreamTest_getServiceName() throw ()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.io.MarkableInputStream"));
-}
-
-OUString OMarkableInputStreamTest_getImplementationName() throw ()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM("test.com.sun.star.extensions.stm.MarkableInputStream" ));
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/test/stm/pipetest.cxx b/io/test/stm/pipetest.cxx
deleted file mode 100644
index 2e7acaa78..000000000
--- a/io/test/stm/pipetest.cxx
+++ /dev/null
@@ -1,442 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-#include <com/sun/star/test/XSimpleTest.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XConnectable.hpp>
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include <cppuhelper/factory.hxx>
-
-#include <cppuhelper/implbase1.hxx> // OWeakObject
-
-#include <osl/conditn.hxx>
-#include <osl/mutex.hxx>
-#include <osl/thread.hxx>
-
-#include <string.h>
-
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::test;
-// streams
-
-#include "testfactreg.hxx"
-#define IMPLEMENTATION_NAME "test.com.sun.star.comp.extensions.stm.Pipe"
-#define SERVICE_NAME "test.com.sun.star.io.Pipe"
-
-
-class WriteToStreamThread :
- public Thread
-{
-
-public:
-
- WriteToStreamThread( Reference< XOutputStream > xOutput , int iMax )
- {
- m_output = xOutput;
- m_iMax = iMax;
- }
-
- virtual ~WriteToStreamThread() {}
-
-
-protected:
-
- /// Working method which should be overridden.
- virtual void SAL_CALL run() {
- for( int i = 0 ; i < m_iMax ; i ++ ) {
- m_output->writeBytes( createIntSeq(i) );
- }
- m_output->closeOutput();
- }
-
- /** Called when run() is done.
- * You might want to override it to do some cleanup.
- */
- virtual void SAL_CALL onTerminated()
- {
- delete this;
- }
-
-
-private:
-
- Reference < XOutputStream > m_output;
- int m_iMax;
-};
-
-
-
-class OPipeTest : public WeakImplHelper1 < XSimpleTest >
-{
-public:
- OPipeTest( const Reference< XMultiServiceFactory > & rFactory );
- ~OPipeTest();
-
-public: // implementation names
- static Sequence< OUString > getSupportedServiceNames_Static(void) throw();
- static OUString getImplementationName_Static() throw();
-
-public:
- virtual void SAL_CALL testInvariant(const OUString& TestName, const Reference < XInterface >& TestObject)
- throw ( IllegalArgumentException, RuntimeException) ;
-
- virtual sal_Int32 SAL_CALL test( const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException,
- RuntimeException);
-
- virtual sal_Bool SAL_CALL testPassed(void) throw ( RuntimeException) ;
- virtual Sequence< OUString > SAL_CALL getErrors(void) throw (RuntimeException) ;
- virtual Sequence< Any > SAL_CALL getErrorExceptions(void) throw (RuntimeException);
- virtual Sequence< OUString > SAL_CALL getWarnings(void) throw (RuntimeException);
-
-private:
- void testSimple( const Reference < XInterface > & );
- void testBufferResizing( const Reference < XInterface > & );
- void testMultithreading( const Reference < XInterface > & );
-
-private:
- Sequence<Any> m_seqExceptions;
- Sequence<OUString> m_seqErrors;
- Sequence<OUString> m_seqWarnings;
-
-};
-
-
-
-OPipeTest::OPipeTest( const Reference< XMultiServiceFactory > &rFactory )
-{
-
-}
-
-OPipeTest::~OPipeTest()
-{
-
-}
-
-
-
-void OPipeTest::testInvariant( const OUString& TestName, const Reference < XInterface >& TestObject )
- throw ( IllegalArgumentException,
- RuntimeException)
-{
- Reference< XServiceInfo > info( TestObject, UNO_QUERY );
- ERROR_ASSERT( info.is() , "XServiceInfo not supported !" );
- if( info.is() )
- {
- ERROR_ASSERT( info->supportsService( TestName ), "XServiceInfo test failed" );
- ERROR_ASSERT( ! info->supportsService(
- OUString( RTL_CONSTASCII_USTRINGPARAM("bla bluzb") ) ), "XServiceInfo test failed" );
- }
-
-}
-
-
-sal_Int32 OPipeTest::test(
- const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException, RuntimeException)
-{
- if( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe") ) == TestName ) {
- try
- {
- if( 0 == hTestHandle ) {
- testInvariant( TestName , TestObject );
- }
- else if( 1 == hTestHandle ) {
- testSimple( TestObject );
- }
- else if( 2 == hTestHandle ) {
- testBufferResizing( TestObject );
- }
- else if( 3 == hTestHandle ) {
- testMultithreading( TestObject );
- }
- }
- catch( Exception & e )
- {
- OString s = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- BUILD_ERROR( 0 , s.getStr() );
- }
- catch( ... )
- {
- BUILD_ERROR( 0 , "unknown exception (Exception is not base class)" );
- }
-
- hTestHandle ++;
-
- if( 4 == hTestHandle )
- {
- // all tests finished.
- hTestHandle = -1;
- }
- }
- else {
- throw IllegalArgumentException();
- }
- return hTestHandle;
-}
-
-
-
-sal_Bool OPipeTest::testPassed(void) throw (RuntimeException)
-{
- return m_seqErrors.getLength() == 0;
-}
-
-
-Sequence< OUString > OPipeTest::getErrors(void) throw (RuntimeException)
-{
- return m_seqErrors;
-}
-
-
-Sequence< Any > OPipeTest::getErrorExceptions(void) throw (RuntimeException)
-{
- return m_seqExceptions;
-}
-
-
-Sequence< OUString > OPipeTest::getWarnings(void) throw (RuntimeException)
-{
- return m_seqWarnings;
-}
-
-
-/***
-* the test methods
-*
-****/
-
-
-void OPipeTest::testSimple( const Reference < XInterface > &r )
-{
-
- Reference< XInputStream > input( r , UNO_QUERY );
- Reference < XOutputStream > output( r , UNO_QUERY );
-
- ERROR_ASSERT( input.is() , "queryInterface on XInputStream failed" );
- ERROR_ASSERT( output.is() , "queryInterface onXOutputStream failed" );
-
- // basic read/write
- Sequence<sal_Int8> seqWrite = createSeq( "Hallo, du Ei !" );
-
- Sequence<sal_Int8> seqRead;
- for( int i = 0 ; i < 5000 ; i ++ ) {
- output->writeBytes( seqWrite );
- input->readBytes( seqRead , input->available() );
-
- ERROR_ASSERT( ! strcmp( (char *) seqWrite.getArray() , (char * )seqRead.getArray() ) ,
- "error during read/write/skip" );
- ERROR_ASSERT( 0 == input->available() ,
- "error during read/write/skip" );
-
- // available shouldn't return a negative value
- input->skipBytes( seqWrite.getLength() - 5 );
- ERROR_ASSERT( 0 == input->available() , "wrong available after skip" );
-
- // 5 bytes should be available
- output->writeBytes( seqWrite );
- ERROR_ASSERT( 5 == input->available() , "wrong available after skip/write " );
-
- input->readBytes( seqRead , 5 );
- ERROR_ASSERT( ! strcmp( (char*) seqRead.getArray() ,
- (char*) &( seqWrite.getArray()[seqWrite.getLength()-5] ) ),
- "write/read mismatich" );
-
- }
-
- output->writeBytes( seqWrite );
- ERROR_ASSERT( seqWrite.getLength() == input->available(), "wrong available() after write" );
-
- ERROR_ASSERT( 10 == input->readSomeBytes( seqRead , 10 ) , "maximal number of bytes ignored" );
- ERROR_ASSERT( seqWrite.getLength() -10 == input->readSomeBytes( seqRead , 100 ) ,
- "something wrong with readSomeBytes" );
-
-
- output->closeOutput();
- try{
- output->writeBytes( Sequence<sal_Int8> (100) );
- ERROR_ASSERT( 0 , "writing on a closed stream does not cause an exception" );
- }
- catch (IOException & )
- {
- }
-
- ERROR_ASSERT(! input->readBytes( seqRead , 1 ), "eof not found !" );
-
- input->closeInput();
- try
- {
- input->readBytes( seqRead , 1 );
- ERROR_ASSERT( 0 , "reading from a closed stream does not cause an exception" );
- }
- catch( IOException & ) {
- }
-
- try
- {
- input->available( );
- ERROR_ASSERT( 0 , "calling available from a closed stream should thrown an io exception" );
- }
- catch( IOException & )
- {
-
- }
- try
- {
- input->skipBytes(42 );
- ERROR_ASSERT( 0 , "calling available from a closed stream should thrown an io exception" );
- }
- catch( IOException & )
- {
-
- }
-}
-
-void OPipeTest::testBufferResizing( const Reference < XInterface > &r )
-{
- int i;
- int iMax = 20000;
- Reference< XInputStream > input( r , UNO_QUERY );
- Reference < XOutputStream > output( r , UNO_QUERY );
-
- ERROR_ASSERT( input.is() , "queryInterface on XInputStream failed" );
- ERROR_ASSERT( output.is() , "queryInterface on XOutputStream failed" );
-
- Sequence<sal_Int8> seqRead;
-
- // this is just to better check the
- // internal buffers
- output->writeBytes( Sequence<sal_Int8>(100) );
- Sequence< sal_Int8 > dummy;
- input->readBytes( dummy , 100);
-
- for( i = 0 ; i < iMax ; i ++ ) {
- output->writeBytes( createIntSeq( i ) );
- }
-
- for( i = 0 ; i < iMax ; i ++ ) {
- input->readBytes( seqRead, createIntSeq(i).getLength() );
- ERROR_ASSERT( ! strcmp( (char*) seqRead.getArray() ,
- (char*) createIntSeq(i).getArray() ) ,
- "written/read mismatch\n" );
- }
-
- output->closeOutput();
- ERROR_ASSERT( ! input->readBytes( seqRead , 1 ) , "eof not reached !" );
- input->closeInput();
-}
-
-
-
-void OPipeTest::testMultithreading( const Reference < XInterface > &r )
-{
-
- int i;
- int iMax = 30000;
-
- Reference< XInputStream > input( r , UNO_QUERY );
- Reference < XOutputStream > output( r , UNO_QUERY );
-
- ERROR_ASSERT( input.is() , "queryInterface on XInputStream failed" );
- ERROR_ASSERT( output.is() , "queryInterface on XOutputStream failed" );
-
- Sequence<sal_Int8> seqRead;
-
- // deletes itself
- Thread *p = new WriteToStreamThread( output, iMax );
-
- ERROR_ASSERT( p , "couldn't create thread for testing !\n" );
-
- p->create();
-
- for( i = 0 ; sal_True ; i ++ ) {
- if( 0 == input->readBytes( seqRead, createIntSeq(i).getLength() ) ) {
- // eof reached !
- break;
- }
-
- ERROR_ASSERT( ! strcmp( (char*) seqRead.getArray() ,
- (char*) createIntSeq(i).getArray() ) ,
- "written/read mismatch\n" );
- }
-
- ERROR_ASSERT( i == iMax , "less elements read than written !");
- input->closeInput();
-}
-
-
-
-/**
-* for external binding
-*
-*
-**/
-Reference < XInterface > SAL_CALL OPipeTest_CreateInstance( const Reference< XMultiServiceFactory> & rSMgr ) throw (Exception)
-{
- OPipeTest *p = new OPipeTest( rSMgr );
- Reference< XInterface > x ( SAL_STATIC_CAST( OWeakObject * , p ) );
- return x;
-}
-
-
-
-Sequence<OUString> OPipeTest_getSupportedServiceNames(void) throw()
-{
- Sequence<OUString> aRet(1);
- aRet.getArray()[0] = OPipeTest_getServiceName();
-
- return aRet;
-}
-
-OUString OPipeTest_getServiceName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICE_NAME ) );
-}
-
-OUString OPipeTest_getImplementationName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/test/stm/pumptest.cxx b/io/test/stm/pumptest.cxx
deleted file mode 100644
index 122e3323a..000000000
--- a/io/test/stm/pumptest.cxx
+++ /dev/null
@@ -1,452 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include <stdio.h>
-#include <osl/time.h>
-
-#include <osl/diagnose.h>
-#include <com/sun/star/test/XSimpleTest.hpp>
-
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XActiveDataSink.hpp>
-#include <com/sun/star/io/XActiveDataControl.hpp>
-#include <com/sun/star/io/XConnectable.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
-
-#include <uno/dispatcher.h>
-#include <uno/mapping.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/factory.hxx>
-#include <osl/mutex.hxx>
-#include <osl/thread.h>
-#include <list>
-
-
-
-
-using namespace ::rtl;
-using namespace ::osl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::test;
-
-#include "testfactreg.hxx"
-
-static void mywait()
-{
- TimeValue a = { 0, 10000 };
- osl_waitThread( &a );
- osl_yieldThread();
- osl_yieldThread();
-}
-
-class OPumpTest : public WeakImplHelper1 < XSimpleTest >
-{
-public:
- OPumpTest( const Reference< XMultiServiceFactory > & rFactory );
- ~OPumpTest();
-
-public: // implementation names
- static Sequence< OUString > getSupportedServiceNames_Static(void) throw();
- static OUString getImplementationName_Static() throw();
-
-public:
- virtual void SAL_CALL testInvariant(const OUString& TestName, const Reference < XInterface >& TestObject)
- throw ( IllegalArgumentException, RuntimeException) ;
-
- virtual sal_Int32 SAL_CALL test( const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException,
- RuntimeException);
-
- virtual sal_Bool SAL_CALL testPassed(void) throw ( RuntimeException) ;
- virtual Sequence< OUString > SAL_CALL getErrors(void) throw (RuntimeException) ;
- virtual Sequence< Any > SAL_CALL getErrorExceptions(void) throw (RuntimeException);
- virtual Sequence< OUString > SAL_CALL getWarnings(void) throw (RuntimeException);
-
-private:
- void testSimple( const Reference < XInterface > & );
- void testWrongUsage( const Reference < XInterface > & );
- void testClose( const Reference< XInterface >& );
- void testTerminate( const Reference< XInterface >& );
- void testFunction( const Reference< XInterface >& );
-private:
- Sequence<Any> m_seqExceptions;
- Sequence<OUString> m_seqErrors;
- Sequence<OUString> m_seqWarnings;
- Reference< XMultiServiceFactory > m_rSmgr;
-
-};
-
-OPumpTest::OPumpTest( const Reference< XMultiServiceFactory > &rFactory ) :
- m_rSmgr( rFactory )
-{
-
-}
-
-OPumpTest::~OPumpTest()
-{
-
-}
-
-
-
-void OPumpTest::testInvariant( const OUString& TestName, const Reference < XInterface >& TestObject )
- throw ( IllegalArgumentException,
- RuntimeException)
-{
- Reference< XServiceInfo > info( TestObject, UNO_QUERY );
- ERROR_ASSERT( info.is() , "XServiceInfo not supported !" );
- if( info.is() )
- {
- ERROR_ASSERT( info->supportsService( TestName ), "XServiceInfo test failed" );
- ERROR_ASSERT( ! info->supportsService(
- OUString( RTL_CONSTASCII_USTRINGPARAM("bla bluzb") ) ), "XServiceInfo test failed" );
- }
-
- Reference < XActiveDataSource > xActiveDataSource( TestObject, UNO_QUERY );
- Reference < XActiveDataSink > xActiveDataSink( TestObject, UNO_QUERY );
- Reference < XActiveDataControl > xActiveDataControl( TestObject , UNO_QUERY );
- Reference < XConnectable > xConnectable( TestObject , UNO_QUERY );
-
- ERROR_ASSERT( xActiveDataSource.is() && xActiveDataSink.is() && xActiveDataControl.is () &&
- xConnectable.is(), "specified interface not supported" );
-}
-
-
-sal_Int32 OPumpTest::test(
- const OUString& TestName,
- const Reference < XInterface >& TestObject,
- sal_Int32 hTestHandle)
- throw ( IllegalArgumentException, RuntimeException)
-{
- if( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pump") ) == TestName ) {
- try
- {
- if( 0 == hTestHandle ) {
- testInvariant( TestName , TestObject );
- }
- else if ( 1 == hTestHandle )
- {
- testWrongUsage( TestObject);
- }
- else if ( 2 == hTestHandle )
- {
- testClose( TestObject);
- }
- else if ( 3 == hTestHandle )
- {
- testTerminate( TestObject );
- }
- else if ( 4 == hTestHandle )
- {
- testFunction( TestObject );
- }
- }
- catch( Exception & e )
- {
- OString s = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- BUILD_ERROR( 0 , s.getStr() );
- }
- catch( ... )
- {
- BUILD_ERROR( 0 , "unknown exception (Exception is not base class)" );
- }
-
- hTestHandle ++;
-
- if( 5 == hTestHandle )
- {
- // all tests finished.
- hTestHandle = -1;
- }
- }
- else {
- throw IllegalArgumentException();
- }
- return hTestHandle;
-}
-
-
-
-sal_Bool OPumpTest::testPassed(void) throw (RuntimeException)
-{
- return m_seqErrors.getLength() == 0;
-}
-
-
-Sequence< OUString > OPumpTest::getErrors(void) throw (RuntimeException)
-{
- return m_seqErrors;
-}
-
-
-Sequence< Any > OPumpTest::getErrorExceptions(void) throw (RuntimeException)
-{
- return m_seqExceptions;
-}
-
-
-Sequence< OUString > OPumpTest::getWarnings(void) throw (RuntimeException)
-{
- return m_seqWarnings;
-}
-
-
-/***
-* the test methods
-*
-****/
-
-
-void OPumpTest::testSimple( const Reference < XInterface > &r )
-{
- // jbu todo: add sensible test
-
-}
-
-class TestListener: public WeakImplHelper1< XStreamListener >
-{
-public:
- sal_Bool m_bStarted;
- sal_Bool m_bClosed;
- sal_Bool m_bTerminated;
- sal_Bool m_bError;
- sal_Bool m_bDisposed;
- TestListener() : m_bStarted (sal_False),
- m_bClosed (sal_False),
- m_bTerminated ( sal_False ),
- m_bError( sal_False ),
- m_bDisposed( sal_False )
- {}
-
- virtual void SAL_CALL disposing( const EventObject &obj ) throw (::com::sun::star::uno::RuntimeException)
- {
- m_bDisposed = sal_True;
-// printf( "disposing called\n");
- }
-
- virtual void SAL_CALL started( ) throw (::com::sun::star::uno::RuntimeException)
- {
- m_bStarted = sal_True;
-// printf( "started called\n");
- }
- virtual void SAL_CALL closed( ) throw (::com::sun::star::uno::RuntimeException)
- {
- m_bClosed = sal_True;
-// printf( "closed called\n");
- }
- virtual void SAL_CALL terminated( ) throw (::com::sun::star::uno::RuntimeException)
- {
- m_bTerminated = sal_True;
-// printf( "terminated called\n");
- }
- virtual void SAL_CALL error( const ::com::sun::star::uno::Any& aException )
- throw (::com::sun::star::uno::RuntimeException)
- {
- m_bError = sal_True;
- Exception e;
- aException >>= e;
-// printf( "error called %s\n", OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US).getStr() );
- }
-};
-
-class TestCase
-{
-public:
- TestCase( const Reference< XMultiServiceFactory > & rSMgr,
- const Reference< XInterface > &r ) : m_rSmgr( rSMgr ), m_pTestListener( 0 )
- {
- m_rControl = Reference<XActiveDataControl>( r, UNO_QUERY );
-
- Reference< XActiveDataSource > rSource ( r, UNO_QUERY );
- Reference< XActiveDataSink > rSink( r , UNO_QUERY );
-
- m_rOutSource = Reference< XOutputStream > ( createPipe() );
- rSink->setInputStream(Reference< XInputStream> (m_rOutSource,UNO_QUERY));
-
- Reference< XOutputStream > rOutSink( createPipe() );
- m_rInSink = Reference< XInputStream > ( rOutSink, UNO_QUERY );
- rSource->setOutputStream( rOutSink );
-
- m_pTestListener = new TestListener();
- m_pTestListener->acquire();
- m_rControl->addListener( m_pTestListener );
- }
-
- ~TestCase()
- {
- if( m_pTestListener )
- m_pTestListener->release();
- }
-
- TestListener *m_pTestListener;
- Reference< XActiveDataControl > m_rControl;
- Reference< XOutputStream > m_rOutSource;
- Reference< XInputStream > m_rInSink;
- Reference< XMultiServiceFactory > m_rSmgr;
-
-private:
- Reference< XOutputStream > createPipe()
- {
- Reference< XOutputStream > rOut( m_rSmgr->createInstance(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe"))),UNO_QUERY);
- return rOut;
- }
-};
-
-
-
-void OPumpTest::testClose( const Reference< XInterface > &r )
-{
- TestCase t( m_rSmgr, r );
-
- ERROR_ASSERT( ! t.m_pTestListener->m_bStarted , "started too early" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bTerminated , "terminiation unexpected" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bClosed, "unexpected clase" );
-
- t.m_rControl->start();
- mywait();
-
- ERROR_ASSERT( t.m_pTestListener->m_bStarted , "should have been started already" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bTerminated , "terminiation unexpected" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bClosed, "unexpected clase" );
-
- Reference< XStreamListener > rListener( new TestListener() );
- t.m_rControl->addListener( rListener );
- t.m_rControl->removeListener( rListener );
-
- t.m_rOutSource->closeOutput();
- mywait();
- ERROR_ASSERT( t.m_pTestListener->m_bStarted , "should have been started already" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bTerminated , "should be terminiated already" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
- ERROR_ASSERT( t.m_pTestListener->m_bClosed, "should be closed already" );
-}
-
-void OPumpTest::testTerminate( const Reference< XInterface > &r )
-{
- TestCase t( m_rSmgr, r );
-
- ERROR_ASSERT( ! t.m_pTestListener->m_bStarted , "started too early" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bTerminated , "terminiation unexpected" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bClosed, "unexpected clase" );
-
- t.m_rControl->start();
- mywait();
-
- ERROR_ASSERT( t.m_pTestListener->m_bStarted , "should have been started already" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bTerminated , "terminiation unexpected" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bClosed, "unexpected clase" );
-
- t.m_rControl->terminate();
-
- mywait();
- ERROR_ASSERT( t.m_pTestListener->m_bStarted , "should have been started already" );
- ERROR_ASSERT( t.m_pTestListener->m_bTerminated , "should be terminiated already" );
- // terminte leads to an error, that is no surprise, in fact
- // one can't tell wether the error occurs because of the terminate
- // call or for some other reason !
-// ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
- ERROR_ASSERT( t.m_pTestListener->m_bClosed, "should be closed already" );
-}
-
-void OPumpTest::testFunction( const Reference< XInterface > &r )
-{
- TestCase t( m_rSmgr, r );
-
- t.m_rControl->start();
-
- t.m_rOutSource->writeBytes( Sequence< sal_Int8 > ( 5 ) );
-
- Sequence< sal_Int8 > dummy;
- ERROR_ASSERT( 5 == t.m_rInSink->readBytes( dummy , 5 ), "couldn't read the expected number of bytes" );
-
- t.m_rOutSource->closeOutput();
- mywait();
-
- ERROR_ASSERT( t.m_pTestListener->m_bStarted , "should have been started already" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bTerminated , "should be terminiated already" );
- ERROR_ASSERT( ! t.m_pTestListener->m_bError, "unexpected error" );
- ERROR_ASSERT( t.m_pTestListener->m_bClosed, "should be closed already" );
-}
-
-void OPumpTest::testWrongUsage( const Reference< XInterface > &r )
-{
- Reference< XActiveDataSource > rSource ( r, UNO_QUERY );
- Reference< XActiveDataSink > rSink( r , UNO_QUERY );
- Reference< XActiveDataControl > rControl( r, UNO_QUERY );
-
- Reference< XInputStream > rIn( m_rSmgr->createInstance(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataInputStream"))),UNO_QUERY);
- Reference< XOutputStream > rOut( m_rSmgr->createInstance(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.DataOutputStream"))),UNO_QUERY);
-
- rSink->setInputStream( rIn );
- rSource->setOutputStream( rOut );
-
- rControl->start();
-
- mywait();
-}
-
-Reference< XInterface > SAL_CALL OPumpTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw( Exception )
-{
- return *new OPumpTest( rSMgr );
-}
-
-Sequence<OUString> OPumpTest_getSupportedServiceNames(void) throw()
-{
- OUString s = OPumpTest_getServiceName();
- Sequence< OUString > seq( &s , 1 );
- return seq;
-
-}
-OUString OPumpTest_getServiceName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "test.com.sun.star.io.Pump" ) );
-}
-
-OUString OPumpTest_getImplementationName() throw()
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM( "test.com.sun.star.comp.io.Pump") );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/test/stm/testfactreg.cxx b/io/test/stm/testfactreg.cxx
deleted file mode 100644
index 804b5630f..000000000
--- a/io/test/stm/testfactreg.cxx
+++ /dev/null
@@ -1,211 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include <stdio.h>
-#include <string.h>
-
-#include <osl/diagnose.h>
-
-#include <cppuhelper/factory.hxx> // for EXTERN_SERVICE_CALLTYPE
-
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::registry;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-
-#include "testfactreg.hxx"
-
-
-extern "C"
-{
-
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey ) );
-
- OUString str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OPipeTest_getImplementationName() +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- Reference< XRegistryKey > xNewKey = xKey->createKey( str );
- xNewKey->createKey( OPipeTest_getServiceName() );
-
- str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OPumpTest_getImplementationName() +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- xNewKey = xKey->createKey( str );
- xNewKey->createKey( OPumpTest_getServiceName() );
-
- str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- ODataStreamTest_getImplementationName(1) +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- xNewKey = xKey->createKey( str );
- xNewKey->createKey( ODataStreamTest_getServiceName(1) );
-
- str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- ODataStreamTest_getImplementationName(2) +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- xNewKey = xKey->createKey( str );
- xNewKey->createKey( ODataStreamTest_getServiceName(2) );
-
- str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OObjectStreamTest_getImplementationName(1) +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- xNewKey = xKey->createKey( str );
- xNewKey->createKey( OObjectStreamTest_getServiceName(1) );
-
- str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OObjectStreamTest_getImplementationName(2) +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- xNewKey = xKey->createKey( str );
- xNewKey->createKey( OObjectStreamTest_getServiceName(2) );
-
- str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OMarkableOutputStreamTest_getImplementationName() +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- xNewKey = xKey->createKey( str );
- xNewKey->createKey( OMarkableOutputStreamTest_getServiceName() );
-
- str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OMarkableInputStreamTest_getImplementationName() +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- xNewKey = xKey->createKey( str );
- xNewKey->createKey( OMarkableInputStreamTest_getServiceName() );
-
- str = OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OMyPersistObject_getImplementationName() +
- OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES") );
- xNewKey = xKey->createKey( str );
- xNewKey->createKey( OMyPersistObject_getServiceName() );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_FAIL( "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- void * pRet = 0;
-
- if (pServiceManager )
- {
- Reference< XSingleServiceFactory > xRet;
- Reference< XMultiServiceFactory > xSMgr =
- reinterpret_cast< XMultiServiceFactory * > ( pServiceManager );
-
- OUString aImplementationName = OUString::createFromAscii( pImplName );
-
- if (aImplementationName == OPipeTest_getImplementationName() )
- {
- xRet = createSingleFactory( xSMgr, aImplementationName,
- OPipeTest_CreateInstance,
- OPipeTest_getSupportedServiceNames() );
- }
- else if (aImplementationName == OPumpTest_getImplementationName() )
- {
- xRet = createSingleFactory( xSMgr, aImplementationName,
- OPumpTest_CreateInstance,
- OPumpTest_getSupportedServiceNames() );
- }
-
- else if( aImplementationName == ODataStreamTest_getImplementationName(1) ) {
- xRet = createSingleFactory( xSMgr , aImplementationName,
- ODataStreamTest_CreateInstance,
- ODataStreamTest_getSupportedServiceNames(1) );
- }
- else if( aImplementationName == ODataStreamTest_getImplementationName(2) ) {
- xRet = createSingleFactory( xSMgr , aImplementationName,
- ODataStreamTest_CreateInstance,
- ODataStreamTest_getSupportedServiceNames(2) );
- }
- else if( aImplementationName == OObjectStreamTest_getImplementationName(1) ) {
- xRet = createSingleFactory( xSMgr , aImplementationName,
- OObjectStreamTest_CreateInstance,
- OObjectStreamTest_getSupportedServiceNames(1) );
- }
- else if( aImplementationName == OObjectStreamTest_getImplementationName(2) ) {
- xRet = createSingleFactory( xSMgr , aImplementationName,
- OObjectStreamTest_CreateInstance,
- OObjectStreamTest_getSupportedServiceNames(2) );
- }
- else if( aImplementationName == OMarkableOutputStreamTest_getImplementationName() ) {
- xRet = createSingleFactory( xSMgr , aImplementationName,
- OMarkableOutputStreamTest_CreateInstance,
- OMarkableOutputStreamTest_getSupportedServiceNames() );
- }
- else if( aImplementationName == OMarkableInputStreamTest_getImplementationName() ) {
- xRet = createSingleFactory( xSMgr , aImplementationName,
- OMarkableInputStreamTest_CreateInstance,
- OMarkableInputStreamTest_getSupportedServiceNames() );
- }
- else if( aImplementationName == OMyPersistObject_getImplementationName() ) {
- xRet = createSingleFactory( xSMgr , aImplementationName,
- OMyPersistObject_CreateInstance,
- OMyPersistObject_getSupportedServiceNames() );
- }
- if (xRet.is())
- {
- xRet->acquire();
- pRet = xRet.get();
- }
- }
-
- return pRet;
-}
-
-}
-
-Sequence<sal_Int8 > createSeq( char * p )
-{
- Sequence<sal_Int8> seq( strlen( p )+1 );
- strcpy( (char * ) seq.getArray() , p );
- return seq;
-}
-
-Sequence<sal_Int8> createIntSeq( sal_Int32 i )
-{
- char pcCount[20];
- sprintf( pcCount , "%d" , i );
- return createSeq( pcCount );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/test/stm/testfactreg.hxx b/io/test/stm/testfactreg.hxx
deleted file mode 100644
index 5aefcad6a..000000000
--- a/io/test/stm/testfactreg.hxx
+++ /dev/null
@@ -1,122 +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 <rtl/strbuf.hxx>
-
-Reference< XInterface > SAL_CALL OPipeTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw( Exception );
-Sequence<OUString> OPipeTest_getSupportedServiceNames(void) throw();
-OUString OPipeTest_getServiceName() throw();
-OUString OPipeTest_getImplementationName() throw();
-
-Reference< XInterface > SAL_CALL OPumpTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw( Exception );
-Sequence<OUString> OPumpTest_getSupportedServiceNames(void) throw();
-OUString OPumpTest_getServiceName() throw();
-OUString OPumpTest_getImplementationName() throw();
-
-Reference< XInterface > SAL_CALL ODataStreamTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw(Exception);
-Sequence<OUString> ODataStreamTest_getSupportedServiceNames( int i) throw();
-OUString ODataStreamTest_getServiceName( int i) throw();
-OUString ODataStreamTest_getImplementationName( int i) throw();
-
-Reference< XInterface > SAL_CALL OMarkableOutputStreamTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw(Exception);
-Sequence<OUString> OMarkableOutputStreamTest_getSupportedServiceNames(void) throw();
-OUString OMarkableOutputStreamTest_getServiceName() throw();
-OUString OMarkableOutputStreamTest_getImplementationName() throw();
-
-Reference< XInterface > SAL_CALL OMarkableInputStreamTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw(Exception);
-Sequence<OUString> OMarkableInputStreamTest_getSupportedServiceNames(void) throw();
-OUString OMarkableInputStreamTest_getServiceName() throw();
-OUString OMarkableInputStreamTest_getImplementationName() throw();
-
-Reference< XInterface > SAL_CALL OObjectStreamTest_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw(Exception);
-Sequence<OUString> OObjectStreamTest_getSupportedServiceNames( int i) throw();
-OUString OObjectStreamTest_getServiceName( int i) throw();
-OUString OObjectStreamTest_getImplementationName( int i) throw();
-
-Reference< XInterface > SAL_CALL OMyPersistObject_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw(Exception);
-Sequence<OUString> OMyPersistObject_getSupportedServiceNames( ) throw();
-OUString OMyPersistObject_getServiceName( ) throw();
-OUString OMyPersistObject_getImplementationName( ) throw();
-
-Sequence<sal_Int8> createSeq( char * p );
-Sequence<sal_Int8> createIntSeq( sal_Int32 i );
-
-#define BUILD_ERROR(expr, Message)\
- {\
- m_seqErrors.realloc( m_seqErrors.getLength() + 1 ); \
- m_seqExceptions.realloc( m_seqExceptions.getLength() + 1 ); \
- OStringBuffer str(128); \
- str.append( __FILE__ );\
- str.append( " " ); \
- str.append( "(" ); \
- str.append( OString::valueOf( (sal_Int32)__LINE__) );\
- str.append(")\n" );\
- str.append( "[ " ); \
- str.append( #expr ); \
- str.append( " ] : " ); \
- str.append( Message ); \
- m_seqErrors.getArray()[ m_seqErrors.getLength()-1] =\
- OStringToOUString( str.makeStringAndClear() , RTL_TEXTENCODING_ASCII_US ); \
- }\
- ((void)0)
-
-
-#define WARNING_ASSERT(expr, Message) \
- if( ! (expr) ) { \
- m_seqWarnings.realloc( m_seqErrors.getLength() +1 ); \
- OStringBuffer str(128);\
- str.append( __FILE__);\
- str.append( " "); \
- str.append( "(" ); \
- str.append(OString::valueOf( (sal_Int32)__LINE__)) ;\
- str.append( ")\n");\
- str.append( "[ " ); \
- str.append( #expr ); \
- str.append( " ] : ") ; \
- str.append( Message); \
- m_seqWarnings.getArray()[ m_seqWarnings.getLength()-1] =\
- OStringToOUString( str.makeStringAndClear() , RTL_TEXTENCODING_ASCII_US ); \
- return; \
- }\
- ((void)0)
-
-#define ERROR_ASSERT(expr, Message) \
- if( ! (expr) ) { \
- BUILD_ERROR(expr, Message );\
- return; \
- }\
- ((void)0)
-
-#define ERROR_EXCEPTION_ASSERT(expr, Message, Exception) \
- if( !(expr)) { \
- BUILD_ERROR(expr,Message);\
- m_seqExceptions.getArray()[ m_seqExceptions.getLength()-1] = Any( Exception );\
- return; \
- } \
- ((void)0)
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/test/testcomponent.cxx b/io/test/testcomponent.cxx
deleted file mode 100644
index 9d715327c..000000000
--- a/io/test/testcomponent.cxx
+++ /dev/null
@@ -1,220 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-
-//------------------------------------------------------
-// testcomponent - Loads a service and its testcomponent from dlls performs a test.
-// Expands the dll-names depending on the actual environment.
-// Example : testcomponent stardiv.uno.io.Pipe stm
-//
-// Therefor the testcode must exist in teststm and the testservice must be named test.stardiv.uno.io.Pipe
-//
-
-#include <stdio.h>
-#include <com/sun/star/registry/XImplementationRegistration.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-
-#include <com/sun/star/test/XSimpleTest.hpp>
-
-#include <cppuhelper/servicefactory.hxx>
-
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::test;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-
-// Needed to switch on solaris threads
-
-int main (int argc, char **argv)
-{
-
- if( argc < 3) {
- printf( "usage : testcomponent service dll [additional dlls]\n" );
- exit( 0 );
- }
-
- // create service manager
- Reference< XMultiServiceFactory > xSMgr = createRegistryServiceFactory(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ) );
-
- Reference < XImplementationRegistration > xReg;
- Reference < XSimpleRegistry > xSimpleReg;
-
- try
- {
- // Create registration service
- Reference < XInterface > x = xSMgr->createInstance(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.registry.ImplementationRegistration")) );
- xReg = Reference< XImplementationRegistration > ( x , UNO_QUERY );
- }
- catch( Exception & ) {
- printf( "Couldn't create ImplementationRegistration service\n" );
- exit(1);
- }
-
- sal_Char szBuf[1024];
- OString sTestName;
-
- try
- {
- // Load dll for the tested component
- for( int n = 2 ; n <argc ; n ++ ) {
- OUString aDllName = OStringToOUString( argv[n] , RTL_TEXTENCODING_ASCII_US );
- xReg->registerImplementation(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.loader.SharedLibrary")),
- aDllName,
- xSimpleReg );
- }
- }
- catch( Exception &e ) {
- printf( "%s\n" , OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US ).getStr() );
-
- exit(1);
- }
-
-
- try
- {
- // Load dll for the test component
- sTestName = "test";
- sTestName += argv[2];
-
-#if defined(SAL_W32)
- OUString aDllName = OStringToOUString( sTestName , RTL_TEXTENCODING_ASCII_US );
-#else
- OUString aDllName(RTL_CONSTASCII_USTRINGPARAM("lib"));
- aDllName += OStringToOUString( sTestName , RTL_TEXTENCODING_ASCII_US );
- aDllName += OUString(RTL_CONSTASCII_USTRINGPARAM(".so"));
-#endif
-
- xReg->registerImplementation(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.loader.SharedLibrary")) ,
- aDllName,
- xSimpleReg );
- }
- catch( Exception & e )
- {
- printf( "Couldn't reach dll %s\n" , szBuf );
- exit(1);
- }
-
-
- // Instantiate test service
- sTestName = "test.";
- sTestName += argv[1];
-
- Reference < XInterface > xIntTest =
- xSMgr->createInstance( OStringToOUString( sTestName , RTL_TEXTENCODING_ASCII_US ) );
- Reference< XSimpleTest > xTest( xIntTest , UNO_QUERY );
-
- if( ! xTest.is() ) {
- printf( "Couldn't instantiate test service \n" );
- exit( 1 );
- }
-
-
- sal_Int32 nHandle = 0;
- sal_Int32 nNewHandle;
- sal_Int32 nErrorCount = 0;
- sal_Int32 nWarningCount = 0;
-
- // loop until all test are performed
- while( nHandle != -1 )
- {
- // Instantiate serivce
- Reference< XInterface > x =
- xSMgr->createInstance( OStringToOUString( argv[1] , RTL_TEXTENCODING_ASCII_US ) );
- if( ! x.is() )
- {
- printf( "Couldn't instantiate service !\n" );
- exit( 1 );
- }
-
- // do the test
- try
- {
- nNewHandle = xTest->test(
- OStringToOUString( argv[1] , RTL_TEXTENCODING_ASCII_US ) , x , nHandle );
- }
- catch( Exception & e ) {
- OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US );
- printf( "testcomponent : uncaught exception %s\n" , o.getStr() );
- exit(1);
- }
- catch( ... )
- {
- printf( "testcomponent : uncaught unknown exception\n" );
- exit(1);
- }
-
-
- // print errors and warning
- Sequence<OUString> seqErrors = xTest->getErrors();
- Sequence<OUString> seqWarnings = xTest->getWarnings();
- if( seqWarnings.getLength() > nWarningCount )
- {
- printf( "Warnings during test %d!\n" , nHandle );
- for( ; nWarningCount < seqWarnings.getLength() ; nWarningCount ++ )
- {
- OString o = OUStringToOString(
- seqWarnings.getArray()[nWarningCount], RTL_TEXTENCODING_ASCII_US );
- printf( "Warning\n%s\n---------\n" , o.getStr() );
- }
- }
-
-
- if( seqErrors.getLength() > nErrorCount ) {
- printf( "Errors during test %d!\n" , nHandle );
- for( ; nErrorCount < seqErrors.getLength() ; nErrorCount ++ )
- {
- OString o = OUStringToOString(
- seqErrors.getArray()[nErrorCount], RTL_TEXTENCODING_ASCII_US );
- printf( "%s\n" , o.getStr() );
- }
- }
-
- nHandle = nNewHandle;
- }
-
- if( xTest->testPassed() ) {
- printf( "Test passed !\n" );
- }
- else {
- printf( "Test failed !\n" );
- }
-
- Reference <XComponent > rComp( xSMgr , UNO_QUERY );
- rComp->dispose();
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/io/test/testconnection.cxx b/io/test/testconnection.cxx
deleted file mode 100644
index d44a4b23e..000000000
--- a/io/test/testconnection.cxx
+++ /dev/null
@@ -1,285 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_io.hxx"
-#include <stdio.h>
-#include <osl/time.h>
-
-#include <osl/diagnose.h>
-#include <osl/thread.hxx>
-
-#include <cppuhelper/servicefactory.hxx>
-
-#include <com/sun/star/lang/XComponent.hpp>
-
-#include <com/sun/star/registry/XImplementationRegistration.hpp>
-
-#include <com/sun/star/connection/XConnector.hpp>
-#include <com/sun/star/connection/XAcceptor.hpp>
-
-using namespace ::osl;
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-using namespace ::com::sun::star::connection;
-
-
-class MyThread :
- public Thread
-{
-public:
- MyThread( const Reference< XAcceptor > &r , const OUString & sConnectionDescription) :
- m_rAcceptor( r ),
- m_sConnectionDescription( sConnectionDescription )
- {}
- virtual void SAL_CALL run();
-
- Reference < XAcceptor > m_rAcceptor;
-private:
- Reference < XConnection > m_rConnection;
- OUString m_sConnectionDescription;
-};
-
-void doWrite( const Reference < XConnection > &r )
-{
- Sequence < sal_Int8 > seq(10);
- for( sal_Int32 i = 0 ; i < 10 ; i ++ )
- {
- seq.getArray()[i] = i;
- }
-
- r->write( seq );
-}
-
-void doRead( const Reference < XConnection > &r )
-{
- Sequence < sal_Int8 > seq(10);
-
- OSL_ASSERT( 10 == r->read( seq , 10 ) );
-
- for( sal_Int32 i = 0 ; i < 10 ; i ++ )
- {
- OSL_ASSERT( seq.getConstArray()[i] == i );
- }
-}
-
-
-void MyThread::run()
-{
- try
- {
- m_rConnection = m_rAcceptor->accept( m_sConnectionDescription );
- }
- catch ( Exception &e)
- {
- OString tmp= OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
- printf( "Exception was thrown by acceptor thread: %s\n", tmp.getStr() );
- }
-
- if( m_rConnection.is() )
- {
- Sequence < sal_Int8 > seq(12);
- try
- {
- doWrite( m_rConnection );
- doRead( m_rConnection );
- }
- catch (... )
- {
- printf( "unknown exception was thrown\n" );
- throw;
- }
- }
-
-}
-
-
-
-
-
-void testConnection( const OUString &sConnectionDescription ,
- const Reference < XAcceptor > &rAcceptor,
- const Reference < XConnector > &rConnector )
-{
- {
- MyThread thread( rAcceptor , sConnectionDescription );
- thread.create();
-
- sal_Bool bGotit = sal_False;
- Reference < XConnection > r;
-
- while( ! bGotit )
- {
- try
- {
- // Why is this wait necessary ????
- TimeValue value = {1,0};
- osl_waitThread( &value );
- r = rConnector->connect( sConnectionDescription );
- OSL_ASSERT( r.is() );
- doWrite( r );
- doRead( r );
- bGotit = sal_True;
- }
- catch( ... )
- {
- printf( "Couldn't connect, retrying ...\n" );
-
- }
- }
-
- r->close();
-
- try
- {
- Sequence < sal_Int8 > seq(10);
- r->write( seq );
- OSL_FAIL( "expected exception not thrown" );
- }
- catch ( IOException & )
- {
- // everything is ok
- }
- catch ( ... )
- {
- OSL_FAIL( "wrong exception was thrown" );
- }
-
- thread.join();
- }
-}
-
-
-int SAL_CALL main( int argc, char * argv[] )
-{
- Reference< XMultiServiceFactory > xMgr(
- createRegistryServiceFactory( OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")) ) );
-
- Reference< XImplementationRegistration > xImplReg(
- xMgr->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.registry.ImplementationRegistration")) ), UNO_QUERY );
- OSL_ENSURE( xImplReg.is(), "### no impl reg!" );
-
- OUString aLibName =
- OUString(RTL_CONSTASCII_USTRINGPARAM( "connector.uno" SAL_DLLEXTENSION ));
- xImplReg->registerImplementation(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.loader.SharedLibrary")), aLibName, Reference< XSimpleRegistry >() );
-
- aLibName = OUString(RTL_CONSTASCII_USTRINGPARAM( "acceptor.uno" SAL_DLLEXTENSION ));
- xImplReg->registerImplementation(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.loader.SharedLibrary")), aLibName, Reference< XSimpleRegistry >() );
-
- Reference < XAcceptor > rAcceptor(
- xMgr->createInstance(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.connection.Acceptor")) ) , UNO_QUERY );
-
- Reference < XAcceptor > rAcceptorPipe(
- xMgr->createInstance(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.connection.Acceptor")) ) , UNO_QUERY );
-
- Reference < XConnector > rConnector(
- xMgr->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.connection.Connector")) ) , UNO_QUERY );
-
-
- printf( "Testing sockets" );
- fflush( stdout );
- testConnection( OUString(RTL_CONSTASCII_USTRINGPARAM("socket,host=localhost,port=2001")), rAcceptor , rConnector );
- printf( " Done\n" );
-
- printf( "Testing pipe" );
- fflush( stdout );
- testConnection( OUString(RTL_CONSTASCII_USTRINGPARAM("pipe,name=bla")) , rAcceptorPipe , rConnector );
- printf( " Done\n" );
-
- // check, if errornous strings make any problem
- rAcceptor = Reference< XAcceptor > (
- xMgr->createInstance( OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.connection.Acceptor")) ),
- UNO_QUERY );
-
- try
- {
- rAcceptor->accept( OUString() );
- OSL_FAIL( "empty connection string" );
- }
- catch( IllegalArgumentException & )
- {
- // everything is fine
- }
- catch( ... )
- {
- OSL_FAIL( "unexpected akexception with empty connection string" );
- }
-
- try
- {
- rConnector->connect( OUString() );
- OSL_FAIL( "empty connection string" );
- }
- catch( ConnectionSetupException & )
- {
- // everything is fine
- }
- catch( ... )
- {
- OSL_FAIL( "unexpected exception with empty connection string" );
- }
-
-
- MyThread thread( rAcceptor , OUString(RTL_CONSTASCII_USTRINGPARAM("socket,host=localhost,port=2001")) );
- thread.create();
-
- TimeValue value = {0,1};
- osl_waitThread( &value );
- try
- {
- rAcceptor->accept( OUString(RTL_CONSTASCII_USTRINGPARAM("socket,host=localhost,port=2001")) );
- OSL_FAIL( "already existing exception expected" );
- }
- catch( AlreadyAcceptingException & e)
- {
- // everything is fine
- }
- catch( ... )
- {
- OSL_FAIL( "unknown exception, already existing existing expected" );
- }
-
- rAcceptor->stopAccepting();
- thread.join();
-
- Reference < XComponent > rComp( xMgr , UNO_QUERY );
- if( rComp.is() )
- {
- rComp->dispose();
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */