| Home | Libraries | People | FAQ | More

## Class packed_oarchive

boost::mpi::packed_oarchive — An archive that packs binary data into an MPI buffer.

## Synopsis

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

    class packed_oarchive : public oprimitive {
    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);
      void save_override(archive::class_id_type &, int);
      void save_override(archive::version_type &, int);
    };

## Description

The `packed_iarchive` class is an Archiver (as in the Boost.Serialization library) that packs binary data into a buffer for transmission via MPI. It can operate on any Serializable data type and will use the `MPI_Pack` function of the underlying MPI implementation to perform serialization.

### `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`` for transmission over the given MPI communicator and with an initial buffer.

   Parameters: |
   `b` | A user-defined buffer that will be filled with the binary representation of serialized objects.
   `comm` | The communicator over which this archive will be sent.
   `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`` for transmission over the given MPI communicator.

   Parameters: |
   `comm` | The communicator over which this archive will be sent.
   `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);

6.     void save_override(archive::class_id_type & t, int version);

7.     void save_override(archive::version_type & t, int version);