summaryrefslogtreecommitdiff
path: root/dbaccess/source/core/dataaccess/databasedocument.hxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2005-07-08 09:36:26 +0000
committerOliver Bolte <obo@openoffice.org>2005-07-08 09:36:26 +0000
commit70bc937bf47af1f50e4144e486226d8961b1dc66 (patch)
tree8615c84b6773e95a8ea1948c9c3a7e0de62a6af7 /dbaccess/source/core/dataaccess/databasedocument.hxx
parent2d2a1de705c8166d8247a2dc92048960196488c4 (diff)
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
Diffstat (limited to 'dbaccess/source/core/dataaccess/databasedocument.hxx')
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.hxx36
1 files changed, 17 insertions, 19 deletions
diff --git a/dbaccess/source/core/dataaccess/databasedocument.hxx b/dbaccess/source/core/dataaccess/databasedocument.hxx
index d5bed390333e..cd357727ec5c 100644
--- a/dbaccess/source/core/dataaccess/databasedocument.hxx
+++ b/dbaccess/source/core/dataaccess/databasedocument.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: databasedocument.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: vg $ $Date: 2005-03-23 09:46:19 $
+ * last change: $Author: obo $ $Date: 2005-07-08 10:36:26 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -114,20 +114,18 @@ namespace dbaccess
{
//........................................................................
- 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 @@ typedef ::cppu::WeakComponentImplHelper11< ::com::sun::star::frame::XModel
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 @@ class ODatabaseDocument : public ::comphelper::OBaseMutex
, 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 / frank.schonheit@sun.com
+
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 @@ public:
// 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);