/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
class Datatype_contents {
public:
int combiner_;
std::vector<int> integers_;
std::vector<MPI_Aint> addresses_;
std::vector<MPI_Datatype> datatypes_;
class Datatype_contents {
public:
int combiner_;
std::vector<int> integers_;
std::vector<MPI_Aint> addresses_;
std::vector<MPI_Datatype> datatypes_;
- Datatype_contents(int combiner,
- int number_of_integers, const int* integers,
- int number_of_addresses, const MPI_Aint* addresses,
- int number_of_datatypes, const MPI_Datatype* datatypes);
+ Datatype_contents(int combiner, int number_of_integers, const int* integers, int number_of_addresses,
+ const MPI_Aint* addresses, int number_of_datatypes, const MPI_Datatype* datatypes);
+ Datatype_contents(const Datatype_contents&) = delete;
+ Datatype_contents& operator=(const Datatype_contents&) = delete;
size_t size() const { return size_; }
MPI_Aint lb() const { return lb_; }
MPI_Aint ub() const { return ub_; }
size_t size() const { return size_; }
MPI_Aint lb() const { return lb_; }
MPI_Aint ub() const { return ub_; }
bool is_basic() const;
static const char* encode(const Datatype* dt) { return dt->id.c_str(); }
static MPI_Datatype decode(const std::string& datatype_id);
bool is_basic() const;
static const char* encode(const Datatype* dt) { return dt->id.c_str(); }
static MPI_Datatype decode(const std::string& datatype_id);
void addflag(int flag);
int extent(MPI_Aint* lb, MPI_Aint* extent) const;
MPI_Aint get_extent() const { return ub_ - lb_; };
void addflag(int flag);
int extent(MPI_Aint* lb, MPI_Aint* extent) const;
MPI_Aint get_extent() const { return ub_ - lb_; };
virtual int clone(MPI_Datatype* type);
virtual void serialize(const void* noncontiguous, void* contiguous, int count);
virtual void unserialize(const void* contiguous, void* noncontiguous, int count, MPI_Op op);
virtual int clone(MPI_Datatype* type);
virtual void serialize(const void* noncontiguous, void* contiguous, int count);
virtual void unserialize(const void* contiguous, void* noncontiguous, int count, MPI_Op op);
int pack(const void* inbuf, int incount, void* outbuf, int outcount, int* position, const Comm* comm);
int unpack(const void* inbuf, int insize, int* position, void* outbuf, int outcount, const Comm* comm);
int get_contents(int max_integers, int max_addresses, int max_datatypes, int* array_of_integers,
int pack(const void* inbuf, int incount, void* outbuf, int outcount, int* position, const Comm* comm);
int unpack(const void* inbuf, int insize, int* position, void* outbuf, int outcount, const Comm* comm);
int get_contents(int max_integers, int max_addresses, int max_datatypes, int* array_of_integers,