| Home | Libraries | People | FAQ | More

## Class packed_oarchive

boost::mpi::packed_oarchive — An archive that unpacks binary data from an MPI buffer.

## Synopsis

    // In header: <boost/mpi/packed_oarchive.hpp>

    class packed_oarchive {
    public:
      // construct/copy/destruct
      packed_oarchive(MPI_Comm const &, buffer_type &,
                      unsigned int = boost::archive::no_header);
      packed_oarchive(MPI_Comm const &, unsigned int = boost::archive::no_header);

      // public member functions
      template<typename T> void save_override(T const &, int, mpl::false_);
      template<typename T> void save_override(T const &, int, mpl::true_);
      template<typename T> void save_override(T const &, int);
      void save_override(const archive::class_id_optional_type &, int);
      void save_override(const archive::class_name_type &, int);
    };

## Description

The `packed_oarchive` class is an Archiver (as in the Boost.Serialization library) that unpacks binary data from a buffer received via MPI. It can operate on any Serializable data type and will use the `MPI_Unpack` function of the underlying MPI implementation to perform deserialization.

### `packed_oarchive` public construct/copy/destruct

1.     packed_oarchive(MPI_Comm const & comm, buffer_type & b,
                       unsigned int flags = boost::archive::no_header);

   Construct a `packed_oarchive` to receive data over the given MPI communicator and with an initial buffer.

   Parameters:

   `b` | A user-defined buffer that contains the binary representation of serialized objects.
   `comm` | The communicator over which this archive will be received.
   `flags` | Control the serialization of the data types. Refer to the Boost.Serialization documentation before changing the default flags.

2.     packed_oarchive(MPI_Comm const & comm,
                       unsigned int flags = boost::archive::no_header);

   Construct a `packed_oarchive` to receive data over the given MPI communicator.

   Parameters:

   `comm` | The communicator over which this archive will be received.
   `flags` | Control the serialization of the data types. Refer to the Boost.Serialization documentation before changing the default flags.

### `packed_oarchive` public member functions

1.     template<typename T> void save_override(T const & x, int version, mpl::false_);

2.     template<typename T> void save_override(T const & x, int, mpl::true_);

3.     template<typename T> void save_override(T const & x, int version);

4.     void save_override(const archive::class_id_optional_type &, int);

5.     void save_override(const archive::class_name_type & t, int);