std::function<bool(void*, void*, activity::CommImpl*)> match_fun_;
std::function<void(activity::CommImpl*, void*, size_t)> copy_data_fun_; // used to copy data if not default one
std::function<bool(void*, void*, activity::CommImpl*)> match_fun_;
std::function<void(activity::CommImpl*, void*, size_t)> copy_data_fun_; // used to copy data if not default one