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