From 2ecd5b0372e7953a57ece3c669c22e6545e19f2e Mon Sep 17 00:00:00 2001 From: Matúš Kukan Date: Fri, 24 Aug 2012 21:43:27 +0200 Subject: sax: com.sun.star.xml.sax.FastSerializer seems to be unused Change-Id: I826da00c83589f468c499879d86546d60b2aa515 Reviewed-on: https://gerrit.libreoffice.org/480 Reviewed-by: Michael Meeks Tested-by: Kohei Yoshida --- sax/inc/fastserializer.hxx | 202 -------------------------------- sax/source/fastparser/facreg.cxx | 17 --- sax/source/fastparser/fastsax.component | 3 - sax/source/tools/fastserializer.cxx | 2 +- sax/source/tools/fastserializer.hxx | 202 ++++++++++++++++++++++++++++++++ sax/source/tools/fshelper.cxx | 2 +- 6 files changed, 204 insertions(+), 224 deletions(-) delete mode 100644 sax/inc/fastserializer.hxx create mode 100644 sax/source/tools/fastserializer.hxx (limited to 'sax') diff --git a/sax/inc/fastserializer.hxx b/sax/inc/fastserializer.hxx deleted file mode 100644 index 765cafb90dd2..000000000000 --- a/sax/inc/fastserializer.hxx +++ /dev/null @@ -1,202 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef SAX_FASTSERIALIZER_HXX -#define SAX_FASTSERIALIZER_HXX - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include - -#include "sax/fshelper.hxx" - -#define SERIALIZER_IMPLEMENTATION_NAME "com.sun.star.comp.extensions.xml.sax.FastSerializer" -#define SERIALIZER_SERVICE_NAME "com.sun.star.xml.sax.FastSerializer" - -namespace sax_fastparser { - -class SAX_DLLPUBLIC FastSaxSerializer : public ::cppu::WeakImplHelper2< ::com::sun::star::xml::sax::XFastSerializer, ::com::sun::star::lang::XServiceInfo > -{ - typedef ::com::sun::star::uno::Sequence< ::sal_Int8 > Int8Sequence; - typedef ::com::sun::star::uno::Sequence< ::sal_Int32 > Int32Sequence; - -public: - explicit FastSaxSerializer( ); - virtual ~FastSaxSerializer(); - - ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > getOutputStream() {return mxOutputStream;} - - // The implementation details - static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(void); - - // XFastSerializer - virtual void SAL_CALL startDocument( ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL endDocument( ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL startFastElement( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) - throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL startUnknownElement( const ::rtl::OUString& Namespace, const ::rtl::OUString& Name, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) - throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL endFastElement( ::sal_Int32 Element ) - throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL endUnknownElement( const ::rtl::OUString& Namespace, const ::rtl::OUString& Name ) - throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL singleFastElement( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) - throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL singleUnknownElement( const ::rtl::OUString& Namespace, const ::rtl::OUString& Name, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) - throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL characters( const ::rtl::OUString& aChars ) - throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setOutputStream( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >& xOutputStream ) - throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setFastTokenHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastTokenHandler >& xFastTokenHandler ) - throw (::com::sun::star::uno::RuntimeException); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw ( ::com::sun::star::uno::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw ( ::com::sun::star::uno::RuntimeException ); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw ( ::com::sun::star::uno::RuntimeException ); - - // C++ helpers - virtual void SAL_CALL writeId( ::sal_Int32 Element ); - - static ::rtl::OUString escapeXml( const ::rtl::OUString& s ); - -public: - /** From now on, don't write directly to the stream, but to top of a stack. - - This is to be able to change the order of the data being written. - If you need to write eg. - p, r, rPr, [something], /rPr, t, [text], /r, /p, - but get it in order - p, r, t, [text], /t, rPr, [something], /rPr, /r, /p, - simply do - p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr, - mergeTopMarks( true ), mergeTopMarks(), /r, /p - and you are done. - */ - void mark( Int32Sequence aOrder = Int32Sequence() ); - - /** Merge 2 topmost marks. - - There are 3 possibilities - prepend the top before the second top-most - mark, append it, or append it later; prepending brings the possibility - to switch parts of the output, appending later allows to write some - output in advance. - - Writes the result to the output stream if the mark stack becomes empty - by the operation. - - When the MERGE_MARKS_POSTPONE is specified, the merge happens just - before the next merge. - - @see mark() - */ - void mergeTopMarks( sax_fastparser::MergeMarksEnum eMergeType = sax_fastparser::MERGE_MARKS_APPEND ); - -private: - ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > mxOutputStream; - ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastTokenHandler > mxFastTokenHandler; - - class ForMerge - { - Int8Sequence maData; - Int8Sequence maPostponed; - - public: - ForMerge() : maData(), maPostponed() {} - virtual ~ForMerge() {} - - virtual void setCurrentElement( ::sal_Int32 /*nToken*/ ) {} - virtual Int8Sequence& getData(); -#if DEBUG - virtual void print(); -#endif - - virtual void prepend( const Int8Sequence &rWhat ); - virtual void append( const Int8Sequence &rWhat ); - void postpone( const Int8Sequence &rWhat ); - - protected: - void resetData( ); - static void merge( Int8Sequence &rTop, const Int8Sequence &rMerge, bool bAppend ); - }; - - class ForSort : public ForMerge - { - std::map< ::sal_Int32, Int8Sequence > maData; - sal_Int32 mnCurrentElement; - - Int32Sequence maOrder; - - public: - ForSort( Int32Sequence aOrder ) : - ForMerge(), - maData(), - mnCurrentElement( 0 ), - maOrder( aOrder ) {} - - void setCurrentElement( ::sal_Int32 nToken ); - - virtual Int8Sequence& getData(); - -#if DEBUG - virtual void print(); -#endif - - virtual void prepend( const Int8Sequence &rWhat ); - virtual void append( const Int8Sequence &rWhat ); - private: - void sort(); - }; - - ::std::stack< boost::shared_ptr< ForMerge > > maMarkStack; - - void writeFastAttributeList( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ); - void write( const ::rtl::OUString& s ); - -protected: - rtl::ByteSequence maClosingBracket; - rtl::ByteSequence maSlashAndClosingBracket; - rtl::ByteSequence maColon; - rtl::ByteSequence maOpeningBracket; - rtl::ByteSequence maOpeningBracketAndSlash; - rtl::ByteSequence maQuote; - rtl::ByteSequence maEqualSignAndQuote; - rtl::ByteSequence maSpace; - - /** Forward the call to the output stream, or write to the stack. - - The latter in the case that we are inside a mark(). - */ - void writeBytes( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& aData ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); -}; - -} // namespace sax_fastparser - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sax/source/fastparser/facreg.cxx b/sax/source/fastparser/facreg.cxx index c3590b6ef3fd..b0b5848544b4 100644 --- a/sax/source/fastparser/facreg.cxx +++ b/sax/source/fastparser/facreg.cxx @@ -21,7 +21,6 @@ #include #include -#include #include "fastparser.hxx" using namespace sax_fastparser; @@ -34,9 +33,6 @@ using namespace ::com::sun::star::lang; namespace sax_fastparser { -//-------------------------------------- -// the extern interface -//--------------------------------------- Reference< XInterface > SAL_CALL FastSaxParser_CreateInstance( SAL_UNUSED_PARAMETER const Reference< XMultiServiceFactory > & ) throw(Exception) @@ -45,13 +41,6 @@ Reference< XInterface > SAL_CALL FastSaxParser_CreateInstance( return Reference< XInterface > ( (OWeakObject * ) p ); } -Reference< XInterface > SAL_CALL FastSaxSerializer_CreateInstance( - SAL_UNUSED_PARAMETER const Reference< XMultiServiceFactory > & ) - throw(Exception) -{ - FastSaxSerializer *p = new FastSaxSerializer; - return Reference< XInterface > ( (OWeakObject * ) p ); -} } extern "C" @@ -76,12 +65,6 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL fastsax_component_getFactory( FastSaxParser_CreateInstance, FastSaxParser::getSupportedServiceNames_Static() ); } - else if ( aImplementationName == SERIALIZER_IMPLEMENTATION_NAME ) - { - xRet = createSingleFactory( xSMgr, aImplementationName, - FastSaxSerializer_CreateInstance, - FastSaxSerializer::getSupportedServiceNames_Static() ); - } if (xRet.is()) { diff --git a/sax/source/fastparser/fastsax.component b/sax/source/fastparser/fastsax.component index 4060c07d02cf..cc130e080160 100644 --- a/sax/source/fastparser/fastsax.component +++ b/sax/source/fastparser/fastsax.component @@ -22,7 +22,4 @@ - - - diff --git a/sax/source/tools/fastserializer.cxx b/sax/source/tools/fastserializer.cxx index ffdbaec63ff5..bd84747cb527 100644 --- a/sax/source/tools/fastserializer.cxx +++ b/sax/source/tools/fastserializer.cxx @@ -17,7 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include +#include "fastserializer.hxx" #include #include diff --git a/sax/source/tools/fastserializer.hxx b/sax/source/tools/fastserializer.hxx new file mode 100644 index 000000000000..13e047e5a373 --- /dev/null +++ b/sax/source/tools/fastserializer.hxx @@ -0,0 +1,202 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef SAX_FASTSERIALIZER_HXX +#define SAX_FASTSERIALIZER_HXX + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include "sax/fshelper.hxx" + +#define SERIALIZER_IMPLEMENTATION_NAME "com.sun.star.comp.extensions.xml.sax.FastSerializer" +#define SERIALIZER_SERVICE_NAME "com.sun.star.xml.sax.FastSerializer" + +namespace sax_fastparser { + +class FastSaxSerializer : public ::cppu::WeakImplHelper2< ::com::sun::star::xml::sax::XFastSerializer, ::com::sun::star::lang::XServiceInfo > +{ + typedef ::com::sun::star::uno::Sequence< ::sal_Int8 > Int8Sequence; + typedef ::com::sun::star::uno::Sequence< ::sal_Int32 > Int32Sequence; + +public: + explicit FastSaxSerializer( ); + virtual ~FastSaxSerializer(); + + ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > getOutputStream() {return mxOutputStream;} + + // The implementation details + static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(void); + + // XFastSerializer + virtual void SAL_CALL startDocument( ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL endDocument( ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL startFastElement( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) + throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL startUnknownElement( const ::rtl::OUString& Namespace, const ::rtl::OUString& Name, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) + throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL endFastElement( ::sal_Int32 Element ) + throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL endUnknownElement( const ::rtl::OUString& Namespace, const ::rtl::OUString& Name ) + throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL singleFastElement( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) + throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL singleUnknownElement( const ::rtl::OUString& Namespace, const ::rtl::OUString& Name, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) + throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL characters( const ::rtl::OUString& aChars ) + throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setOutputStream( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >& xOutputStream ) + throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setFastTokenHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastTokenHandler >& xFastTokenHandler ) + throw (::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw ( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw ( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw ( ::com::sun::star::uno::RuntimeException ); + + // C++ helpers + virtual void SAL_CALL writeId( ::sal_Int32 Element ); + + static ::rtl::OUString escapeXml( const ::rtl::OUString& s ); + +public: + /** From now on, don't write directly to the stream, but to top of a stack. + + This is to be able to change the order of the data being written. + If you need to write eg. + p, r, rPr, [something], /rPr, t, [text], /r, /p, + but get it in order + p, r, t, [text], /t, rPr, [something], /rPr, /r, /p, + simply do + p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr, + mergeTopMarks( true ), mergeTopMarks(), /r, /p + and you are done. + */ + void mark( Int32Sequence aOrder = Int32Sequence() ); + + /** Merge 2 topmost marks. + + There are 3 possibilities - prepend the top before the second top-most + mark, append it, or append it later; prepending brings the possibility + to switch parts of the output, appending later allows to write some + output in advance. + + Writes the result to the output stream if the mark stack becomes empty + by the operation. + + When the MERGE_MARKS_POSTPONE is specified, the merge happens just + before the next merge. + + @see mark() + */ + void mergeTopMarks( sax_fastparser::MergeMarksEnum eMergeType = sax_fastparser::MERGE_MARKS_APPEND ); + +private: + ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > mxOutputStream; + ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastTokenHandler > mxFastTokenHandler; + + class ForMerge + { + Int8Sequence maData; + Int8Sequence maPostponed; + + public: + ForMerge() : maData(), maPostponed() {} + virtual ~ForMerge() {} + + virtual void setCurrentElement( ::sal_Int32 /*nToken*/ ) {} + virtual Int8Sequence& getData(); +#if DEBUG + virtual void print(); +#endif + + virtual void prepend( const Int8Sequence &rWhat ); + virtual void append( const Int8Sequence &rWhat ); + void postpone( const Int8Sequence &rWhat ); + + protected: + void resetData( ); + static void merge( Int8Sequence &rTop, const Int8Sequence &rMerge, bool bAppend ); + }; + + class ForSort : public ForMerge + { + std::map< ::sal_Int32, Int8Sequence > maData; + sal_Int32 mnCurrentElement; + + Int32Sequence maOrder; + + public: + ForSort( Int32Sequence aOrder ) : + ForMerge(), + maData(), + mnCurrentElement( 0 ), + maOrder( aOrder ) {} + + void setCurrentElement( ::sal_Int32 nToken ); + + virtual Int8Sequence& getData(); + +#if DEBUG + virtual void print(); +#endif + + virtual void prepend( const Int8Sequence &rWhat ); + virtual void append( const Int8Sequence &rWhat ); + private: + void sort(); + }; + + ::std::stack< boost::shared_ptr< ForMerge > > maMarkStack; + + void writeFastAttributeList( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ); + void write( const ::rtl::OUString& s ); + +protected: + rtl::ByteSequence maClosingBracket; + rtl::ByteSequence maSlashAndClosingBracket; + rtl::ByteSequence maColon; + rtl::ByteSequence maOpeningBracket; + rtl::ByteSequence maOpeningBracketAndSlash; + rtl::ByteSequence maQuote; + rtl::ByteSequence maEqualSignAndQuote; + rtl::ByteSequence maSpace; + + /** Forward the call to the output stream, or write to the stack. + + The latter in the case that we are inside a mark(). + */ + void writeBytes( const ::com::sun::star::uno::Sequence< ::sal_Int8 >& aData ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException); +}; + +} // namespace sax_fastparser + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sax/source/tools/fshelper.cxx b/sax/source/tools/fshelper.cxx index 8888fc791a89..ffb3506c175d 100644 --- a/sax/source/tools/fshelper.cxx +++ b/sax/source/tools/fshelper.cxx @@ -18,7 +18,7 @@ */ #include -#include +#include "fastserializer.hxx" #include #include #include -- cgit