xref: /trunk/main/ucb/source/ucp/file/filrset.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef _FILRSET_HXX_
28 #define _FILRSET_HXX_
29 
30 #ifndef __SGI_STL_VECTOR
31 #include <vector>
32 #endif
33 #include <ucbhelper/macros.hxx>
34 #include <osl/file.hxx>
35 
36 #include "osl/mutex.hxx"
37 #include <cppuhelper/weak.hxx>
38 #include <cppuhelper/interfacecontainer.hxx>
39 #include <com/sun/star/lang/XTypeProvider.hpp>
40 #include <com/sun/star/ucb/XContentAccess.hpp>
41 #include <com/sun/star/sdbc/XCloseable.hpp>
42 #include <com/sun/star/beans/XPropertySet.hpp>
43 #ifndef _COM_SUN_STAR_UCB_XDYNAMICRESULTSET_HPP__
44 #include <com/sun/star/ucb/XDynamicResultSet.hpp>
45 #endif
46 #include <com/sun/star/ucb/XDynamicResultSetListener.hpp>
47 #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
48 #include <com/sun/star/ucb/NumberedSortingInfo.hpp>
49 #include <com/sun/star/ucb/XContentProvider.hpp>
50 #include <com/sun/star/ucb/XContentIdentifier.hpp>
51 #include <com/sun/star/beans/Property.hpp>
52 #include "filrow.hxx"
53 #include "filnot.hxx"
54 
55 
56 
57 namespace fileaccess {
58 
59     class Notifier;
60 
61     class XResultSet_impl
62         : public cppu::OWeakObject,
63           public com::sun::star::lang::XTypeProvider,
64           public com::sun::star::lang::XEventListener,
65           public com::sun::star::sdbc::XRow,
66           public com::sun::star::sdbc::XResultSet,
67           public com::sun::star::ucb::XDynamicResultSet,
68           public com::sun::star::sdbc::XCloseable,
69           public com::sun::star::sdbc::XResultSetMetaDataSupplier,
70           public com::sun::star::beans::XPropertySet,
71           public com::sun::star::ucb::XContentAccess,
72           public Notifier
73     {
74     public:
75 
76         XResultSet_impl( shell* pMyShell,
77                          const rtl::OUString& aUnqPath,
78                          sal_Int32 OpenMode,
79                          const com::sun::star::uno::Sequence< com::sun::star::beans::Property >& seq,
80                          const com::sun::star::uno::Sequence< com::sun::star::ucb::NumberedSortingInfo >& seqSort );
81 
82         virtual ~XResultSet_impl();
83 
84         virtual ContentEventNotifier*        cDEL( void )
85         {
86             return 0;
87         }
88 
89         virtual ContentEventNotifier*        cEXC( const rtl::OUString )
90         {
91             return 0;
92         }
93 
94         virtual ContentEventNotifier*          cCEL( void )
95         {
96             return 0;
97         }
98 
99         virtual PropertySetInfoChangeNotifier* cPSL( void )
100         {
101             return 0;
102         }
103 
104         virtual PropertyChangeNotifier*        cPCL( void )
105         {
106             return 0;
107         }
108 
109         virtual rtl::OUString                  getKey( void )
110         {
111             return m_aBaseDirectory;
112         }
113 
114         sal_Int32 SAL_CALL CtorSuccess();
115         sal_Int32 SAL_CALL getMinorError();
116 
117         // XInterface
118         virtual com::sun::star::uno::Any SAL_CALL
119         queryInterface(
120             const com::sun::star::uno::Type& aType )
121             throw( com::sun::star::uno::RuntimeException);
122 
123         virtual void SAL_CALL
124         acquire(
125             void )
126             throw();
127 
128         virtual void SAL_CALL
129         release(
130             void )
131             throw();
132 
133 
134         // XTypeProvider
135 
136         XTYPEPROVIDER_DECL()
137 
138 
139         // XEventListener
140         virtual void SAL_CALL
141         disposing(
142             const com::sun::star::lang::EventObject& Source )
143             throw( com::sun::star::uno::RuntimeException );
144 
145         // XComponent
146         virtual void SAL_CALL
147         dispose(
148             void )
149             throw( com::sun::star::uno::RuntimeException );
150 
151         virtual void SAL_CALL
152         addEventListener(
153             const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& xListener )
154             throw( com::sun::star::uno::RuntimeException );
155 
156         virtual void SAL_CALL
157         removeEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& aListener )
158             throw( com::sun::star::uno::RuntimeException );
159 
160 
161         // XRow
162         virtual sal_Bool SAL_CALL
163         wasNull(
164             void )
165             throw( com::sun::star::sdbc::SQLException,
166                    com::sun::star::uno::RuntimeException )
167         {
168             if( 0<= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
169                 m_nWasNull = m_aItems[m_nRow]->wasNull();
170             else
171                 m_nWasNull = true;
172             return m_nWasNull;
173         }
174 
175         virtual rtl::OUString SAL_CALL
176         getString(
177             sal_Int32 columnIndex )
178             throw( com::sun::star::sdbc::SQLException,
179                    com::sun::star::uno::RuntimeException)
180         {
181             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
182                 return m_aItems[m_nRow]->getString( columnIndex );
183             else
184                 return rtl::OUString();
185         }
186 
187         virtual sal_Bool SAL_CALL
188         getBoolean(
189             sal_Int32 columnIndex )
190             throw( com::sun::star::sdbc::SQLException,
191                    com::sun::star::uno::RuntimeException)
192         {
193             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
194                 return m_aItems[m_nRow]->getBoolean( columnIndex );
195             else
196                 return false;
197         }
198 
199         virtual sal_Int8 SAL_CALL
200         getByte(
201             sal_Int32 columnIndex )
202             throw( com::sun::star::sdbc::SQLException,
203                    com::sun::star::uno::RuntimeException)
204         {
205             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
206                 return m_aItems[m_nRow]->getByte( columnIndex );
207             else
208                 return sal_Int8( 0 );
209         }
210 
211         virtual sal_Int16 SAL_CALL
212         getShort(
213             sal_Int32 columnIndex )
214             throw(
215                 com::sun::star::sdbc::SQLException,
216                 com::sun::star::uno::RuntimeException)
217         {
218             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
219                 return m_aItems[m_nRow]->getShort( columnIndex );
220             else
221                 return sal_Int16( 0 );
222         }
223 
224         virtual sal_Int32 SAL_CALL
225         getInt(
226             sal_Int32 columnIndex )
227             throw( com::sun::star::sdbc::SQLException,
228                    com::sun::star::uno::RuntimeException )
229         {
230             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
231                 return m_aItems[m_nRow]->getInt( columnIndex );
232             else
233                 return sal_Int32( 0 );
234         }
235 
236         virtual sal_Int64 SAL_CALL
237         getLong(
238             sal_Int32 columnIndex )
239             throw( com::sun::star::sdbc::SQLException,
240                    com::sun::star::uno::RuntimeException)
241         {
242             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
243                 return m_aItems[m_nRow]->getLong( columnIndex );
244             else
245                 return sal_Int64( 0 );
246         }
247 
248         virtual float SAL_CALL
249         getFloat(
250             sal_Int32 columnIndex )
251             throw( com::sun::star::sdbc::SQLException,
252                    com::sun::star::uno::RuntimeException )
253         {
254             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
255                 return m_aItems[m_nRow]->getFloat( columnIndex );
256             else
257                 return float( 0 );
258         }
259 
260         virtual double SAL_CALL
261         getDouble(
262             sal_Int32 columnIndex )
263             throw( com::sun::star::sdbc::SQLException,
264                    com::sun::star::uno::RuntimeException )
265         {
266             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
267                 return m_aItems[m_nRow]->getDouble( columnIndex );
268             else
269                 return double( 0 );
270         }
271 
272         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
273         getBytes(
274             sal_Int32 columnIndex )
275             throw( com::sun::star::sdbc::SQLException,
276                    com::sun::star::uno::RuntimeException )
277         {
278             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
279                 return m_aItems[m_nRow]->getBytes( columnIndex );
280             else
281                 return com::sun::star::uno::Sequence< sal_Int8 >();
282         }
283 
284         virtual com::sun::star::util::Date SAL_CALL
285         getDate(
286             sal_Int32 columnIndex )
287             throw( com::sun::star::sdbc::SQLException,
288                    com::sun::star::uno::RuntimeException)
289         {
290             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
291                 return m_aItems[m_nRow]->getDate( columnIndex );
292             else
293                 return com::sun::star::util::Date();
294         }
295 
296         virtual com::sun::star::util::Time SAL_CALL
297         getTime(
298             sal_Int32 columnIndex )
299             throw( com::sun::star::sdbc::SQLException,
300                    com::sun::star::uno::RuntimeException)
301         {
302             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
303                 return m_aItems[m_nRow]->getTime( columnIndex );
304             else
305                 return com::sun::star::util::Time();
306         }
307 
308         virtual com::sun::star::util::DateTime SAL_CALL
309         getTimestamp(
310             sal_Int32 columnIndex )
311             throw( com::sun::star::sdbc::SQLException,
312                    com::sun::star::uno::RuntimeException)
313         {
314             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
315                 return m_aItems[m_nRow]->getTimestamp( columnIndex );
316             else
317                 return com::sun::star::util::DateTime();
318         }
319 
320         virtual com::sun::star::uno::Reference< com::sun::star::io::XInputStream > SAL_CALL
321         getBinaryStream(
322             sal_Int32 columnIndex )
323             throw( com::sun::star::sdbc::SQLException,
324                    com::sun::star::uno::RuntimeException)
325         {
326             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
327                 return m_aItems[m_nRow]->getBinaryStream( columnIndex );
328             else
329                 return com::sun::star::uno::Reference< com::sun::star::io::XInputStream >();
330         }
331 
332         virtual com::sun::star::uno::Reference< com::sun::star::io::XInputStream > SAL_CALL
333         getCharacterStream(
334             sal_Int32 columnIndex )
335             throw( com::sun::star::sdbc::SQLException,
336                    com::sun::star::uno::RuntimeException)
337         {
338             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
339                 return m_aItems[m_nRow]->getCharacterStream( columnIndex );
340             else
341                 return com::sun::star::uno::Reference< com::sun::star::io::XInputStream >();
342         }
343 
344         virtual com::sun::star::uno::Any SAL_CALL
345         getObject(
346             sal_Int32 columnIndex,
347             const com::sun::star::uno::Reference< com::sun::star::container::XNameAccess >& typeMap )
348             throw( com::sun::star::sdbc::SQLException,
349                    com::sun::star::uno::RuntimeException)
350         {
351             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
352                 return m_aItems[m_nRow]->getObject( columnIndex,typeMap );
353             else
354                 return com::sun::star::uno::Any();
355         }
356 
357         virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XRef > SAL_CALL
358         getRef(
359             sal_Int32 columnIndex )
360             throw( com::sun::star::sdbc::SQLException,
361                    com::sun::star::uno::RuntimeException)
362         {
363             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
364                 return m_aItems[m_nRow]->getRef( columnIndex );
365             else
366                 return com::sun::star::uno::Reference< com::sun::star::sdbc::XRef >();
367         }
368 
369         virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XBlob > SAL_CALL
370         getBlob(
371             sal_Int32 columnIndex )
372             throw( com::sun::star::sdbc::SQLException,
373                    com::sun::star::uno::RuntimeException)
374         {
375             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
376                 return m_aItems[m_nRow]->getBlob( columnIndex );
377             else
378                 return com::sun::star::uno::Reference< com::sun::star::sdbc::XBlob >();
379         }
380 
381         virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XClob > SAL_CALL
382         getClob(
383             sal_Int32 columnIndex )
384             throw( com::sun::star::sdbc::SQLException,
385                    com::sun::star::uno::RuntimeException)
386         {
387             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
388                 return m_aItems[m_nRow]->getClob( columnIndex );
389             else
390                 return com::sun::star::uno::Reference< com::sun::star::sdbc::XClob >();
391         }
392 
393         virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XArray > SAL_CALL
394         getArray(
395             sal_Int32 columnIndex )
396             throw( com::sun::star::sdbc::SQLException,
397                    com::sun::star::uno::RuntimeException)
398         {
399             if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
400                 return m_aItems[m_nRow]->getArray( columnIndex );
401             else
402                 return com::sun::star::uno::Reference< com::sun::star::sdbc::XArray >();
403         }
404 
405 
406         // XResultSet
407 
408         virtual sal_Bool SAL_CALL
409         next(
410             void )
411             throw( com::sun::star::sdbc::SQLException,
412                    com::sun::star::uno::RuntimeException);
413 
414         virtual sal_Bool SAL_CALL
415         isBeforeFirst(
416             void )
417             throw( com::sun::star::sdbc::SQLException,
418                    com::sun::star::uno::RuntimeException);
419 
420         virtual sal_Bool SAL_CALL
421         isAfterLast(
422             void )
423             throw( com::sun::star::sdbc::SQLException,
424                    com::sun::star::uno::RuntimeException);
425 
426         virtual sal_Bool SAL_CALL
427         isFirst(
428             void  )
429             throw( com::sun::star::sdbc::SQLException,
430                    com::sun::star::uno::RuntimeException);
431 
432         virtual sal_Bool SAL_CALL
433         isLast(
434             void  )
435             throw( com::sun::star::sdbc::SQLException,
436                    com::sun::star::uno::RuntimeException);
437 
438         virtual void SAL_CALL
439         beforeFirst(
440             void  )
441             throw( com::sun::star::sdbc::SQLException,
442                    com::sun::star::uno::RuntimeException);
443 
444         virtual void SAL_CALL
445         afterLast(
446             void  )
447             throw( com::sun::star::sdbc::SQLException,
448                    com::sun::star::uno::RuntimeException);
449 
450         virtual sal_Bool SAL_CALL
451         first(
452             void  )
453             throw( com::sun::star::sdbc::SQLException,
454                    com::sun::star::uno::RuntimeException);
455 
456         virtual sal_Bool SAL_CALL
457         last(
458             void  )
459             throw( com::sun::star::sdbc::SQLException,
460                    com::sun::star::uno::RuntimeException);
461 
462         virtual sal_Int32 SAL_CALL
463         getRow(
464             void  )
465             throw( com::sun::star::sdbc::SQLException,
466                    com::sun::star::uno::RuntimeException);
467 
468         virtual sal_Bool SAL_CALL
469         absolute(
470             sal_Int32 row )
471             throw( com::sun::star::sdbc::SQLException,
472                    com::sun::star::uno::RuntimeException);
473 
474         virtual sal_Bool SAL_CALL
475         relative(
476             sal_Int32 rows )
477             throw( com::sun::star::sdbc::SQLException,
478                    com::sun::star::uno::RuntimeException);
479 
480         virtual sal_Bool SAL_CALL
481         previous(
482             void  )
483             throw( com::sun::star::sdbc::SQLException,
484                    com::sun::star::uno::RuntimeException);
485 
486         virtual void SAL_CALL
487         refreshRow(
488             void  )
489             throw( com::sun::star::sdbc::SQLException,
490                    com::sun::star::uno::RuntimeException);
491 
492         virtual sal_Bool SAL_CALL
493         rowUpdated(
494             void )
495             throw( com::sun::star::sdbc::SQLException,
496                    com::sun::star::uno::RuntimeException);
497 
498         virtual sal_Bool SAL_CALL
499         rowInserted(
500             void  )
501             throw( com::sun::star::sdbc::SQLException,
502                    com::sun::star::uno::RuntimeException);
503 
504         virtual sal_Bool SAL_CALL
505         rowDeleted(
506             void  )
507             throw( com::sun::star::sdbc::SQLException,
508                    com::sun::star::uno::RuntimeException);
509 
510 
511         virtual  com::sun::star::uno::Reference<  com::sun::star::uno::XInterface > SAL_CALL
512         getStatement(
513             void  )
514             throw( com::sun::star::sdbc::SQLException,
515                    com::sun::star::uno::RuntimeException);
516 
517 
518         // XDynamicResultSet
519 
520         virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XResultSet > SAL_CALL
521         getStaticResultSet(
522             void )
523             throw( com::sun::star::ucb::ListenerAlreadySetException,
524                    com::sun::star::uno::RuntimeException );
525 
526         virtual void SAL_CALL
527         setListener(
528             const com::sun::star::uno::Reference<
529             com::sun::star::ucb::XDynamicResultSetListener >& Listener )
530             throw( com::sun::star::ucb::ListenerAlreadySetException,
531                    com::sun::star::uno::RuntimeException );
532 
533         virtual void SAL_CALL
534         connectToCache( const com::sun::star::uno::Reference< com::sun::star::ucb::XDynamicResultSet > & xCache )
535             throw( com::sun::star::ucb::ListenerAlreadySetException,
536                    com::sun::star::ucb::AlreadyInitializedException,
537                    com::sun::star::ucb::ServiceNotFoundException,
538                    com::sun::star::uno::RuntimeException );
539 
540         virtual sal_Int16 SAL_CALL
541         getCapabilities()
542             throw( com::sun::star::uno::RuntimeException );
543 
544 
545         // XCloseable
546 
547         virtual void SAL_CALL
548         close(
549             void )
550             throw( com::sun::star::sdbc::SQLException,
551                    com::sun::star::uno::RuntimeException);
552 
553         // XContentAccess
554 
555         virtual rtl::OUString SAL_CALL
556         queryContentIdentifierString(
557             void )
558             throw( com::sun::star::uno::RuntimeException );
559 
560         virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier > SAL_CALL
561         queryContentIdentifier(
562             void )
563             throw( com::sun::star::uno::RuntimeException );
564 
565         virtual com::sun::star::uno::Reference< com::sun::star::ucb::XContent > SAL_CALL
566         queryContent(
567             void )
568             throw( com::sun::star::uno::RuntimeException );
569 
570         // XResultSetMetaDataSupplier
571         virtual com::sun::star::uno::Reference< com::sun::star::sdbc::XResultSetMetaData > SAL_CALL
572         getMetaData(
573             void )
574             throw( com::sun::star::sdbc::SQLException,
575                    com::sun::star::uno::RuntimeException);
576 
577 
578         // XPropertySet
579         virtual com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo > SAL_CALL
580         getPropertySetInfo()
581             throw( com::sun::star::uno::RuntimeException);
582 
583         virtual void SAL_CALL setPropertyValue(
584             const rtl::OUString& aPropertyName,
585             const com::sun::star::uno::Any& aValue )
586             throw( com::sun::star::beans::UnknownPropertyException,
587                    com::sun::star::beans::PropertyVetoException,
588                    com::sun::star::lang::IllegalArgumentException,
589                    com::sun::star::lang::WrappedTargetException,
590                    com::sun::star::uno::RuntimeException);
591 
592         virtual com::sun::star::uno::Any SAL_CALL
593         getPropertyValue(
594             const rtl::OUString& PropertyName )
595             throw( com::sun::star::beans::UnknownPropertyException,
596                    com::sun::star::lang::WrappedTargetException,
597                    com::sun::star::uno::RuntimeException);
598 
599         virtual void SAL_CALL
600         addPropertyChangeListener(
601             const rtl::OUString& aPropertyName,
602             const com::sun::star::uno::Reference< com::sun::star::beans::XPropertyChangeListener >& xListener )
603             throw( com::sun::star::beans::UnknownPropertyException,
604                    com::sun::star::lang::WrappedTargetException,
605                    com::sun::star::uno::RuntimeException);
606 
607         virtual void SAL_CALL
608         removePropertyChangeListener(
609             const rtl::OUString& aPropertyName,
610             const com::sun::star::uno::Reference< com::sun::star::beans::XPropertyChangeListener >& aListener )
611             throw( com::sun::star::beans::UnknownPropertyException,
612                    com::sun::star::lang::WrappedTargetException,
613                    com::sun::star::uno::RuntimeException);
614 
615         virtual void SAL_CALL
616         addVetoableChangeListener(
617             const rtl::OUString& PropertyName,
618             const com::sun::star::uno::Reference< com::sun::star::beans::XVetoableChangeListener >& aListener )
619             throw( com::sun::star::beans::UnknownPropertyException,
620                    com::sun::star::lang::WrappedTargetException,
621                    com::sun::star::uno::RuntimeException);
622 
623         virtual void SAL_CALL removeVetoableChangeListener(
624             const rtl::OUString& PropertyName,
625             const com::sun::star::uno::Reference< com::sun::star::beans::XVetoableChangeListener >& aListener )
626             throw( com::sun::star::beans::UnknownPropertyException,
627                    com::sun::star::lang::WrappedTargetException,
628                    com::sun::star::uno::RuntimeException);
629 
630     private:
631 
632         // Members
633         //  const uno::Reference< lang::XMultiServiceFactory > m_xMSF;
634         //  const uno::Reference< ucb::XContentProvider > m_xProvider;
635 
636         shell*                              m_pMyShell;
637         com::sun::star::uno::Reference< com::sun::star::ucb::XContentProvider >  m_xProvider;
638         sal_Bool                            m_nIsOpen;
639         sal_Int32                           m_nRow;
640         sal_Bool                            m_nWasNull;
641         sal_Int32                           m_nOpenMode;
642         sal_Bool                            m_bRowCountFinal;
643 
644         typedef std::vector< com::sun::star::uno::Reference< com::sun::star::ucb::XContentIdentifier > > IdentSet;
645         typedef std::vector< com::sun::star::uno::Reference< com::sun::star::sdbc::XRow > >         ItemSet;
646         typedef std::vector< rtl::OUString >                        UnqPathSet;
647 
648         IdentSet                            m_aIdents;
649         ItemSet                             m_aItems;
650         UnqPathSet                          m_aUnqPath;
651         const rtl::OUString                 m_aBaseDirectory;
652 
653         osl::Directory                        m_aFolder;
654         com::sun::star::uno::Sequence< com::sun::star::beans::Property >      m_sProperty;
655         com::sun::star::uno::Sequence< com::sun::star::ucb::NumberedSortingInfo >  m_sSortingInfo;
656 
657         osl::Mutex                          m_aMutex;
658         osl::Mutex                          m_aEventListenerMutex;
659         cppu::OInterfaceContainerHelper*    m_pDisposeEventListeners;
660 
661         cppu::OInterfaceContainerHelper*    m_pRowCountListeners;
662         cppu::OInterfaceContainerHelper*    m_pIsFinalListeners;
663 
664         com::sun::star::uno::Reference< com::sun::star::ucb::XDynamicResultSetListener >       m_xListener;
665         sal_Bool                            m_bStatic;
666 
667         sal_Int32                                          m_nErrorCode;
668         sal_Int32                                          m_nMinorErrorCode;
669 
670         // Methods
671         sal_Bool SAL_CALL OneMore( void )
672             throw( com::sun::star::sdbc::SQLException,
673                    com::sun::star::uno::RuntimeException );
674 
675         void rowCountChanged();
676         void isFinalChanged();
677     };
678 
679 
680 } // end namespace fileaccess
681 
682 
683 #endif
684