README revision 714cd85f
1460998e0SShuo ChenEngineering a Reactor
2460998e0SShuo Chen -- how to write a non-blocking network library from scratch.
3460998e0SShuo Chen
4460998e0SShuo ChenStep 0: a do-nothing event loop
542bf2220SShuo Chen  EventLoop, assertInLoopThread()
6cc7f415cSShuo Chen  test1: poll for 10 seconds, creates two threads, each one has an EventLoop
7460998e0SShuo Chen  test2: abort() as it accesses event loop created in a different thread
8460998e0SShuo Chen
942bf2220SShuo ChenStep 1: prototype of reactor
1042bf2220SShuo Chen  Channel, Poller, updateChannel().
11cc7f415cSShuo Chen  test1: poll for ever, creates two threads, each one has an EventLoop
1242bf2220SShuo Chen  test2: same as before
1342bf2220SShuo Chen  test3: poll a timerfd, which expires in 5 seconds
1442bf2220SShuo Chen
1542bf2220SShuo ChenStep 2: TimerQueue
1642bf2220SShuo Chen  TimerQueue, Timer, TimerId, EventLoop::runAfter, EventLoop::runEvery
17cc7f415cSShuo Chen  not thread safe
18cc7f415cSShuo Chen  test4: timer queue unittest
1942bf2220SShuo Chen
2042bf2220SShuo ChenStep 3: wakeup(), runInLoop()
219807252eSShuo Chen  test5: runInLoop(), runAfter() in loop thread
229807252eSShuo Chen  test6: runInLoop(), runAfter() in a different thread
2342bf2220SShuo Chen
2442bf2220SShuo ChenStep 4: Acceptor
25e54e5389SShuo Chen  test7: listen on port 9981, accept, send, and close
2642bf2220SShuo Chen
2742bf2220SShuo ChenStep 5: TcpServer
2817c057c3SShuo Chen  test8: use of TcpServer, create TcpConnection
2942bf2220SShuo Chen
30714cd85fSShuo ChenStep 6: TcpConnection passive close
3142bf2220SShuo Chen
32714cd85fSShuo ChenStep 7: TcpConnection read with Buffer, add receiveTime to read callback
33714cd85fSShuo Chen  test3: show receiveTime
34714cd85fSShuo Chen  test8: show receiveTime
35e54e5389SShuo Chen
36714cd85fSShuo ChenStep 8: TcpConnection write, write complete callback, SIGPIPE
3742bf2220SShuo Chen
3842bf2220SShuo ChenStep 9: multithreaded TcpServer
3942bf2220SShuo Chen
4042bf2220SShuo ChenStep 10: Connector
4142bf2220SShuo Chen
4242bf2220SShuo ChenStep 11: TcpClient
4342bf2220SShuo Chen
4442bf2220SShuo ChenStep 12: epoll
4542bf2220SShuo Chen
46