diff options
author | Oliver Bolte <obo@openoffice.org> | 2008-02-26 06:47:11 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2008-02-26 06:47:11 +0000 |
commit | 878ab5b5f711306df72e25c327c91c2606e545f2 (patch) | |
tree | eee35648f7e99f165ece2076babf07cb07ce1506 /xmlhelp/source | |
parent | 112831aeb8b1a0d410e24df2181cbcedfc2960c7 (diff) |
INTEGRATION: CWS ab45_DEV300 (1.12.82); FILE MERGED
2008/02/18 09:41:07 ab 1.12.82.1: #i83624# TreeFileIterator
Diffstat (limited to 'xmlhelp/source')
-rw-r--r-- | xmlhelp/source/treeview/tvread.hxx | 76 |
1 files changed, 73 insertions, 3 deletions
diff --git a/xmlhelp/source/treeview/tvread.hxx b/xmlhelp/source/treeview/tvread.hxx index 6087d5b45d48..876d2c652e41 100644 --- a/xmlhelp/source/treeview/tvread.hxx +++ b/xmlhelp/source/treeview/tvread.hxx @@ -41,7 +41,12 @@ #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #endif - +#ifndef _COM_SUN_STAR_DEPLOYMENT_XPACKAGE_HPP_ +#include <com/sun/star/deployment/XPackage.hpp> +#endif +#ifndef _COM_SUN_STAR_UCB_XSIMPLEFILEACCESS_HPP_ +#include "com/sun/star/ucb/XSimpleFileAccess.hpp" +#endif namespace treeview { @@ -60,8 +65,8 @@ namespace treeview { rtl::OUString m_vReplacement[5]; rtl::OUString prodName,prodVersion,vendName,vendVersion,vendShort; - sal_uInt64 filelen[MAX_MODULE_COUNT]; - rtl::OUString fileurl[MAX_MODULE_COUNT]; + std::vector< sal_uInt64 > vFileLen; + std::vector< rtl::OUString > vFileURL; rtl::OUString locale,system; rtl::OUString appendix; @@ -325,6 +330,71 @@ namespace treeview { }; // end class TVChildTarget + + enum IteratorState + { + USER_EXTENSIONS, + SHARED_EXTENSIONS, + END_REACHED + }; + + class ExtensionIteratorBase + { + public: + ExtensionIteratorBase( const rtl::OUString& aLanguage ); + void init( void ); + + private: + com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetHelpPackageFromPackage + ( const com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > xPackage, + com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle ); + + protected: + com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetNextUserHelpPackage + ( com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle ); + com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetNextSharedHelpPackage + ( com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle ); + + osl::Mutex m_aMutex; + com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_xContext; + com::sun::star::uno::Reference< com::sun::star::ucb::XSimpleFileAccess > m_xSFA; + + IteratorState m_eState; + rtl::OUString m_aLanguage; + rtl::OUString m_aCorrectedLanguage; + + com::sun::star::uno::Sequence< com::sun::star::uno::Reference + < com::sun::star::deployment::XPackage > > m_aUserPackagesSeq; + bool m_bUserPackagesLoaded; + + com::sun::star::uno::Sequence< com::sun::star::uno::Reference + < com::sun::star::deployment::XPackage > > m_aSharedPackagesSeq; + bool m_bSharedPackagesLoaded; + + int m_iUserPackage; + int m_iSharedPackage; + + }; // end class ExtensionIteratorBase + + + //=================================================================== + class TreeFileIterator : public ExtensionIteratorBase + { + public: + TreeFileIterator( const rtl::OUString& aLanguage ) + : ExtensionIteratorBase( aLanguage ) + {} + + rtl::OUString nextTreeFile( sal_Int32& rnFileSize ); + + private: + rtl::OUString expandURL( const rtl::OUString& aURL ); + rtl::OUString implGetTreeFileFromPackage( sal_Int32& rnFileSize, + com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > xPackage ); + + }; // end class TreeFileIterator + + } |