Commit | Line | Data |
---|---|---|
470575df | 1 | ideas/todo libasyncio |
21ffe77a GE |
2 | ------------------------ |
3 | ||
4 | name | |
5 | ----- | |
470575df RP |
6 | rename from libsimpleio to libasyncio |
7 | don't use namespace i2n | |
8 | use namespace asyncio | |
21ffe77a GE |
9 | |
10 | ||
11 | smaller refactoring | |
12 | ----------- | |
470575df | 13 | remove dependencies to libi2ncommon |
21ffe77a GE |
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 | |
17 | separate ptrlist | |
18 | protect ptrlist against evil usage (e.g. forbid or overload erase, push_back, insert,...) | |
19 | separate MilliTime | |
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) | |
f0804030 | 24 | provide simple replacements for system() and pipestream using simpleio and timeouts |
21ffe77a GE |
25 | |
26 | bigger refactoring | |
27 | ------------------ | |
470575df | 28 | put iolist, timerlist & child-handling into backend to reduce the usage of global objects |
21ffe77a GE |
29 | make IOImplementations require a link to the backend they are used with |
30 | ||
31 | ideas | |
32 | ----- | |
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 | |
470575df RP |
35 | maybe filter-interface offers this functionality? |
36 | ||
37 | boost::asio | |
38 | ----------- | |
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? | |
f0804030 GE |
42 | |
43 | glue_t2n | |
44 | -------- | |
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 |