void AsyncPickerAction::cancel()
{
DBG_TESTSOLARMUTEX(); // if this asserts, we'd need to have an own mutex per instance
OSL_ENSURE( m_bRunning, "AsyncPickerAction::cancel: not running" ); if ( m_pView )
m_pView->CancelRunningAsyncAction();
}
void AsyncPickerAction::execute( const OUString& _rURL, const OUString& _rFilter,
sal_Int32 _nMinTimeout,
sal_Int32 _nMaxTimeout, const css::uno::Sequence< OUString >& rDenyList )
{
DBG_TESTSOLARMUTEX(); // if this asserts, we'd need to have an own mutex per instance
sal_Int32 nMinTimeout = _nMinTimeout;
sal_Int32 nMaxTimeout = _nMaxTimeout; // normalizations if ( nMinTimeout < 0 ) // if negative, this is considered as "do it synchronously"
nMinTimeout = 0; elseif ( nMinTimeout < 1000 )
nMinTimeout = 1000; if ( nMaxTimeout <= nMinTimeout )
nMaxTimeout = nMinTimeout + 30000;
acquire(); if ( ( eResult == eSuccess ) || ( eResult == eFailure ) )
{ // the handler is only called if the action could not be finished within // the given minimum time period. In case of success, we need to call it // explicitly
OnActionDone( reinterpret_cast< void* >( eResult ) );
} elseif ( eResult == eStillRunning )
{
m_bRunning = true;
m_pDialog->onAsyncOperationStarted();
}
}
IMPL_LINK( AsyncPickerAction, OnActionDone, void*, pEmptyArg, void )
{
DBG_TESTSOLARMUTEX(); // if this asserts, we'd need to have an own mutex per instance
// release once (since we acquired in |execute|), but keep alive until the // end of the method
::rtl::Reference< AsyncPickerAction > xKeepAlive( this );
release();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.