X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b8df87e176f27b25534f27d7e240defa32ca35bc..73ce0df461cf8867f8002555273f54f7a8fb2d2f:/src/smpi/mpi/smpi_datatype.cpp diff --git a/src/smpi/mpi/smpi_datatype.cpp b/src/smpi/mpi/smpi_datatype.cpp index 1f233baf18..8d7a45785b 100644 --- a/src/smpi/mpi/smpi_datatype.cpp +++ b/src/smpi/mpi/smpi_datatype.cpp @@ -123,7 +123,7 @@ Datatype::Datatype(char* name, int ident, int size, MPI_Aint lb, MPI_Aint ub, in #endif } -Datatype::Datatype(Datatype *datatype, int* ret) : name_(nullptr), lb_(datatype->lb_), ub_(datatype->ub_), flags_(datatype->flags_), refcount_(1) +Datatype::Datatype(Datatype *datatype, int* ret) : name_(nullptr), size_(datatype->size_), lb_(datatype->lb_), ub_(datatype->ub_), flags_(datatype->flags_), refcount_(1) { flags_ &= ~DT_FLAG_PREDEFINED; *ret = MPI_SUCCESS; @@ -177,7 +177,6 @@ Datatype::~Datatype(){ xbt_free(name_); } - void Datatype::ref(){ refcount_++; @@ -216,16 +215,6 @@ bool Datatype::is_basic() return (flags_ & DT_FLAG_BASIC); } -const char* Datatype::encode(MPI_Datatype dt) -{ - return dt->id.c_str(); -} - -MPI_Datatype Datatype::decode(std::string datatype_id) -{ - return id2type_lookup.find(datatype_id)->second; -} - bool Datatype::is_replayable() { return (simgrid::instr::trace_format == simgrid::instr::TraceFormat::Ti) && @@ -233,45 +222,21 @@ bool Datatype::is_replayable() (this == MPI_SHORT) || (this == MPI_LONG) || (this == MPI_FLOAT)); } -size_t Datatype::size(){ - return size_; -} - -int Datatype::flags(){ - return flags_; -} - -int Datatype::refcount(){ - return refcount_; +MPI_Datatype Datatype::decode(const std::string& datatype_id) +{ + return id2type_lookup.find(datatype_id)->second; } void Datatype::addflag(int flag){ flags_ &= flag; } -MPI_Aint Datatype::lb(){ - return lb_; -} - -MPI_Aint Datatype::ub(){ - return ub_; -} - -char* Datatype::name(){ - return name_; -} - - int Datatype::extent(MPI_Aint * lb, MPI_Aint * extent){ *lb = lb_; *extent = ub_ - lb_; return MPI_SUCCESS; } -MPI_Aint Datatype::get_extent(){ - return ub_ - lb_; -} - void Datatype::get_name(char* name, int* length){ *length = strlen(name_); strncpy(name, name_, *length+1); @@ -299,7 +264,6 @@ int Datatype::unpack(void* inbuf, int insize, int* position, void* outbuf, int o return MPI_SUCCESS; } - int Datatype::copy(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype){ @@ -336,11 +300,11 @@ int Datatype::copy(void *sendbuf, int sendcount, MPI_Datatype sendtype, } //Default serialization method : memcpy. -void Datatype::serialize( void* noncontiguous_buf, void *contiguous_buf, int count){ +void Datatype::serialize(void* noncontiguous_buf, void* contiguous_buf, int count) +{ char* contiguous_buf_char = static_cast(contiguous_buf); char* noncontiguous_buf_char = static_cast(noncontiguous_buf)+lb_; memcpy(contiguous_buf_char, noncontiguous_buf_char, count*size_); - } void Datatype::unserialize( void* contiguous_buf, void *noncontiguous_buf, int count, MPI_Op op){