From: David Abrahams (dave_at_[hidden])
Date: 2008-05-21 02:33:03
on Tue May 20 2008, "Adrovic, Ervin" <ervin.adrovic-AT-hp.com> wrote:
> I would like to copy binary files from host A to host B. That for I was thinking to use boost MPI and open file on one side read buffer and send it to other side.
> bool SendFile(std::ifstream* inputFile)
> bool ret = true;
> if (inputFile != NULL)
> CData data;
> while (inputFile->eof() == false)
> inputFile->read(data.GetDataBuffer(), data.GetDataBufferSize());
> std::streamsize nRead = inputFile->gcount ();
> GetWorld().send(1, MSG_CDATA, data);
> return ret;
> To complicate a litle bit I may use filters (ZIP, Encrypt, ...) for this operation.
> Any idea/sample hoe to implement that?
> Is it possibale to do steaming using MPI?
The only thing you need in order to ship bytes over Boost.MPI is a
Boost.Serialization-compatible interface to those bytes.
I would build a small serializable wrapper that, when serialized out to
an Archive, reads the bytes to be archived from the underlying
ifstream. Then you do the opposite procedure on the receiving end.
-- Dave Abrahams BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk