+
+// this struct is here to handle the problem of non-contignous data
+// for each such structure these function should be implemented (vector
+// index hvector hindex struct)
+typedef struct s_smpi_subtype{
+ void (*serialize)(const void * input, void *output, size_t count, void* subtype);
+ void (*unserialize)(const void * input, void *output, size_t count, void* subtype);
+ void (*subtype_free)(MPI_Datatype* type);
+} s_smpi_subtype_t;
+
+typedef struct s_smpi_mpi_datatype{
+ size_t size;
+ /* this let us know if a serialization is required*/
+ size_t has_subtype;
+ MPI_Aint lb;
+ MPI_Aint ub;
+ int flags;
+ /* this let us know how to serialize and unserialize*/
+ void *substruct;
+} s_smpi_mpi_datatype_t;
+
+//*****************************************************************************************
+