User: obo Date: 05/07/08 03:36:28 Modified: /dba/dbaccess/source/core/dataaccess/ databasedocument.hxx
Log: INTEGRATION: CWS dba20blocker (1.3.58); FILE MERGED 2005/06/23 13:56:41 fs 1.3.58.1: copying fix for #i50905# into this CWS File Changes: Directory: /dba/dbaccess/source/core/dataaccess/ ================================================ File [changed]: databasedocument.hxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/dataaccess/databasedocument.hxx?r1=1.3&r2=1.4 Delta lines: +15 -17 --------------------- --- databasedocument.hxx 23 Mar 2005 09:46:19 -0000 1.3 +++ databasedocument.hxx 8 Jul 2005 10:36:26 -0000 1.4 @@ -114,20 +114,18 @@ { //........................................................................ - class OChildCommitListen_Impl; - class ODatabaseContext; +class ODatabaseContext; //============================================================ //= ODatabaseDocument //============================================================ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > ODatabaseDocument_CreateInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&); -typedef ::cppu::WeakComponentImplHelper11< ::com::sun::star::frame::XModel +typedef ::cppu::WeakComponentImplHelper10< ::com::sun::star::frame::XModel , ::com::sun::star::util::XModifiable , ::com::sun::star::frame::XStorable , ::com::sun::star::document::XEventBroadcaster , ::com::sun::star::document::XEventListener - , ::com::sun::star::embed::XTransactionListener , ::com::sun::star::view::XPrintable , ::com::sun::star::util::XCloseable , ::com::sun::star::lang::XServiceInfo @@ -139,15 +137,9 @@ class ODatabaseDocument : public ::comphelper::OBaseMutex ,public ODatabaseDocument_OfficeDocument { - friend class ODatabaseContext; - friend ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > - ODatabaseDocument_CreateInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&); - - ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager> m_xUIConfigurationManager; ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener > m_xDocEventBroadcaster; - OChildCommitListen_Impl* m_pChildCommitListen; ::cppu::OInterfaceContainerHelper m_aModifyListeners; ::cppu::OInterfaceContainerHelper m_aCloseListener; ::cppu::OInterfaceContainerHelper m_aDocEventListeners; @@ -221,12 +213,24 @@ , const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& _xStorageToSaveTo); +private: + ODatabaseDocument(const ::rtl::Reference<ODatabaseModelImpl>& _pImpl); + // Do NOT create those documents directly, always use ODatabaseModelImpl::getModel. Reason is that + // ODatabaseDocument require clear ownership, and in turn lifetime synchronisation with the ModelImpl. + // If you create a ODatabaseDocument directly, you might easily create a leak. + // #i50905# / 2005-06-20 / [EMAIL PROTECTED] + protected: virtual void SAL_CALL disposing(); virtual ~ODatabaseDocument(); + public: - ODatabaseDocument(const ::rtl::Reference<ODatabaseModelImpl>& _pImpl); + struct FactoryAccess { friend class ODatabaseModelImpl; private: FactoryAccess() { } }; + static ODatabaseDocument* createDatabaseDocument( const ::rtl::Reference<ODatabaseModelImpl>& _pImpl, FactoryAccess accessControl ) + { + return new ODatabaseDocument( _pImpl ); + } // ::com::sun::star::lang::XServiceInfo virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException); @@ -309,12 +313,6 @@ // XOfficeDatabaseDocument virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource > SAL_CALL getDataSource() throw (::com::sun::star::uno::RuntimeException); - // XTransactionListener - virtual void SAL_CALL preCommit( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL commited( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL preRevert( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL reverted( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException); - // XStorageBasedDocument /* virtual void SAL_CALL loadFromStorage( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescriptor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::frame::DoubleInitializationException, ::com::sun::star::io::IOException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
