write down some todos and ideas about libsimpleio
[libasyncio] / ideas.txt
1 ideas/todo libsimpleio
2 ------------------------
3
4 name
5 -----
6 don't use namespace i2n but namespace according to new project name
7
8 ideas:
9 libsimpleio
10 libastiop (LIBrary for ASynchronous Timer, I/O and Process)
11
12 important todo
13 --------------------
14 don't use m_poll_vector.front() directly as argument to poll, relies on std::vector really storing it's data continous
15
16
17 smaller refactoring
18 -----------
19 backend in separate file
20 break backend::doOneStep in 4 functions
21 document reason for ptrlist: keeps iterators valid during loops which do inserts/deletes
22 separate ptrlist
23 protect ptrlist against evil usage (e.g. forbid or overload erase, push_back, insert,...)
24 separate MilliTime
25 separate pollfd, maybe encapsulate the pollfd-struct instead of deriving from it
26 separate polldatacluster
27 document that timerbase is always based on  monotonic clock, getrealwhentime converts the time live
28 document handling of error-cases, m_errno (e.g. mask ENOTSOCK for non-socket fds)
29
30
31 bigger refactoring
32 ------------------
33 put iolist & timerlist into backend to reduce the usage global objects
34 make IOImplementations require a link to the backend they are used with
35
36 ideas
37 -----
38 offer a common io-client or io-server, abstracting out the real communication channel used.
39 makes it possible to switch between ways of communication at runtime