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