Boost logo

Boost :

From: Boris (boris_at_[hidden])
Date: 2005-03-05 19:21:05


Boris wrote:
> Cory Nelson wrote:
>> Something .NET doesn't have (but Win32 and Linux do), is I/O
>> completion ports. For a high-performance server app, they beat
>> pretty much everything. It would be great to see this get into a
>> boost library, and trivial to implement them using select/poll in
>> platforms that don't support true completion ports.
>
> If we accept two models - synchronous and asynchronous - the second
> one could be implemented with I/O completion ports if available. That's
> the .NET approach, and Microsoft's .NET implementation is based on
> I/O completion ports.
>
> The socket class in .NET has two kinds of read/write-methods:
> - For synchronous access: Send() and Receive() (it depends on a
> property called Blocking if they block or don't)
> - For asynchronous access: BeginSend() and BeginReceive() (a delegate
> aka function pointer has to be passed to them which is then called
> when data is available)
>
> Advantage of this interface is that there are really two kinds of I/O
> models. It depends on the implementation if asynchronous access is
> based on multiplexing, aio, I/O completion ports etc.

I just added a UML diagram for the net library in .NET Framework 1.1:
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?DotNetSockets
I hope these diagrams help to grasp the concepts faster.

Boris

> [...]


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk