Kaydet (Commit) 4bd8ffd2 authored tarafından Michael Meeks's avatar Michael Meeks

Replace return boolean from DoYield with pleasant enumeration.

Change-Id: I1b1f885b4d7916a18dfb2457a8e9af9a5b4ae6e4
Reviewed-on: https://gerrit.libreoffice.org/20138Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMichael Meeks <michael.meeks@collabora.com>
üst 37b5f1ed
......@@ -94,8 +94,10 @@ public:
// Process one pending Timer with highhest priority
static void CallbackTaskScheduling( bool ignore );
/// Calculate minimum timeout - and return its value.
static sal_uInt64 CalculateMinimumTimeout();
/// Process one pending task ahead of time with highhest priority.
static void ProcessTaskScheduling( bool bTimer );
static void ProcessTaskScheduling( bool bTimer );
};
#endif // INCLUDED_VCL_SCHEDULER_HXX
......
......@@ -261,7 +261,7 @@ SalBitmap* SvpSalInstance::CreateSalBitmap()
#endif
}
bool SvpSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
SalYieldResult SvpSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
{
(void) nReleased;
assert(nReleased == 0); // not implemented
......@@ -329,7 +329,8 @@ bool SvpSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong
DoReleaseYield(nTimeoutMS);
}
return bEvent;
return bEvent ? SalYieldResult::EVENT :
SalYieldResult::TIMEOUT;
}
void SvpSalInstance::DoReleaseYield( int nTimeoutMS )
......
......@@ -155,7 +155,7 @@ public:
// wait next event and dispatch
// must returned by UserEvent (SalFrame::PostEvent)
// and timer
virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) override;
virtual SalYieldResult DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) override;
virtual bool AnyInput( VclInputFlags nType ) override;
// may return NULL to disable session management
......
......@@ -107,7 +107,7 @@ public:
virtual sal_uLong ReleaseYieldMutex() override;
virtual void AcquireYieldMutex( sal_uLong nCount ) override;
virtual bool CheckYieldMutex() override;
virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents,
virtual SalYieldResult DoYield(bool bWait, bool bHandleAllCurrentEvents,
sal_uLong nReleased) override;
virtual bool AnyInput( VclInputFlags nType ) override;
virtual SalMenu* CreateMenu( bool bMenuBar, Menu* pVCLMenu ) override;
......
......@@ -60,6 +60,8 @@ class Menu;
enum class VclInputFlags;
enum class SalFrameStyleFlags;
enum SalYieldResult { EVENT, TIMEOUT };
class VCL_PLUGIN_PUBLIC SalInstance
{
private:
......@@ -132,7 +134,7 @@ public:
* If @bHandleAllCurrentEvents - dispatch multiple posted
* user events. Returns true if events needed processing.
*/
virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) = 0;
virtual SalYieldResult DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) = 0;
virtual bool AnyInput( VclInputFlags nType ) = 0;
// menus
......
......@@ -115,7 +115,7 @@ public:
static gboolean userEventFn( gpointer data );
void PostUserEvent();
bool Yield( bool bWait, bool bHandleAllCurrentEvents );
SalYieldResult Yield( bool bWait, bool bHandleAllCurrentEvents );
inline GdkDisplay *GetGdkDisplay();
virtual void ErrorTrapPush() override;
......
......@@ -80,7 +80,7 @@ public:
const SystemGraphicsData* ) override;
virtual SalBitmap* CreateSalBitmap() override;
virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) override;
virtual SalYieldResult DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) override;
virtual bool AnyInput( VclInputFlags nType ) override;
virtual GenPspGraphics *CreatePrintGraphics() override;
......
......@@ -153,7 +153,7 @@ public:
virtual ~SalXLib();
virtual void Init();
virtual bool Yield( bool bWait, bool bHandleAllCurrentEvents );
virtual SalYieldResult Yield( bool bWait, bool bHandleAllCurrentEvents );
virtual void Wakeup();
virtual void PostUserEvent();
......
......@@ -71,7 +71,7 @@ public:
virtual SalBitmap* CreateSalBitmap() override;
virtual SalSession* CreateSalSession() override;
virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) override;
virtual SalYieldResult DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) override;
virtual bool AnyInput( VclInputFlags nType ) override;
virtual void* GetConnectionIdentifier( ConnectionIdentifierType& rReturnedType, int& rReturnedBytes ) override;
......
......@@ -72,7 +72,7 @@ public:
virtual void AcquireYieldMutex( sal_uIntPtr nCount ) override;
virtual bool CheckYieldMutex() override;
virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) override;
virtual SalYieldResult DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong nReleased) override;
virtual bool AnyInput( VclInputFlags nType ) override;
virtual SalMenu* CreateMenu( bool bMenuBar, Menu* ) override;
virtual void DestroyMenu( SalMenu* ) override;
......
......@@ -559,7 +559,7 @@ class ReleasePoolHolder
~ReleasePoolHolder() { [mpPool release]; }
};
bool AquaSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
SalYieldResult AquaSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
{
(void) nReleased;
assert(nReleased == 0); // not implemented
......@@ -600,7 +600,7 @@ bool AquaSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLon
osl_setCondition( maWaitingYieldCond );
// return if only one event is asked for
if( ! bHandleAllCurrentEvents )
return true;
return SalYieldResult::EVENT;
}
}
......@@ -711,7 +711,7 @@ bool AquaSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLon
}
}
return bHadEvent;
return bHadEvent ? SalYieldResult::EVENT : SalYieldResult::TIMEOUT;
}
bool AquaSalInstance::AnyInput( VclInputFlags nType )
......
......@@ -41,7 +41,7 @@ void ImplSchedulerData::Invoke()
mbInScheduler = false;
}
ImplSchedulerData *ImplSchedulerData::GetMostImportantTask( bool bTimer )
ImplSchedulerData *ImplSchedulerData::GetMostImportantTask( bool bTimerOnly )
{
ImplSVData* pSVData = ImplGetSVData();
ImplSchedulerData *pMostUrgent = nullptr;
......@@ -49,7 +49,7 @@ ImplSchedulerData *ImplSchedulerData::GetMostImportantTask( bool bTimer )
for ( ImplSchedulerData *pSchedulerData = pSVData->mpFirstSchedulerData; pSchedulerData; pSchedulerData = pSchedulerData->mpNext )
{
if ( !pSchedulerData->mpScheduler || pSchedulerData->mbDelete || pSchedulerData->mnUpdateStack >= pSVData->mnUpdateStack
|| !pSchedulerData->mpScheduler->ReadyForSchedule( bTimer ) || !pSchedulerData->mpScheduler->IsActive())
|| !pSchedulerData->mpScheduler->ReadyForSchedule( bTimerOnly ) || !pSchedulerData->mpScheduler->IsActive())
continue;
if (!pMostUrgent)
pMostUrgent = pSchedulerData;
......
......@@ -30,9 +30,8 @@ void Timer::SetDeletionFlags()
}
}
bool Timer::ReadyForSchedule( bool bTimer ) const
bool Timer::ReadyForSchedule( bool /* bTimerOnly */ ) const
{
(void)bTimer;
return (mpSchedulerData->mnUpdateTime + mnTimeout) <= tools::Time::GetSystemTicks();
}
......
......@@ -606,7 +606,8 @@ bool SalXLib::CheckTimeout( bool bExecuteTimers )
return bRet;
}
bool SalXLib::Yield( bool bWait, bool bHandleAllCurrentEvents )
SalYieldResult
SalXLib::Yield( bool bWait, bool bHandleAllCurrentEvents )
{
blockIdleTimeout = !bWait;
// check for timeouts here if you want to make screenshots
......@@ -629,7 +630,7 @@ bool SalXLib::Yield( bool bWait, bool bHandleAllCurrentEvents )
if( ! bHandleAllCurrentEvents )
{
blockIdleTimeout = false;
return true;
return SalYieldResult::EVENT;
}
}
}
......@@ -706,7 +707,7 @@ bool SalXLib::Yield( bool bWait, bool bHandleAllCurrentEvents )
if (nFound == 0)
{
blockIdleTimeout = false;
return false;
return SalYieldResult::TIMEOUT;
}
for ( int nFD = 0; nFD < nFDs_; nFD++ )
......@@ -736,7 +737,8 @@ bool SalXLib::Yield( bool bWait, bool bHandleAllCurrentEvents )
}
blockIdleTimeout = false;
return bHandledEvent;
return bHandledEvent ? SalYieldResult::EVENT
: SalYieldResult::TIMEOUT;
}
void SalXLib::Wakeup()
......
......@@ -151,7 +151,7 @@ bool X11SalInstance::AnyInput(VclInputFlags nType)
return bRet;
}
bool X11SalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
SalYieldResult X11SalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
{
(void) nReleased;
assert(nReleased == 0); // not implemented
......
......@@ -579,7 +579,7 @@ void GtkData::Dispose()
}
/// Allows events to be processed, returns true if we processed an event.
bool GtkData::Yield( bool bWait, bool bHandleAllCurrentEvents )
SalYieldResult GtkData::Yield( bool bWait, bool bHandleAllCurrentEvents )
{
blockIdleTimeout = !bWait;
......@@ -598,7 +598,7 @@ bool GtkData::Yield( bool bWait, bool bHandleAllCurrentEvents )
else if( ! bWait )
{
blockIdleTimeout = false;
return false; // someone else is waiting already, return
return SalYieldResult::TIMEOUT; // someone else is waiting already, return
}
if( bDispatchThread )
......@@ -633,7 +633,8 @@ bool GtkData::Yield( bool bWait, bool bHandleAllCurrentEvents )
}
blockIdleTimeout = false;
return bWasEvent;
return bWasEvent ? SalYieldResult::EVENT
: SalYieldResult::TIMEOUT;
}
void GtkData::Init()
......
......@@ -396,7 +396,7 @@ void GtkInstance::RemoveTimer (SalTimer *pTimer)
m_aTimers.erase( it );
}
bool GtkInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
SalYieldResult GtkInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
{
(void) nReleased;
assert(nReleased == 0); // not implemented
......
......@@ -621,7 +621,8 @@ static void ImplSalDispatchMessage( MSG* pMsg )
ImplSalPostDispatchMsg( pMsg, lResult );
}
bool ImplSalYield( bool bWait, bool bHandleAllCurrentEvents )
SalYieldResult
ImplSalYield( bool bWait, bool bHandleAllCurrentEvents )
{
MSG aMsg;
bool bWasMsg = false, bOneEvent = false;
......@@ -648,12 +649,13 @@ bool ImplSalYield( bool bWait, bool bHandleAllCurrentEvents )
ImplSalDispatchMessage( &aMsg );
}
}
return bWasMsg;
return bWasMsg ? SalYieldResult::EVENT :
SalYieldResult::TIMEOUT;
}
bool WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
SalYieldResult WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong const nReleased)
{
bool bDidWork = false;
SalYieldResult eDidWork = SalYieldResult::TIMEOUT;
// NOTE: if nReleased != 0 this will be called without SolarMutex
// so don't do anything dangerous before releasing it here
SalYieldMutex* pYieldMutex = mpSalYieldMutex;
......@@ -694,7 +696,7 @@ bool WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong
}
else
{
bDidWork = ImplSalYield( bWait, bHandleAllCurrentEvents );
eDidWork = ImplSalYield( bWait, bHandleAllCurrentEvents );
n = nCount;
while ( n )
......@@ -703,7 +705,7 @@ bool WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, sal_uLong
n--;
}
}
return bDidWork;
return eDidWork;
}
LRESULT CALLBACK SalComWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam, int& rDef )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment