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