Boost logo

Boost Users :

Subject: Re: [Boost-users] mpi/serialization: broadcasting derivedclass through base pointer
From: Matthias Troyer (troyer_at_[hidden])
Date: 2012-02-03 06:07:50


On Jan 29, 2012, at 2:26 PM, MM wrote:

>
>
>> From: boost-users-bounces_at_[hidden]
> [mailto:boost-users-bounces_at_[hidden]] On Behalf Of Matthias Troyer
>> Sent: 29 January 2012 12:32
>> To: boost-users_at_[hidden]
>> Subject: Re: [Boost-users] mpi/serialization: broadcasting derivedclass
> through base pointer
>>
>>
>> this is not an infinite loop since it calls operator>> with a different
> type - can you please post more if you think there is an infinite >loop. I
> am still confused as to what the reason for your problems is.
>>
>> Also, did you test whether what you want to do works if you use binary
> archives, to store and load the object?
>>
>> Matthias
>
> This was happening at a stage where I was not consistent in the sending
> broadcast with the receiving broadcast.
>
> Just to double check, I assume that it should be possible to:
>
> 1. send with mpi::broadcast( , const base_pointer, ) and receive with
> mpi::broadcast( , const base_pointer, ), granted the derived classes have
> been exported with BOOST_CLASS_EXPORT_KEY in both translation units.
>
> 2. send with mpi::broadcast( , const derived_pointer, ) and receive with
> mpi::broadcast( , const base_pointer, ), granted the derived classes have
> been exported with BOOST_CLASS_EXPORT_KEY in both translation units.
>
> I am doing 1. and 2.. In both cases the receiver throws "class unregistered"
> even though the BOOST_CLASS_EXPORT_KEY expands correctly in both sender and
> receiver(slave) translation units.

Yes, the idea is that these should work. To see where the problem is I had asked you:

>> … did you test whether what you want to do works if you use binary archives, to store and load the object?

Matthias


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