1 /* Copyright (c) 2007-2017. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
8 #include <unordered_map>
15 template <> int Keyval::call_deleter<Comm>(Comm* obj, smpi_key_elem elem, int keyval, void * value, int* flag){
16 if(elem->delete_fn.comm_delete_fn!=MPI_NULL_DELETE_FN){
17 int ret = elem->delete_fn.comm_delete_fn(obj, keyval, value, flag);
24 template <> int Keyval::call_deleter<Win>(Win* obj, smpi_key_elem elem, int keyval, void * value, int* flag){
25 if(elem->delete_fn.win_delete_fn!=MPI_NULL_DELETE_FN){
26 int ret = elem->delete_fn.win_delete_fn(obj, keyval, value, flag);
33 template <> int Keyval::call_deleter<Datatype>(Datatype* obj, smpi_key_elem elem, int keyval, void * value, int* flag){
34 if(elem->delete_fn.type_delete_fn!=MPI_NULL_DELETE_FN){
35 int ret = elem->delete_fn.type_delete_fn(obj, keyval, value, flag);