Boost logo

Boost :

From: Andrew Schweitzer (a.schweitzer.grps_at_[hidden])
Date: 2005-12-27 15:32:40


> Andrew Schweitzer wrote:
>>5) demuxer_service creates a platform-implementation demuxer_service
>>(right?)
>
Rene Rivera wrote:
>
> Not as far as I know. This is one of the points that some people have
> contention with. The real relation between demuxer_service and the
> implementation is closer to a PIMPL idiom, but without the pointer. In
> other words it's equivalent to:
>
> demuxer_service *is-a*
> detail::win_iocp_demuxer_service
[snip]

I think I'm confused. As far as I can tell, there's no inheritance
relationship between demuxer_service and win_iocp_demuxer_service, but
as you said, it's a PIMPL relation, or perhaps an RIMPL relation since
it's a reference not a pointer. Is PIMPL considered is-a or has-a?

I think the library design or naming might be a bit confused on this
point (or quite possibly it's me).
As far as I can tell two things are true:
   1) the demuxer ends up with two actual services in its list after it
      is constructed:
       a) demuxer_service
       b) win_iocp_demuxer_service (or the selected
          platform-implemenation of demuxer_service)
   2) the demuxer also has a PIMPL relation with demuxer_service,
      and demuxer_service has a PIMPL relation with
      win_iocp_demuxer_service

Are you reading the code differently? I might have gotten lost.


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