On Mon, 18 Aug 2014, John Peterson wrote:

>> Point p(init.comm().rank());
>> std::vector<Point> input(1, p);
>> std::vector<Point> output;
>> init.comm().allgather_packed_range(???, input.begin(), input.end(), 
>> std::back_inserter(output));
>
> At the least one would probably need to implement Parallel::pack() and
> Parallel::packable_size() for Point?

That's the missing bit for adding new packable classes, yeah - and
then the context argument that your pack/unpack functions accept
should be the same type of context argument (???) that your
packed_range calls supplies.  If you've got a class that doesn't need
to dip into "third party data" for serialization then the context
argument isn't necessary.. but something would still have to exist to
let the compiler figure out how to match the calling syntax, even if
it was just void* in the pack/unpack specializations and "(void*)(0)"
(would NULL work?) in the call.
---
Roy

------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to