本文整理汇总了C++中Packer::get_size方法的典型用法代码示例。如果您正苦于以下问题:C++ Packer::get_size方法的具体用法?C++ Packer::get_size怎么用?C++ Packer::get_size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Packer
的用法示例。
在下文中一共展示了Packer::get_size方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: send_multicast
void Process::send_multicast(
const std::vector<int> &targets,
Net *net,
int edge_id,
int tokens_count,
const Packer &packer,
Thread *thread)
{
thread->get_requests()->check();
char *buffer = packer.get_buffer();
size_t size = packer.get_size();
std::vector<int>::const_iterator i;
Tokens *data = (Tokens*) packer.get_buffer();
data->edge_id = edge_id;
data->tokens_count = tokens_count;
char *d = buffer;
for (i = targets.begin(); i != targets.end(); i++) {
int target = *i;
if(target < 0 || target >= process_count) {
fprintf(stderr, "Net sends %i token(s) to invalid process id %i (valid ids: [0 .. %i])\n",
tokens_count, target, process_count - 1);
exit(1);
}
CA_DLOG("SEND index=%i target=%i process=%i\n", place_index, target, get_process_id());
MPI_Request *request = thread->get_requests()->new_request(d);
d = NULL;
MPI_Isend(buffer, size, MPI_BYTE, target, CA_TAG_TOKENS, MPI_COMM_WORLD, request);
}
}