14#ifndef ZYPP_BASE_EVENTDISPATCHER_DEFINED
15#define ZYPP_BASE_EVENTDISPATCHER_DEFINED
18#include <zypp-core/zyppng/base/Signals>
19#include <zypp-core/zyppng/base/Base>
20#include <zypp-core/zyppng/base/AbstractEventSource>
71 ev->invokeOnIdleImpl( std::forward<T>(
callback) );
84 template<
typename T >
88 ev->unrefLaterImpl( std::static_pointer_cast<void>( std::forward<T>(ptr) ) );
98 void clearUnrefLaterList ();
103 ulong runningTimers()
const;
108 static std::shared_ptr<EventDispatcher> instance();
115 static void setThreadDispatcher (
const std::shared_ptr<EventDispatcher> &disp );
121 void *nativeDispatcherHandle ()
const;
129 static bool waitForFdEvent (
const int fd,
int events,
int &revents,
int &timeout );
friend class AbstractEventSource
static void unrefLater(T &&ptr)
UnixSignalSourceRef unixSignalSource()
virtual void registerTimer(Timer &timer)
std::function< void(int, int)> WaitPidCallback
std::shared_ptr< EventDispatcher > WeakPtr
void unrefLaterImpl(std::shared_ptr< void > &&ptr)
std::function< bool()> IdleFunction
EventDispatcher(void *ctx=nullptr)
virtual void removeTimer(Timer &timer)
void trackChildProcess(int pid, std::function< void(int, int)> callback)
bool untrackChildProcess(int pid)
virtual void updateEventSource(AbstractEventSource ¬ifier, int fd, int mode)
virtual void removeEventSource(AbstractEventSource ¬ifier, int fd=-1)
static std::shared_ptr< EventDispatcher > instance()
void invokeOnIdleImpl(IdleFunction &&callback)
std::shared_ptr< EventDispatcher > Ptr
static void invokeOnIdle(T &&callback)
Convenience function to schedule a callback to be called later.
The Timer class provides repetitive and single-shot timers.
#define ZYPP_DECLARE_PRIVATE(Class)
#define LIBZYPP_NG_EXPORT
#define ZYPP_FWD_DECL_TYPE_WITH_REFS(T)