diff options
author | Julien Nabet <serval2412@yahoo.fr> | 2015-01-24 14:03:44 +0100 |
---|---|---|
committer | Julien Nabet <serval2412@yahoo.fr> | 2015-01-24 14:03:44 +0100 |
commit | 025db4982dc0305d1e346f1342d2fc7dde139c02 (patch) | |
tree | 0485dd80b0d6b59391652dcd96b93b5f5c9a1e6f /dbaccess | |
parent | 285654bf79f4e09d9ac0f6974db08df85446a500 (diff) |
Revert "Typo: ..syncronous..=>synchronous (dbaccess)"
This reverts commit 285654bf79f4e09d9ac0f6974db08df85446a500.
Diffstat (limited to 'dbaccess')
-rw-r--r-- | dbaccess/Library_dbu.mk | 2 | ||||
-rw-r--r-- | dbaccess/source/ui/app/AppController.hxx | 2 | ||||
-rw-r--r-- | dbaccess/source/ui/browser/AsyncronousLink.cxx | 87 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/dbwizsetup.cxx | 4 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/brwctrlr.hxx | 6 |
5 files changed, 94 insertions, 7 deletions
diff --git a/dbaccess/Library_dbu.mk b/dbaccess/Library_dbu.mk index 293040337bf7..c9b4f409b818 100644 --- a/dbaccess/Library_dbu.mk +++ b/dbaccess/Library_dbu.mk @@ -88,7 +88,7 @@ $(eval $(call gb_Library_add_exception_objects,dbu,\ dbaccess/source/ui/app/AppTitleWindow \ dbaccess/source/ui/app/AppView \ dbaccess/source/ui/app/subcomponentmanager \ - dbaccess/source/ui/browser/AsynchronousLink \ + dbaccess/source/ui/browser/AsyncronousLink \ dbaccess/source/ui/browser/brwctrlr \ dbaccess/source/ui/browser/brwview \ dbaccess/source/ui/browser/dataview \ diff --git a/dbaccess/source/ui/app/AppController.hxx b/dbaccess/source/ui/app/AppController.hxx index 3a36987643bd..95a14572a611 100644 --- a/dbaccess/source/ui/app/AppController.hxx +++ b/dbaccess/source/ui/app/AppController.hxx @@ -117,7 +117,7 @@ namespace dbaui TransferableClipboardListener* m_pClipbordNotifier; // notifier for changes in the clipboard ImplSVEvent * m_nAsyncDrop; - OAsynchronousLink m_aSelectContainerEvent; + OAsyncronousLink m_aSelectContainerEvent; PreviewMode m_ePreviewMode; // the mode of the preview ElementType m_eCurrentType; bool m_bNeedToReconnect; // true when the settings of the data source were modified and the connection is no longer up to date diff --git a/dbaccess/source/ui/browser/AsyncronousLink.cxx b/dbaccess/source/ui/browser/AsyncronousLink.cxx new file mode 100644 index 000000000000..ac940d445283 --- /dev/null +++ b/dbaccess/source/ui/browser/AsyncronousLink.cxx @@ -0,0 +1,87 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#include <dbaccess/AsyncronousLink.hxx> +#include <vcl/svapp.hxx> +#include <tools/debug.hxx> + +// OAsyncronousLink +using namespace dbaui; +OAsyncronousLink::OAsyncronousLink( const Link& _rHandler ) + :m_aHandler(_rHandler) + ,m_aEventSafety() + ,m_aDestructionSafety() + ,m_nEventId(0) +{ +} + +OAsyncronousLink::~OAsyncronousLink() +{ + { + ::osl::MutexGuard aEventGuard( m_aEventSafety ); + if ( m_nEventId ) + Application::RemoveUserEvent(m_nEventId); + m_nEventId = 0; + } + + { + ::osl::MutexGuard aDestructionGuard( m_aDestructionSafety ); + // this is just for the case we're deleted while another thread just handled the event : + // if this other thread called our link while we were deleting the event here, the + // link handler blocked. With leaving the above block it continued, but now we are prevented + // to leave this destructor 'til the link handler recognizes that nEvent == 0 and leaves. + } +} + +void OAsyncronousLink::Call( void* _pArgument ) +{ + ::osl::MutexGuard aEventGuard( m_aEventSafety ); + if (m_nEventId) + Application::RemoveUserEvent(m_nEventId); + m_nEventId = Application::PostUserEvent( LINK( this, OAsyncronousLink, OnAsyncCall ), _pArgument ); +} + +void OAsyncronousLink::CancelCall() +{ + ::osl::MutexGuard aEventGuard( m_aEventSafety ); + if ( m_nEventId ) + Application::RemoveUserEvent( m_nEventId ); + m_nEventId = 0; +} + +IMPL_LINK(OAsyncronousLink, OnAsyncCall, void*, _pArg) +{ + { + ::osl::MutexGuard aDestructionGuard( m_aDestructionSafety ); + { + ::osl::MutexGuard aEventGuard( m_aEventSafety ); + if (!m_nEventId) + // our destructor deleted the event just while we are waiting for m_aEventSafety + // -> get outta here + return 0; + m_nEventId = 0; + } + } + if (m_aHandler.IsSet()) + return m_aHandler.Call(_pArg); + + return 0L; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/dlg/dbwizsetup.cxx b/dbaccess/source/ui/dlg/dbwizsetup.cxx index 7111764d0f3a..292292276d6a 100644 --- a/dbaccess/source/ui/dlg/dbwizsetup.cxx +++ b/dbaccess/source/ui/dlg/dbwizsetup.cxx @@ -42,7 +42,7 @@ #include "dbaccess_helpid.hrc" #include "ConnectionPageSetup.hxx" #include "UITools.hxx" -#include <dbaccess/AsynchronousLink.hxx> +#include <dbaccess/AsyncronousLink.hxx> #include <sfx2/filedlghelper.hxx> #include <cppuhelper/exc_hlp.hxx> @@ -880,7 +880,7 @@ bool ODbTypeWizDialogSetup::SaveDatabaseDocument() Reference< XDesktop2 > m_xDesktop; Reference< XInteractionHandler2 > m_xInteractionHandler; OUString m_sURL; - OAsynchronousLink m_aAsyncCaller; + OAsyncronousLink m_aAsyncCaller; public: AsyncLoader( const Reference< XComponentContext >& _rxORB, const OUString& _rURL ); diff --git a/dbaccess/source/ui/inc/brwctrlr.hxx b/dbaccess/source/ui/inc/brwctrlr.hxx index 16d1c335f735..63e536a0f6c9 100644 --- a/dbaccess/source/ui/inc/brwctrlr.hxx +++ b/dbaccess/source/ui/inc/brwctrlr.hxx @@ -96,8 +96,8 @@ namespace dbaui TransferableClipboardListener* m_pClipbordNotifier; // notifier for changes in the clipboard - OAsynchronousLink m_aAsyncGetCellFocus; - OAsynchronousLink m_aAsyncDisplayError; + OAsyncronousLink m_aAsyncGetCellFocus; + OAsyncronousLink m_aAsyncDisplayError; ::dbtools::SQLExceptionInfo m_aCurrentError; OUString m_sStateSaveRecord; @@ -273,7 +273,7 @@ namespace dbaui // load the form // the default implementation does an direct load or starts a load thread, depending on the multithread capabilities // of the data source. - // the default implementation also calls LoadFinished after a synchronous load, so be sure to do the same if you override + // the default implementation also calls LoadFinished after a syncronous load, so be sure to do the same if you override // this metod and don't call the base class' method virtual void LoadFinished(bool bWasSynch); |