From: Carlo Wood (carlo_at_[hidden])
Date: 2004-09-14 06:06:29
this is more 'point 14' and we were still discussing point 2 :p,
The demultiplexor library that we are trying to design indeed exists
of two more or less separated parts:
1) The actual event demultiplexor.
2) The user interface with concepts like 'class socket', 'class file' etc.
These two can probably not be entirely designed separate from eachother,
because one has to be aware of limitations and benefits of one while
designing the other.
The observation that I make reading your page is that you have concentrated
on point 2) above. Correct me if I am wrong, but I suppose I am right
as you yourself say that the 'multiplexor' part is missing ;).
Also note that in the thread(s) I started I have not made an attempt
yet to start with a design related to point 2.
I can however compare your proposal with the Christopher Kohlhoff's asio
libraries' user interface (point 2) and I like your interface better.
We can summarize it with "a template policy based interface", correct? :).
If that includes the concept of using functors as 'callbacks' too that is.
However, I think we should delay discussions of THIS type of details
(related to point 2 above) a little longer. That does not mean I want to
try and ignore your design, not at all! I like it and if its up to me we
will use it exactly as you proposed...
Like I said, the two parts can probably not be entirely designed separate
from eachother - but before we can continue with designing the demultiplexor
class interface in the light of how it could work together with the rest
of your proposal we should first think about the internals of the demultiplexor
and approach the problem from the other side: not from the API side, but
from the system resources and efficiency side.
So far, my efforts have been aimed enormously at windows as you might
have noticed. The reason for that is that I lack full understanding of
what is possible with windows - what system-level API exists - and what is
the best API to use on windows; while I know everything about the UNIX
API: I am not neglecting UNIX, there simply is no need for me to talk
If I have to be of any help with this design then I will need help
from the windows guru's here to understand The Best Way To Implement
Event Demultiplexing On Windows, before I can start with thinking about
the design of a basic_demultiplexor class.
My questions might seem very one-sided (windows) and very overly detailed
(one aspect/detail of the windows API) but please bare with me, I am depending
on you, and others, to help me to understand this in the end! :)
-- Carlo Wood <carlo_at_[hidden]>