#include <gtest/gtest.h>
#include <iostream>
#include <chrono>
using std::cout;
using std::endl;
std::chrono::milliseconds zero(0);
std::chrono::milliseconds tenth(100);
{
Event e;
Poller p;
p.set(e, Poller::input);
p.wait(tenth);
ASSERT_EQ(p.event(e), 0);
}
{
Event e;
Poller p;
p.set(e, Poller::output);
p.wait(tenth);
ASSERT_EQ(p.event(e) & Poller::output, Poller::output);
}
{
Event e;
Poller p;
e.write(1);
p.set(e, Poller::input);
p.wait(tenth);
ASSERT_EQ(p.event(e) & Poller::input, Poller::input);
}
{
Event e;
Poller p;
p.set(e, Poller::input|Poller::output);
p.wait(tenth);
ASSERT_EQ(p.event(e) & Poller::input, 0);
ASSERT_EQ(p.event(e) & Poller::output, Poller::output);
e.write(1);
p.wait(tenth);
ASSERT_EQ(p.event(e) & Poller::input, Poller::input);
ASSERT_EQ(p.event(e) & Poller::output, Poller::output);
}
Signaling kernel event counter.
Poller which allows polling of generic file descriptors for various events.
Signaling kernel event counter.
Linux kernel i/o event notification (poller).
TEST(inet_example, client_server_stream_test)
[Inet client server]