From 21ffe77a1f7ca5e1aec372365d43265c3fe00f55 Mon Sep 17 00:00:00 2001 From: Gerd v. Egidy Date: Thu, 16 Oct 2008 17:05:12 +0000 Subject: [PATCH] write down some todos and ideas about libsimpleio --- ideas.txt | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) create mode 100644 ideas.txt diff --git a/ideas.txt b/ideas.txt new file mode 100644 index 0000000..540b078 --- /dev/null +++ b/ideas.txt @@ -0,0 +1,39 @@ +ideas/todo libsimpleio +------------------------ + +name +----- +don't use namespace i2n but namespace according to new project name + +ideas: +libsimpleio +libastiop (LIBrary for ASynchronous Timer, I/O and Process) + +important todo +-------------------- +don't use m_poll_vector.front() directly as argument to poll, relies on std::vector really storing it's data continous + + +smaller refactoring +----------- +backend in separate file +break backend::doOneStep in 4 functions +document reason for ptrlist: keeps iterators valid during loops which do inserts/deletes +separate ptrlist +protect ptrlist against evil usage (e.g. forbid or overload erase, push_back, insert,...) +separate MilliTime +separate pollfd, maybe encapsulate the pollfd-struct instead of deriving from it +separate polldatacluster +document that timerbase is always based on monotonic clock, getrealwhentime converts the time live +document handling of error-cases, m_errno (e.g. mask ENOTSOCK for non-socket fds) + + +bigger refactoring +------------------ +put iolist & timerlist into backend to reduce the usage global objects +make IOImplementations require a link to the backend they are used with + +ideas +----- +offer a common io-client or io-server, abstracting out the real communication channel used. +makes it possible to switch between ways of communication at runtime -- 1.7.1