From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2005-08-31 01:03:07


On 8/18/05, Christopher Kohlhoff <chris_at_[hidden]> wrote:

[snip]

> I'd appreciate input on:

[snip]

>
> - Any other things that should be on the list.
>

win_iocp_operation is a base class that takes a pointer to a function
and when called(when the IO operation is completed) it executes its
pointer. The pointer is normally a static function to a derived class
that calls the apropriate handler.
There's a comment above win_iocp_operation that is this:

// Base class for all IOCP operations. A function pointer is used instead of
// virtual functions to avoid the associated overhead.

But I dont quite follow the virtual function overhead in this case. I
think that asio is reinventing the wheel and with the same overhead.
The only way to have less overhead would be to make win_iocp_operation
calls the apropriate handler directly, but I dont see that as very
possible. The derived function must do some interpretation of the
arguments before calling the handler. I think the best solution is to
make win_iocp_operation be an abstract class with a virtual function
and have the derived functions overwrite the method.

I know it is a very implementation detail that dont even add much. But
it helps a little to understand asio code and writing more code for
it.

>
> Cheers,
> Chris
>

-- 
   Felipe Magno de Almeida
Developer from synergy and Computer Science student from State
University of Campinas(UNICAMP).
Unicamp: http://www.ic.unicamp.br
Synergy: http://www.synergy.com.br
"There is no dark side of the moon really. Matter of fact it's all dark."