X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8b3b8b94b252c69516b8ef4ba97596b05033d9ea..041733d27687138580274a397bb287da01c48b4c:/src/smpi/smpi_datatype.hpp?ds=sidebyside diff --git a/src/smpi/smpi_datatype.hpp b/src/smpi/smpi_datatype.hpp index 29cd8aee6c..51978b5c71 100644 --- a/src/smpi/smpi_datatype.hpp +++ b/src/smpi/smpi_datatype.hpp @@ -1,5 +1,4 @@ -/* Copyright (c) 2009-2010, 2012-2014. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2009-2017. The SimGrid Team. All rights reserved. */ /* 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. */ @@ -7,10 +6,8 @@ #ifndef SMPI_DATATYPE_HPP #define SMPI_DATATYPE_HPP -#include - -#include "private.h" - +#include "src/smpi/smpi_f2c.hpp" +#include "src/smpi/smpi_keyvals.hpp" #define DT_FLAG_DESTROYED 0x0001 /**< user destroyed but some other layers still have a reference */ #define DT_FLAG_COMMITED 0x0002 /**< ready to be used for a send/recv operation */ @@ -79,13 +76,12 @@ namespace simgrid{ namespace smpi{ class Datatype : public F2C, public Keyval{ - protected: + private: char* name_; size_t size_; MPI_Aint lb_; MPI_Aint ub_; int flags_; - xbt_dict_t attributes_; int refcount_; public: @@ -96,29 +92,29 @@ class Datatype : public F2C, public Keyval{ Datatype(char* name, int size,MPI_Aint lb, MPI_Aint ub, int flags); Datatype(Datatype *datatype, int* ret); virtual ~Datatype(); + + char* name(); + size_t size(); + MPI_Aint lb(); + MPI_Aint ub(); + int flags(); + int refcount(); + void ref(); static void unref(MPI_Datatype datatype); void commit(); bool is_valid(); - size_t size(); - int flags(); void addflag(int flag); - MPI_Aint lb(); - MPI_Aint ub(); int extent(MPI_Aint * lb, MPI_Aint * extent); MPI_Aint get_extent(); - char* name(); void get_name(char* name, int* length); void set_name(char* name); static int copy(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype); - virtual void serialize( void* noncontiguous, void *contiguous, + virtual void serialize( void* noncontiguous, void *contiguous, int count); - virtual void unserialize( void* contiguous, void *noncontiguous, + virtual void unserialize( void* contiguous, void *noncontiguous, int count, MPI_Op op); - int attr_delete(int keyval); - int attr_get(int keyval, void* attr_value, int* flag); - int attr_put(int keyval, void* attr_value); static int keyval_create(MPI_Type_copy_attr_function* copy_fn, MPI_Type_delete_attr_function* delete_fn, int* keyval, void* extra_state); static int keyval_free(int* keyval); int pack(void* inbuf, int incount, void* outbuf, int outcount, int* position, MPI_Comm comm);