pytorch/torch/csrc/distributed/rpc/script_resp.cpp
PyTorch MergeBot ab82456c16 Revert "[1/N] Change C-style casts to static_cast or reinterpret_cast (#165750)"
This reverts commit e1e8491b31.

Reverted https://github.com/pytorch/pytorch/pull/165750 on behalf of https://github.com/pytorch-auto-revert due to Reverted automatically by pytorch's autorevert, to avoid this behaviour add the tag autorevert: disable ([comment](https://github.com/pytorch/pytorch/pull/165750#issuecomment-3422413890))
2025-10-20 14:51:58 +00:00

34 lines
1.1 KiB
C++

#include <torch/csrc/distributed/rpc/script_resp.h>
#include <torch/csrc/distributed/rpc/rpc_agent.h>
#include <torch/csrc/jit/serialization/pickle.h>
#include <torch/csrc/jit/serialization/unpickler.h>
namespace torch::distributed::rpc {
ScriptResp::ScriptResp(at::IValue&& value) : value_(std::move(value)) {}
const at::IValue& ScriptResp::value() {
return value_;
}
c10::intrusive_ptr<Message> ScriptResp::toMessageImpl() && {
std::vector<torch::Tensor> tensor_table;
auto payload = jit::pickle(value_, &tensor_table);
return c10::make_intrusive<Message>(
std::move(payload), std::move(tensor_table), MessageType::SCRIPT_RET);
}
std::unique_ptr<ScriptResp> ScriptResp::fromMessage(const Message& message) {
auto payload = static_cast<const char*>(message.payload().data());
auto payload_size = message.payload().size();
auto value = jit::unpickle(
payload,
payload_size,
*RpcAgent::getCurrentRpcAgent()->getTypeResolver(),
message.tensors());
return std::make_unique<ScriptResp>(std::move(value));
}
} // namespace torch::distributed::rpc