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]

Reply via email to