write down some todos and ideas about libsimpleio
authorGerd v. Egidy <gerd.von.egidy@intra2net.com>
Thu, 16 Oct 2008 17:05:12 +0000 (17:05 +0000)
committerGerd v. Egidy <gerd.von.egidy@intra2net.com>
Thu, 16 Oct 2008 17:05:12 +0000 (17:05 +0000)
ideas.txt [new file with mode: 0644]

diff --git a/ideas.txt b/ideas.txt
new file mode 100644 (file)
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