Coverage Report

Created: 2026-11-12 06:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wxwidgets/include/wx/unix/evtloop.h
Line
Count
Source
1
///////////////////////////////////////////////////////////////////////////////
2
// Name:        wx/unix/evtloop.h
3
// Purpose:     declares wxEventLoop class
4
// Author:      Lukasz Michalski (lm@zork.pl)
5
// Created:     2007-05-07
6
// Copyright:   (c) 2007 Lukasz Michalski
7
// Licence:     wxWindows licence
8
///////////////////////////////////////////////////////////////////////////////
9
10
#ifndef _WX_UNIX_EVTLOOP_H_
11
#define _WX_UNIX_EVTLOOP_H_
12
13
#if wxUSE_CONSOLE_EVENTLOOP
14
15
// ----------------------------------------------------------------------------
16
// wxConsoleEventLoop
17
// ----------------------------------------------------------------------------
18
19
class wxEventLoopSource;
20
class wxFDIODispatcher;
21
class wxWakeUpPipe;
22
23
class WXDLLIMPEXP_BASE wxConsoleEventLoop
24
#ifdef __DARWIN__
25
: public wxCFEventLoop
26
#else
27
: public wxEventLoopManual
28
#endif
29
{
30
public:
31
    // initialize the event loop, use IsOk() to check if we were successful
32
    wxConsoleEventLoop();
33
    virtual ~wxConsoleEventLoop();
34
35
    // implement base class pure virtuals
36
    virtual bool Pending() const override;
37
    virtual bool Dispatch() override;
38
    virtual int DispatchTimeout(unsigned long timeout) override;
39
    virtual void WakeUp() override;
40
0
    virtual bool IsOk() const override { return m_dispatcher != nullptr; }
41
42
protected:
43
    virtual void OnNextIteration() override;
44
    virtual void DoYieldFor(long eventsToProcess) override;
45
46
private:
47
    // pipe used for wake up messages: when a child thread wants to wake up
48
    // the event loop in the main thread it writes to this pipe
49
    wxWakeUpPipe *m_wakeupPipe;
50
51
    // the event loop source used to monitor this pipe
52
    wxEventLoopSource* m_wakeupSource;
53
54
    // either wxSelectDispatcher or wxEpollDispatcher
55
    wxFDIODispatcher *m_dispatcher;
56
57
    wxDECLARE_NO_COPY_CLASS(wxConsoleEventLoop);
58
};
59
60
#endif // wxUSE_CONSOLE_EVENTLOOP
61
62
#endif // _WX_UNIX_EVTLOOP_H_