1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _TREEVIEW_TVREAD_HXX_ 25*b1cdbd2cSJim Jagielski #define _TREEVIEW_TVREAD_HXX_ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #ifndef INCLUDED_STL_VECTOR 28*b1cdbd2cSJim Jagielski #include <vector> 29*b1cdbd2cSJim Jagielski #define INCLUDED_STL_VECTOR 30*b1cdbd2cSJim Jagielski #endif 31*b1cdbd2cSJim Jagielski #include <rtl/ref.hxx> 32*b1cdbd2cSJim Jagielski #include <rtl/ustring.hxx> 33*b1cdbd2cSJim Jagielski #include <ucbhelper/macros.hxx> 34*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Type.hxx> 35*b1cdbd2cSJim Jagielski #include <cppuhelper/weak.hxx> 36*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/XInterface.hpp> 37*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XTypeProvider.hpp> 38*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameAccess.hpp> 39*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XHierarchicalNameAccess.hpp> 40*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XChangesNotifier.hpp> 41*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XComponent.hpp> 42*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XMultiServiceFactory.hpp> 43*b1cdbd2cSJim Jagielski #include <com/sun/star/deployment/XPackage.hpp> 44*b1cdbd2cSJim Jagielski #include "com/sun/star/ucb/XSimpleFileAccess.hpp" 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski namespace treeview { 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski class ConfigData 50*b1cdbd2cSJim Jagielski { 51*b1cdbd2cSJim Jagielski public: 52*b1cdbd2cSJim Jagielski enum { 53*b1cdbd2cSJim Jagielski PRODUCTNAME, PRODUCTVERSION, VENDORNAME, VENDORVERSION, 54*b1cdbd2cSJim Jagielski VENDORSHORT }; 55*b1cdbd2cSJim Jagielski ConfigData(); 56*b1cdbd2cSJim Jagielski int m_vAdd[5]; 57*b1cdbd2cSJim Jagielski rtl::OUString m_vReplacement[5]; 58*b1cdbd2cSJim Jagielski rtl::OUString prodName,prodVersion,vendName,vendVersion,vendShort; 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski std::vector< sal_uInt64 > vFileLen; 61*b1cdbd2cSJim Jagielski std::vector< rtl::OUString > vFileURL; 62*b1cdbd2cSJim Jagielski rtl::OUString locale,system; 63*b1cdbd2cSJim Jagielski rtl::OUString appendix; 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski void SAL_CALL replaceName( rtl::OUString& oustring ) const; 66*b1cdbd2cSJim Jagielski }; 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski class TVDom; 70*b1cdbd2cSJim Jagielski class TVChildTarget; 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski class TVBase 73*b1cdbd2cSJim Jagielski : public cppu::OWeakObject, 74*b1cdbd2cSJim Jagielski public com::sun::star::lang::XTypeProvider, 75*b1cdbd2cSJim Jagielski public com::sun::star::container::XNameAccess, 76*b1cdbd2cSJim Jagielski public com::sun::star::container::XHierarchicalNameAccess, 77*b1cdbd2cSJim Jagielski public com::sun::star::util::XChangesNotifier, 78*b1cdbd2cSJim Jagielski public com::sun::star::lang::XComponent 79*b1cdbd2cSJim Jagielski { 80*b1cdbd2cSJim Jagielski friend class TVChildTarget; 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski public: 83*b1cdbd2cSJim Jagielski ~TVBase()84*b1cdbd2cSJim Jagielski virtual ~TVBase() { } 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski // XInterface 87*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Any SAL_CALL 88*b1cdbd2cSJim Jagielski queryInterface( 89*b1cdbd2cSJim Jagielski const com::sun::star::uno::Type& aType ) 90*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException); 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski virtual void SAL_CALL 93*b1cdbd2cSJim Jagielski acquire( 94*b1cdbd2cSJim Jagielski void ) 95*b1cdbd2cSJim Jagielski throw(); 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski virtual void SAL_CALL 98*b1cdbd2cSJim Jagielski release( 99*b1cdbd2cSJim Jagielski void ) 100*b1cdbd2cSJim Jagielski throw(); 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski // XTypeProvider 104*b1cdbd2cSJim Jagielski XTYPEPROVIDER_DECL()105*b1cdbd2cSJim Jagielski XTYPEPROVIDER_DECL() 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski // XNameAccess 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Type SAL_CALL 111*b1cdbd2cSJim Jagielski getElementType( ) 112*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) 113*b1cdbd2cSJim Jagielski { 114*b1cdbd2cSJim Jagielski return getCppuVoidType(); 115*b1cdbd2cSJim Jagielski } 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielski hasElements()118*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() 119*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) 120*b1cdbd2cSJim Jagielski { 121*b1cdbd2cSJim Jagielski return true; 122*b1cdbd2cSJim Jagielski } 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski // XChangesNotifier 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski virtual void SAL_CALL addChangesListener(const com::sun::star::uno::Reference<com::sun::star::util::XChangesListener> & aListener)127*b1cdbd2cSJim Jagielski addChangesListener( 128*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< com::sun::star::util::XChangesListener >& aListener ) 129*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) 130*b1cdbd2cSJim Jagielski { 131*b1cdbd2cSJim Jagielski // read only 132*b1cdbd2cSJim Jagielski (void)aListener; 133*b1cdbd2cSJim Jagielski } 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeChangesListener(const com::sun::star::uno::Reference<com::sun::star::util::XChangesListener> & aListener)136*b1cdbd2cSJim Jagielski removeChangesListener( 137*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< com::sun::star::util::XChangesListener >& aListener ) 138*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) 139*b1cdbd2cSJim Jagielski { 140*b1cdbd2cSJim Jagielski // read only 141*b1cdbd2cSJim Jagielski (void)aListener; 142*b1cdbd2cSJim Jagielski } 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski // XComponent 146*b1cdbd2cSJim Jagielski dispose()147*b1cdbd2cSJim Jagielski virtual void SAL_CALL dispose( ) 148*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) 149*b1cdbd2cSJim Jagielski { 150*b1cdbd2cSJim Jagielski } 151*b1cdbd2cSJim Jagielski addEventListener(const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener> & xListener)152*b1cdbd2cSJim Jagielski virtual void SAL_CALL addEventListener( 153*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& xListener ) 154*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) 155*b1cdbd2cSJim Jagielski { 156*b1cdbd2cSJim Jagielski (void)xListener; 157*b1cdbd2cSJim Jagielski } 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeEventListener(const com::sun::star::uno::Reference<com::sun::star::lang::XEventListener> & aListener)160*b1cdbd2cSJim Jagielski removeEventListener( 161*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& aListener ) 162*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) 163*b1cdbd2cSJim Jagielski { 164*b1cdbd2cSJim Jagielski (void)aListener; 165*b1cdbd2cSJim Jagielski } 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski // Abstract functions 169*b1cdbd2cSJim Jagielski // XNameAccess 170*b1cdbd2cSJim Jagielski 171*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Any SAL_CALL 172*b1cdbd2cSJim Jagielski getByName( const rtl::OUString& aName ) 173*b1cdbd2cSJim Jagielski throw( com::sun::star::container::NoSuchElementException, 174*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException, 175*b1cdbd2cSJim Jagielski com::sun::star::uno::RuntimeException) = 0; 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL 178*b1cdbd2cSJim Jagielski getElementNames( ) 179*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) = 0; 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL 182*b1cdbd2cSJim Jagielski hasByName( const rtl::OUString& aName ) 183*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) = 0; 184*b1cdbd2cSJim Jagielski 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski // XHierarchicalNameAccess 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Any SAL_CALL 189*b1cdbd2cSJim Jagielski getByHierarchicalName( const rtl::OUString& aName ) 190*b1cdbd2cSJim Jagielski throw( com::sun::star::container::NoSuchElementException, 191*b1cdbd2cSJim Jagielski com::sun::star::uno::RuntimeException ) = 0; 192*b1cdbd2cSJim Jagielski 193*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL 194*b1cdbd2cSJim Jagielski hasByHierarchicalName( const rtl::OUString& aName ) 195*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ) = 0; 196*b1cdbd2cSJim Jagielski 197*b1cdbd2cSJim Jagielski }; // end class TVBase 198*b1cdbd2cSJim Jagielski 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski 203*b1cdbd2cSJim Jagielski class TVRead 204*b1cdbd2cSJim Jagielski : public TVBase 205*b1cdbd2cSJim Jagielski { 206*b1cdbd2cSJim Jagielski friend class TVChildTarget; 207*b1cdbd2cSJim Jagielski 208*b1cdbd2cSJim Jagielski public: 209*b1cdbd2cSJim Jagielski TVRead( const ConfigData& configData,TVDom* tvDom = 0 ); 210*b1cdbd2cSJim Jagielski 211*b1cdbd2cSJim Jagielski ~TVRead(); 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski // XNameAccess 214*b1cdbd2cSJim Jagielski 215*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Any SAL_CALL 216*b1cdbd2cSJim Jagielski getByName( const rtl::OUString& aName ) 217*b1cdbd2cSJim Jagielski throw( com::sun::star::container::NoSuchElementException, 218*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException, 219*b1cdbd2cSJim Jagielski com::sun::star::uno::RuntimeException); 220*b1cdbd2cSJim Jagielski 221*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL 222*b1cdbd2cSJim Jagielski getElementNames( ) 223*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ); 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL 226*b1cdbd2cSJim Jagielski hasByName( const rtl::OUString& aName ) 227*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ); 228*b1cdbd2cSJim Jagielski 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski // XHierarchicalNameAccess 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Any SAL_CALL 233*b1cdbd2cSJim Jagielski getByHierarchicalName( const rtl::OUString& aName ) 234*b1cdbd2cSJim Jagielski throw( com::sun::star::container::NoSuchElementException, 235*b1cdbd2cSJim Jagielski com::sun::star::uno::RuntimeException ); 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL 238*b1cdbd2cSJim Jagielski hasByHierarchicalName( const rtl::OUString& aName ) 239*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ); 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski private: 243*b1cdbd2cSJim Jagielski 244*b1cdbd2cSJim Jagielski rtl::OUString Title; 245*b1cdbd2cSJim Jagielski rtl::OUString TargetURL; 246*b1cdbd2cSJim Jagielski rtl::Reference< TVChildTarget > Children; 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski }; // end class TVRead 249*b1cdbd2cSJim Jagielski 250*b1cdbd2cSJim Jagielski 251*b1cdbd2cSJim Jagielski 252*b1cdbd2cSJim Jagielski 253*b1cdbd2cSJim Jagielski 254*b1cdbd2cSJim Jagielski 255*b1cdbd2cSJim Jagielski class TVChildTarget 256*b1cdbd2cSJim Jagielski : public TVBase 257*b1cdbd2cSJim Jagielski { 258*b1cdbd2cSJim Jagielski public: 259*b1cdbd2cSJim Jagielski 260*b1cdbd2cSJim Jagielski TVChildTarget( const ConfigData& configData,TVDom* tvDom ); 261*b1cdbd2cSJim Jagielski 262*b1cdbd2cSJim Jagielski TVChildTarget( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xMSF ); 263*b1cdbd2cSJim Jagielski 264*b1cdbd2cSJim Jagielski ~TVChildTarget(); 265*b1cdbd2cSJim Jagielski 266*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Any SAL_CALL 267*b1cdbd2cSJim Jagielski getByName( const rtl::OUString& aName ) 268*b1cdbd2cSJim Jagielski throw( com::sun::star::container::NoSuchElementException, 269*b1cdbd2cSJim Jagielski com::sun::star::lang::WrappedTargetException, 270*b1cdbd2cSJim Jagielski com::sun::star::uno::RuntimeException); 271*b1cdbd2cSJim Jagielski 272*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL 273*b1cdbd2cSJim Jagielski getElementNames( ) 274*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ); 275*b1cdbd2cSJim Jagielski 276*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL 277*b1cdbd2cSJim Jagielski hasByName( const rtl::OUString& aName ) 278*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ); 279*b1cdbd2cSJim Jagielski 280*b1cdbd2cSJim Jagielski 281*b1cdbd2cSJim Jagielski // XHierarchicalNameAccess 282*b1cdbd2cSJim Jagielski 283*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Any SAL_CALL 284*b1cdbd2cSJim Jagielski getByHierarchicalName( const rtl::OUString& aName ) 285*b1cdbd2cSJim Jagielski throw( com::sun::star::container::NoSuchElementException, 286*b1cdbd2cSJim Jagielski com::sun::star::uno::RuntimeException ); 287*b1cdbd2cSJim Jagielski 288*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL 289*b1cdbd2cSJim Jagielski hasByHierarchicalName( const rtl::OUString& aName ) 290*b1cdbd2cSJim Jagielski throw( com::sun::star::uno::RuntimeException ); 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski 293*b1cdbd2cSJim Jagielski private: 294*b1cdbd2cSJim Jagielski std::vector< rtl::Reference< TVRead > > Elements; 295*b1cdbd2cSJim Jagielski 296*b1cdbd2cSJim Jagielski ConfigData init( 297*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xMSF ); 298*b1cdbd2cSJim Jagielski 299*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > 300*b1cdbd2cSJim Jagielski getConfiguration( 301*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xMSgr ) const; 302*b1cdbd2cSJim Jagielski 303*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::container::XHierarchicalNameAccess > 304*b1cdbd2cSJim Jagielski getHierAccess( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& sProvider, 305*b1cdbd2cSJim Jagielski const char* file ) const; 306*b1cdbd2cSJim Jagielski 307*b1cdbd2cSJim Jagielski ::rtl::OUString 308*b1cdbd2cSJim Jagielski getKey( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XHierarchicalNameAccess >& xHierAccess, 309*b1cdbd2cSJim Jagielski const char* key ) const; 310*b1cdbd2cSJim Jagielski 311*b1cdbd2cSJim Jagielski sal_Bool 312*b1cdbd2cSJim Jagielski getBooleanKey( 313*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::container::XHierarchicalNameAccess >& xHierAccess, 314*b1cdbd2cSJim Jagielski const char* key) const; 315*b1cdbd2cSJim Jagielski 316*b1cdbd2cSJim Jagielski void subst( 317*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xMSgr, 318*b1cdbd2cSJim Jagielski rtl::OUString& instpath ) const; 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski }; // end class TVChildTarget 321*b1cdbd2cSJim Jagielski 322*b1cdbd2cSJim Jagielski 323*b1cdbd2cSJim Jagielski enum IteratorState 324*b1cdbd2cSJim Jagielski { 325*b1cdbd2cSJim Jagielski USER_EXTENSIONS, 326*b1cdbd2cSJim Jagielski SHARED_EXTENSIONS, 327*b1cdbd2cSJim Jagielski BUNDLED_EXTENSIONS, 328*b1cdbd2cSJim Jagielski END_REACHED 329*b1cdbd2cSJim Jagielski }; 330*b1cdbd2cSJim Jagielski 331*b1cdbd2cSJim Jagielski class ExtensionIteratorBase 332*b1cdbd2cSJim Jagielski { 333*b1cdbd2cSJim Jagielski public: 334*b1cdbd2cSJim Jagielski ExtensionIteratorBase( const rtl::OUString& aLanguage ); 335*b1cdbd2cSJim Jagielski void init( void ); 336*b1cdbd2cSJim Jagielski 337*b1cdbd2cSJim Jagielski private: 338*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetHelpPackageFromPackage 339*b1cdbd2cSJim Jagielski ( const com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > xPackage, 340*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle ); 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski protected: 343*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetNextUserHelpPackage 344*b1cdbd2cSJim Jagielski ( com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle ); 345*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetNextSharedHelpPackage 346*b1cdbd2cSJim Jagielski ( com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle ); 347*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > implGetNextBundledHelpPackage 348*b1cdbd2cSJim Jagielski ( com::sun::star::uno::Reference< com::sun::star::deployment::XPackage >& o_xParentPackageBundle ); 349*b1cdbd2cSJim Jagielski 350*b1cdbd2cSJim Jagielski void implGetLanguageVectorFromPackage( ::std::vector< ::rtl::OUString > &rv, 351*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > xPackage ); 352*b1cdbd2cSJim Jagielski 353*b1cdbd2cSJim Jagielski osl::Mutex m_aMutex; 354*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_xContext; 355*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::ucb::XSimpleFileAccess > m_xSFA; 356*b1cdbd2cSJim Jagielski 357*b1cdbd2cSJim Jagielski IteratorState m_eState; 358*b1cdbd2cSJim Jagielski rtl::OUString m_aLanguage; 359*b1cdbd2cSJim Jagielski 360*b1cdbd2cSJim Jagielski com::sun::star::uno::Sequence< com::sun::star::uno::Reference 361*b1cdbd2cSJim Jagielski < com::sun::star::deployment::XPackage > > m_aUserPackagesSeq; 362*b1cdbd2cSJim Jagielski bool m_bUserPackagesLoaded; 363*b1cdbd2cSJim Jagielski 364*b1cdbd2cSJim Jagielski com::sun::star::uno::Sequence< com::sun::star::uno::Reference 365*b1cdbd2cSJim Jagielski < com::sun::star::deployment::XPackage > > m_aSharedPackagesSeq; 366*b1cdbd2cSJim Jagielski bool m_bSharedPackagesLoaded; 367*b1cdbd2cSJim Jagielski 368*b1cdbd2cSJim Jagielski com::sun::star::uno::Sequence< com::sun::star::uno::Reference 369*b1cdbd2cSJim Jagielski < com::sun::star::deployment::XPackage > > m_aBundledPackagesSeq; 370*b1cdbd2cSJim Jagielski bool m_bBundledPackagesLoaded; 371*b1cdbd2cSJim Jagielski 372*b1cdbd2cSJim Jagielski int m_iUserPackage; 373*b1cdbd2cSJim Jagielski int m_iSharedPackage; 374*b1cdbd2cSJim Jagielski int m_iBundledPackage; 375*b1cdbd2cSJim Jagielski 376*b1cdbd2cSJim Jagielski }; // end class ExtensionIteratorBase 377*b1cdbd2cSJim Jagielski 378*b1cdbd2cSJim Jagielski 379*b1cdbd2cSJim Jagielski //=================================================================== 380*b1cdbd2cSJim Jagielski class TreeFileIterator : public ExtensionIteratorBase 381*b1cdbd2cSJim Jagielski { 382*b1cdbd2cSJim Jagielski public: TreeFileIterator(const rtl::OUString & aLanguage)383*b1cdbd2cSJim Jagielski TreeFileIterator( const rtl::OUString& aLanguage ) 384*b1cdbd2cSJim Jagielski : ExtensionIteratorBase( aLanguage ) 385*b1cdbd2cSJim Jagielski {} 386*b1cdbd2cSJim Jagielski 387*b1cdbd2cSJim Jagielski rtl::OUString nextTreeFile( sal_Int32& rnFileSize ); 388*b1cdbd2cSJim Jagielski 389*b1cdbd2cSJim Jagielski private: 390*b1cdbd2cSJim Jagielski rtl::OUString expandURL( const rtl::OUString& aURL ); 391*b1cdbd2cSJim Jagielski rtl::OUString implGetTreeFileFromPackage( sal_Int32& rnFileSize, 392*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< com::sun::star::deployment::XPackage > xPackage ); 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim Jagielski }; // end class TreeFileIterator 395*b1cdbd2cSJim Jagielski 396*b1cdbd2cSJim Jagielski 397*b1cdbd2cSJim Jagielski } 398*b1cdbd2cSJim Jagielski 399*b1cdbd2cSJim Jagielski 400*b1cdbd2cSJim Jagielski #endif 401