| 66 | } |
| 67 | |
| 68 | StatusOr<std::unique_ptr<GlobalData>> Client::TransferToServer( |
| 69 | const LiteralSlice& literal, const DeviceHandle* device_handle) { |
| 70 | TransferToServerRequest request; |
| 71 | *request.mutable_literal() = literal.ToProto(); |
| 72 | if (device_handle) { |
| 73 | *request.mutable_device_handle() = *device_handle; |
| 74 | } |
| 75 | TransferToServerResponse response; |
| 76 | |
| 77 | VLOG(1) << "making transfer to server request"; |
| 78 | VLOG(3) << "TransferToServerRequest: {" << request.DebugString() << "}"; |
| 79 | Status s = stub_->TransferToServer(&request, &response); |
| 80 | VLOG(1) << "done with request"; |
| 81 | |
| 82 | if (!s.ok()) { |
| 83 | return s; |
| 84 | } |
| 85 | VLOG(3) << "TransferToServerResponse: {" << response.DebugString() << "}"; |
| 86 | |
| 87 | if (!response.has_data()) { |
| 88 | return FailedPrecondition( |
| 89 | "server provided response without a data handle in " |
| 90 | "TransferToServer request"); |
| 91 | } |
| 92 | |
| 93 | return absl::make_unique<GlobalData>(stub_, response.data()); |
| 94 | } |
| 95 | |
| 96 | Status Client::TransferToInfeed(const LiteralSlice& literal, int64 replica_id, |
| 97 | const DeviceHandle* device_handle) { |