|
Boost Users : |
Subject: Re: [Boost-users] asio guidance
From: Zachary Turner (divisortheory_at_[hidden])
Date: 2010-02-28 16:52:49
On Sun, Feb 28, 2010 at 11:48 AM, Paul Dugas <paul_at_[hidden]> wrote:
> On Sun, Feb 28, 2010 at 9:44 AM, Igor R <boost.lists_at_[hidden]> wrote:
> >> I'm new to asio but it looks like what I may need given that I have to
> >> support device connections via serial ports and sockets but I also need
> to retain the ability to read from files. I'm wondering if anyone could
> suggest an approach to support all three comm schemes with the same packet
> reception logic.
> >
> > You can take a look at windows::random_access_handle reference and
> example:
> >
> http://www.boost.org/doc/libs/1_42_0/doc/html/boost_asio/reference/windows__random_access_handle.html
> >
> http://www.boost.org/doc/libs/1_42_0/doc/html/boost_asio/example/windows/transmit_file.cpp
>
> Sorry, should have mentioned I'm not on Windows; Linux is the target.
> The posix::stream_descriptor looked promising until I read the "but
> not regular files" bit.
This is a serious limitation of asio, and has been for a long time. It's
possible there will be an equivalent of windows::random_access_handle for
posix sometime in the near future, but that's about all I can say right now.
You can "fake it" without too much complicated work by copying the interface
of windows_random_access_handle and filling out the routines with logic to
send requests to a thread pool (also managed in asio) and executing
synchronous i/o operations inside the thread pool and then invoking the
callbacks on the main thread.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net