summaryrefslogtreecommitdiff
path: root/io/source/TextOutputStream/TextOutputStream.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:57:40 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:57:40 +0100
commit2716f7dce26f16a2b677c178aa7d01cea096ae47 (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /io/source/TextOutputStream/TextOutputStream.cxx
parent10ac9e750447fd57e3cef7993b0ad6c6538d6269 (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'io/source/TextOutputStream/TextOutputStream.cxx')
-rw-r--r--io/source/TextOutputStream/TextOutputStream.cxx316
1 files changed, 0 insertions, 316 deletions
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: */