/* Copyright (C) 2013-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: DkWxProcessingIdleController.cpt */ /** @file DkWxProcessingIdleController.h Header file for the DkWxProcessingIdleController module. */ #ifndef DKWXPROCESSINGIDLECONTROLLER_H_INCLUDED /** Avoid multiple inclusions. */ #define DKWXPROCESSINGIDLECONTROLLER_H_INCLUDED 1 #line 8 "DkWxProcessingIdleController.cpt" #ifndef DK3CONF_H_INCLUDED #include "dk3conf.h" #endif #ifndef DKWXPROCESSINGCONTROLLER_H_INCLUDED #include #endif /** Protect idle event handler from concurrent execution. In contrast to a critical section which delays execution of code this class skips the code execution. */ class DkWxProcessingIdleController : public DkWxProcessingController { protected: /** Avoid concurrent access to bWantMore. */ wxMutex mxProtectWantMore; /** Flag: More idle events wanted. */ bool bWantMore; public: /** Constructor. */ DkWxProcessingIdleController(); /** Indicate interest in more idle events (thread-safe). @param value New flag value. */ void setWantMore(bool value = true); /** Indicate no more interest in further idle events (thread-safe). */ void resetWantMore(void); /** Check for interest in further idle events (thread-safe). @return true to ask for further events, false otherwise. */ bool wantMore(void); }; #endif