diff options
Diffstat (limited to 'oox/inc/oox/dump/dumperbase.hxx')
-rw-r--r-- | oox/inc/oox/dump/dumperbase.hxx | 135 |
1 files changed, 81 insertions, 54 deletions
diff --git a/oox/inc/oox/dump/dumperbase.hxx b/oox/inc/oox/dump/dumperbase.hxx index d9acaa1f1011..4b10a1b25324 100644 --- a/oox/inc/oox/dump/dumperbase.hxx +++ b/oox/inc/oox/dump/dumperbase.hxx @@ -49,10 +49,9 @@ namespace com { namespace sun { namespace star { namespace io { class XInputStream; } - namespace io { class XTextInputStream; } namespace io { class XOutputStream; } namespace io { class XTextOutputStream; } - namespace lang { class XMultiServiceFactory; } + namespace uno { class XComponentContext; } } } } namespace comphelper { @@ -124,43 +123,46 @@ public: // input streams ---------------------------------------------------------- static ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > - getXInputStream( BinaryInputStream& rStrm ); - - static ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > openInputStream( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const ::rtl::OUString& rFileName ); - static ::com::sun::star::uno::Reference< ::com::sun::star::io::XTextInputStream > - openTextInputStream( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, - const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxInStrm, - const ::rtl::OUString& rEncoding ); - - static ::com::sun::star::uno::Reference< ::com::sun::star::io::XTextInputStream > - openTextInputStream( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, - const ::rtl::OUString& rFileName, - const ::rtl::OUString& rEncoding ); - // output streams --------------------------------------------------------- static ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > openOutputStream( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const ::rtl::OUString& rFileName ); static ::com::sun::star::uno::Reference< ::com::sun::star::io::XTextOutputStream > openTextOutputStream( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >& rxOutStrm, - const ::rtl::OUString& rEncoding ); + rtl_TextEncoding eTextEnc ); static ::com::sun::star::uno::Reference< ::com::sun::star::io::XTextOutputStream > openTextOutputStream( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const ::rtl::OUString& rFileName, - const ::rtl::OUString& rEncoding ); + rtl_TextEncoding eTextEnc ); +}; + +// ============================================================================ + +class BinaryInputStreamRef : public ::oox::BinaryInputStreamRef +{ +public: + inline BinaryInputStreamRef() {} + + inline /*implicit*/ BinaryInputStreamRef( BinaryInputStream* pInStrm ) : + ::oox::BinaryInputStreamRef( pInStrm ) {} + + inline /*implicit*/ BinaryInputStreamRef( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxInStrm ) : + ::oox::BinaryInputStreamRef( new BinaryXInputStream( rxInStrm, true ) ) {} + + template< typename StreamType > + inline /*implicit*/ BinaryInputStreamRef( const ::boost::shared_ptr< StreamType >& rxInStrm ) : + ::oox::BinaryInputStreamRef( rxInStrm ) {} }; // ============================================================================ @@ -550,7 +552,9 @@ typedef ::boost::shared_ptr< Base > BaseRef; | | | +----> BinaryStreamObject | | - | +----> TextStreamObject + | +----> TextStreamObjectBase + | | | + | | +----> TextStreamObject | | | | | +----> XmlStreamObject | | @@ -890,14 +894,14 @@ class SharedConfigData : public Base, public ConfigItemBase public: explicit SharedConfigData( const ::rtl::OUString& rFileName, - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const StorageRef& rxRootStrg, const ::rtl::OUString& rSysFileName, ::comphelper::MediaDescriptor& rMediaDesc ); virtual ~SharedConfigData(); - inline const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& getFactory() const { return mxFactory; } + inline const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& getContext() const { return mxContext; } inline const StorageRef& getRootStorage() const { return mxRootStrg; } inline const ::rtl::OUString& getSysFileName() const { return maSysFileName; } @@ -932,7 +936,7 @@ private: typedef ::std::map< ::rtl::OUString, ::rtl::OUString > ConfigDataMap; typedef ::std::map< ::rtl::OUString, NameListRef > NameListMap; - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxFactory; + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > mxContext; StorageRef mxRootStrg; ::rtl::OUString maSysFileName; ::comphelper::MediaDescriptor& mrMediaDesc; @@ -977,14 +981,14 @@ public: const ::oox::core::FilterBase& rFilter ); explicit Config( const sal_Char* pcEnvVar, - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const StorageRef& rxRootStrg, const ::rtl::OUString& rSysFileName, ::comphelper::MediaDescriptor& rMediaDesc ); virtual ~Config(); - inline const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& getFactory() const { return mxCfgData->getFactory(); } + inline const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& getContext() const { return mxCfgData->getContext(); } inline const StorageRef& getRootStorage() const { return mxCfgData->getRootStorage(); } inline const ::rtl::OUString& getSysFileName() const { return mxCfgData->getSysFileName(); } @@ -1022,7 +1026,7 @@ protected: const ::oox::core::FilterBase& rFilter ); void construct( const sal_Char* pcEnvVar, - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const StorageRef& rxRootStrg, const ::rtl::OUString& rSysFileName, ::comphelper::MediaDescriptor& rMediaDesc ); @@ -1076,10 +1080,7 @@ class Output : public Base { public: explicit Output( - const ::com::sun::star::uno::Reference< ::com::sun::star::io::XTextOutputStream >& rxStrm ); - - explicit Output( - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rxFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const ::rtl::OUString& rFileName ); // ------------------------------------------------------------------------ @@ -1152,8 +1153,6 @@ public: // ------------------------------------------------------------------------ protected: - void construct( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XTextOutputStream >& rxStrm ); - virtual bool implIsValid() const; private: @@ -1279,8 +1278,8 @@ class ObjectBase : public Base public: virtual ~ObjectBase(); - inline const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& - getFactory() const { return mxConfig->getFactory(); } + inline const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& + getContext() const { return mxConfig->getContext(); } void dump(); @@ -1323,7 +1322,7 @@ protected: virtual void implDump(); virtual void implDumpStream( - const BinaryInputStreamRef& rxStrm, + const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxStrm, const ::rtl::OUString& rStrgPath, const ::rtl::OUString& rStrmName, const ::rtl::OUString& rSysFileName ); @@ -1394,7 +1393,6 @@ protected: using ObjectBase::construct; void construct( const ObjectBase& rParent, const ::rtl::OUString& rSysFileName ); - void construct( const ObjectBase& rParent, const OutputRef& rxOut ); void construct( const OutputObjectBase& rParent ); virtual bool implIsValid() const; @@ -1453,6 +1451,7 @@ protected: protected: OutputRef mxOut; + ::rtl::OUString maSysFileName; }; typedef ::boost::shared_ptr< OutputObjectBase > OutputObjectRef; @@ -1578,7 +1577,6 @@ protected: using OutputObjectBase::construct; void construct( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const ::rtl::OUString& rSysFileName ); - void construct( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, const OutputRef& rxOut ); void construct( const OutputObjectBase& rParent, const BinaryInputStreamRef& rxStrm ); void construct( const InputObjectBase& rParent ); @@ -1805,46 +1803,76 @@ protected: }; // ============================================================================ +// ============================================================================ -class TextStreamObject : public InputObjectBase +class TextStreamObjectBase : public InputObjectBase { -public: - explicit TextStreamObject( +protected: + inline TextStreamObjectBase() {} + + using InputObjectBase::construct; + void construct( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, rtl_TextEncoding eTextEnc, const ::rtl::OUString& rSysFileName ); - - explicit TextStreamObject( + void construct( const OutputObjectBase& rParent, const BinaryInputStreamRef& rxStrm, rtl_TextEncoding eTextEnc ); + void construct( + const InputObjectBase& rParent, + rtl_TextEncoding eTextEnc ); -protected: virtual bool implIsValid() const; virtual void implDump(); - virtual void implDumpLine( const ::rtl::OUString& rLine, sal_uInt32 nLine ); + + virtual void implDumpText( TextInputStream& rTextStrm ) = 0; private: + void constructTextStrmObj( rtl_TextEncoding eTextEnc ); + +protected: ::boost::shared_ptr< TextInputStream > mxTextStrm; }; // ============================================================================ -class XmlStreamObject : public TextStreamObject +class TextLineStreamObject : public TextStreamObjectBase { public: - explicit XmlStreamObject( + explicit TextLineStreamObject( const ObjectBase& rParent, const BinaryInputStreamRef& rxStrm, + rtl_TextEncoding eTextEnc, const ::rtl::OUString& rSysFileName ); + explicit TextLineStreamObject( + const OutputObjectBase& rParent, + const BinaryInputStreamRef& rxStrm, + rtl_TextEncoding eTextEnc ); + protected: - virtual void implDump(); + virtual void implDumpText( TextInputStream& rTextStrm ); virtual void implDumpLine( const ::rtl::OUString& rLine, sal_uInt32 nLine ); +}; -private: - ::rtl::OUString maIncompleteLine; +// ============================================================================ + +class XmlStreamObject : public TextStreamObjectBase +{ +public: + explicit XmlStreamObject( + const ObjectBase& rParent, + const BinaryInputStreamRef& rxStrm, + const ::rtl::OUString& rSysFileName ); + + explicit XmlStreamObject( + const OutputObjectBase& rParent, + const BinaryInputStreamRef& rxStrm ); + +protected: + virtual void implDumpText( TextInputStream& rTextStrm ); }; // ============================================================================ @@ -1976,4 +2004,3 @@ do { \ #endif // OOX_INCLUDE_DUMPER #endif - |