Commit | Line | Data |
---|---|---|
21ffe77a GE |
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 |