2 ------------------------
6 rename from libsimpleio to libasyncio
7 don't use namespace i2n
13 remove dependencies to libi2ncommon
14 backend in separate file
15 break backend::doOneStep in 4 functions
16 document reason for ptrlist: keeps iterators valid during loops which do inserts/deletes
18 protect ptrlist against evil usage (e.g. forbid or overload erase, push_back, insert,...)
20 separate pollfd, maybe encapsulate the pollfd-struct instead of deriving from it
21 separate polldatacluster
22 document that timerbase is always based on monotonic clock, getrealwhentime converts the time live
23 document handling of error-cases, m_errno (e.g. mask ENOTSOCK for non-socket fds)
24 provide simple replacements for system() and pipestream using simpleio and timeouts
28 put iolist, timerlist & child-handling into backend to reduce the usage of global objects
29 make IOImplementations require a link to the backend they are used with
33 offer a common io-client or io-server, abstracting out the real communication channel used.
34 makes it possible to switch between ways of communication at runtime
35 maybe filter-interface offers this functionality?
39 feature comparison to boost::asio
40 interface/usage comparison, what is more easy to use for our usecase?
41 long-term: merge with boost::asio, maybe with additional lib or keep it a separate project?
45 don't call doOneStep from within the fill_buffer()-variants
46 - for the server-variants not that hard if you require that command_server::handle will be called on every socket-event
47 - for the client: needs callback-interface on t2n-side, need to think about it