libzypp  17.38.7
eventloop.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \----------------------------------------------------------------------/
9 *
10 * This file contains private API, this might break at any time between releases.
11 * You have been warned!
12 *
13 */
14 #ifndef ZYPP_BASE_EVENTLOOP_DEFINED
15 #define ZYPP_BASE_EVENTLOOP_DEFINED
16 
18 #include <zypp-core/ng/base/Signals>
19 #include <zypp-core/ng/base/Base>
20 
21 typedef struct _GMainContext GMainContext;
22 
23 namespace zyppng {
24 
25  ZYPP_FWD_DECL_TYPE_WITH_REFS ( EventDispatcher );
26  ZYPP_FWD_DECL_TYPE_WITH_REFS ( EventLoop );
27  class EventLoopPrivate;
28 
30 
42  class EventLoop : public Base
43  {
45 
46  public:
47  using Ptr = EventLoopRef;
48  using WeakPtr = EventLoopWeakRef;
49 
50  static Ptr create ( GMainContext *ctx = nullptr );
51  static Ptr create ( EventDispatcherRef dispatcher );
52  ~EventLoop() override;
53 
57  void run ();
58 
62  void quit ();
63 
64 
68  std::shared_ptr<EventDispatcher> eventDispatcher () const;
69 
70  private:
71  EventLoop( GMainContext *ctx = nullptr );
72  EventLoop( EventDispatcherRef dispatcher );
73 
74  };
75 
76 }
77 
78 #endif
std::shared_ptr< EventDispatcher > eventDispatcher() const
std::weak_ptr< Base > WeakPtr
Definition: base.h:67
~EventLoop() override
EventLoop(GMainContext *ctx=nullptr)
#define ZYPP_DECLARE_PRIVATE(Class)
Definition: zyppglobal.h:80
ZYPP_FWD_DECL_TYPE_WITH_REFS(EventDispatcher)
struct _GMainContext GMainContext
static Ptr create(GMainContext *ctx=nullptr)
std::shared_ptr< Base > Ptr
Definition: base.h:66