
Aaron, this is more 'point 14' and we were still discussing point 2 :p, but ok. 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 about it. 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@alinoe.com>