| 60 | } |
| 61 | |
| 62 | void BroadcastString(vtkMultiProcessController* controller, std::string& str, int rank) |
| 63 | { |
| 64 | unsigned long len = static_cast<unsigned long>(str.size()) + 1; |
| 65 | controller->Broadcast(&len, 1, 0); |
| 66 | if (len) |
| 67 | { |
| 68 | if (rank) |
| 69 | { |
| 70 | std::vector<char> tmp; |
| 71 | tmp.resize(len); |
| 72 | controller->Broadcast(tmp.data(), len, 0); |
| 73 | str = tmp.data(); |
| 74 | } |
| 75 | else |
| 76 | { |
| 77 | const char* start = str.c_str(); |
| 78 | std::vector<char> tmp(start, start + len); |
| 79 | controller->Broadcast(tmp.data(), len, 0); |
| 80 | } |
| 81 | } |
| 82 | } |
| 83 | |
| 84 | void BroadcastStringVector( |
| 85 | vtkMultiProcessController* controller, std::vector<std::string>& svec, int rank) |