From 2716f7dce26f16a2b677c178aa7d01cea096ae47 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Sat, 28 Jan 2012 20:57:40 +0100 Subject: replace obsolete "master" branch with README that points at new repo --- io/source/TextOutputStream/TextOutputStream.cxx | 316 ------------------------ 1 file changed, 316 deletions(-) delete mode 100644 io/source/TextOutputStream/TextOutputStream.cxx (limited to 'io/source/TextOutputStream/TextOutputStream.cxx') 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 - * - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_io.hxx" - - -#include -#include - -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - - -#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 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 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 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 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: */ -- cgit v1.2.3