#ifndef NET_TEST_EVENT_WAITER_H_
#define NET_TEST_EVENT_WAITER_H_
#include "base/run_loop.h"
namespace net {
template <typename Event>
class EventWaiter {
public:
void WaitForEvent(Event event) {
expected_event_ = event;
base::RunLoop run_loop;
quit_closure_ = run_loop.QuitClosure();
run_loop.Run();
}
void NotifyEvent(Event event) {
if (!quit_closure_.is_null() && event == expected_event_)
std::move(quit_closure_).Run();
}
private:
Event expected_event_;
base::OnceClosure quit_closure_;
};
}
#endif