| Home | Libraries | People | FAQ | More

## Class packed_iarchive

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

## Synopsis

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

    class packed_iarchive : public iprimitive, public shared_ptr_helper {
    public:
      // construct/copy/destruct
      packed_iarchive(MPI_Comm const &, buffer_type &,
                      unsigned int = boost::archive::no_header, int = 0);
      packed_iarchive(MPI_Comm const &, std::size_t = 0,
                      unsigned int = boost::archive::no_header);

      // public member functions
      template<typename T> void load_override(T &, int, mpl::false_);
      template<typename T> void load_override(T &, int, mpl::true_);
      template<typename T> void load_override(T &, int);
      void load_override(archive::class_id_optional_type &, int);
      void load_override(archive::class_id_type &, int);
      void load_override(archive::class_id_reference_type &, int);
      void load_override(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_iarchive` public construct/copy/destruct

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

   Construct a ``packed_iarchive`` 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_iarchive(MPI_Comm const & comm, std::size_t s = 0,
                       unsigned int flags = boost::archive::no_header);

   Construct a ``packed_iarchive`` 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_iarchive` public member functions

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

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

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

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

5.     void load_override(archive::class_id_type & t, int version);

6.     void load_override(archive::class_id_reference_type & t, int version);

7.     void load_override(archive::class_name_type & t, int);