+ enum class Type { SEND = 0, RECEIVE, READY, DONE };
+
+ CommImpl& set_type(CommImpl::Type type);
+ CommImpl& set_size(double size);
+ CommImpl& set_src_buff(unsigned char* buff, size_t size);
+ CommImpl& set_dst_buff(unsigned char* buff, size_t* size);
+ CommImpl& set_rate(double rate);
+ double get_rate() { return rate_; }
+
+ void copy_data();
+
+ CommImpl* start();