|
Boost Users : |
Subject: Re: [Boost-users] [serialization] how to serialize boost::function
From: Chard (boost_at_[hidden])
Date: 2009-09-15 16:03:53
"Igor R" <boost.lists_at_[hidden]> wrote in message
news:cfe0a3cf0909150846l4290d47yd03b8ea7f33e0b53_at_mail.gmail.com...
>
> Ok, thank you. So the way to go is to make "manual" function objects...
We have a system that serializes boost::function - they are used as factory
objects that are sent through sockets (via asio).
We only support serializing boost::function with functors, but the mechanism
works well. Fortunately, boost::function has the target<> method that can
be used to get access to the original type.
As touched upon by an earlier post, we have to look up the types from some
kind of registry that associates the boost::function (the signature) with
the type (the functor) that can be assigned into it. This means we have to
register each association, but this is similar to registering polymorphic
class types (i.e. archive.register_type<>).
It may be possible to generalize the mechanism, but it would probably
require a new export macro that can associate the types, e.g. a
BOOST_FUNCTION_EXPORT(signature, func_name, type, type_name) to go along
with BOOST_CLASS_EXPORT.
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