new ideas & names
[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 libsimpleasio
12 libasiocontrol
13 libasiohandle
14 libasioflow
15 libasiomaster
16 libiocontrol
17 libasyncrap
18 libasyncwrap
19 libasyncio
20
21
22 smaller refactoring
23 -----------
24 backend in separate file
25 break backend::doOneStep in 4 functions
26 document reason for ptrlist: keeps iterators valid during loops which do inserts/deletes
27 separate ptrlist
28 protect ptrlist against evil usage (e.g. forbid or overload erase, push_back, insert,...)
29 separate MilliTime
30 separate pollfd, maybe encapsulate the pollfd-struct instead of deriving from it
31 separate polldatacluster
32 document that timerbase is always based on  monotonic clock, getrealwhentime converts the time live
33 document handling of error-cases, m_errno (e.g. mask ENOTSOCK for non-socket fds)
34 provide simple replacements for system() and pipestream using simpleio and timeouts
35
36 bigger refactoring
37 ------------------
38 put iolist & timerlist into backend to reduce the usage global objects
39 make IOImplementations require a link to the backend they are used with
40
41 ideas
42 -----
43 offer a common io-client or io-server, abstracting out the real communication channel used.
44 makes it possible to switch between ways of communication at runtime
45
46 glue_t2n
47 --------
48 don't call doOneStep from within the fill_buffer()-variants
49 - for the server-variants not that hard if you require that command_server::handle will be called on every socket-event
50 - for the client: needs callback-interface on t2n-side, need to think about it