17 #ifndef LIB_WINSS_WAIT_MULTIPLEXER_HPP_ 18 #define LIB_WINSS_WAIT_MULTIPLEXER_HPP_ 36 typedef std::function<void(WaitMultiplexer&)>
Callback;
54 std::chrono::system_clock::time_point
timeout;
73 bool stopping =
false;
77 std::vector<Callback> init_callbacks;
79 std::map<winss::HandleWrapper, TriggeredCallback> trigger_callbacks;
81 std::set<WaitTimeoutItem> timeout_callbacks;
83 std::vector<Callback> stop_callbacks;
93 Callback GetTimeoutCallback();
106 virtual void AddInitCallback(Callback
callback);
115 TriggeredCallback callback);
125 virtual void AddTimeoutCallback(DWORD
timeout,
126 Callback callback, std::string
group =
"");
133 virtual void AddStopCallback(Callback callback);
147 virtual bool RemoveTimeoutCallback(std::string
group);
154 virtual DWORD GetTimeout()
const;
173 virtual void Stop(
int code);
180 virtual bool IsStopping()
const;
187 virtual bool HasStarted()
const;
194 virtual int GetReturnCode()
const;
215 #endif // LIB_WINSS_WAIT_MULTIPLEXER_HPP_ A wrapper for a Windows HANDLE.
Definition: handle_wrapper.hpp:39
WaitMultiplexer()
The default constructor.
Definition: wait_multiplexer.hpp:97
Wraps a windows event.
Definition: event_wrapper.hpp:27
bool operator<(const WaitTimeoutItem &rhs) const
Used to order the timeout items such as next item is the one with the point in time closest to now...
Definition: wait_multiplexer.cpp:32
Definition: case_ignore.hpp:23
std::string group
Used to identify the group of items when removing them.
Definition: wait_multiplexer.hpp:52
std::chrono::system_clock::time_point timeout
The point in time the timeout will be in effect.
Definition: wait_multiplexer.hpp:54
std::function< void(WaitMultiplexer &)> Callback
A callback function for wait multiplexer events.
Definition: wait_multiplexer.hpp:31
Holds timeout information such that when a timeout occurs the multiplexer knows how to handle it...
Definition: wait_multiplexer.hpp:50
A HANDLE wait multiplexer.
Definition: wait_multiplexer.hpp:70
Callback callback
The call back for when the timeout occurs.
Definition: wait_multiplexer.hpp:55
std::function< void(WaitMultiplexer &, const winss::HandleWrapper &)> TriggeredCallback
A callback function specifically for triggered multiplexer events.
Definition: wait_multiplexer.hpp:42