mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-21 05:34:18 +08:00
Follows #125102 Pull Request resolved: https://github.com/pytorch/pytorch/pull/130109 Approved by: https://github.com/ezyang
29 lines
998 B
C++
29 lines
998 B
C++
#include <torch/csrc/distributed/rpc/python_resp.h>
|
|
|
|
namespace torch::distributed::rpc {
|
|
|
|
PythonResp::PythonResp(SerializedPyObj&& serializedPyObj)
|
|
: serializedPyObj_(std::move(serializedPyObj)) {}
|
|
|
|
c10::intrusive_ptr<Message> PythonResp::toMessageImpl() && {
|
|
auto payload = std::vector<char>(
|
|
serializedPyObj_.payload_.begin(), serializedPyObj_.payload_.end());
|
|
return c10::make_intrusive<Message>(
|
|
std::move(payload),
|
|
std::move(serializedPyObj_.tensors_),
|
|
MessageType::PYTHON_RET);
|
|
}
|
|
|
|
std::unique_ptr<PythonResp> PythonResp::fromMessage(const Message& message) {
|
|
std::string payload(message.payload().begin(), message.payload().end());
|
|
std::vector<Tensor> tensors = message.tensors();
|
|
SerializedPyObj serializedPyObj(std::move(payload), std::move(tensors));
|
|
return std::make_unique<PythonResp>(std::move(serializedPyObj));
|
|
}
|
|
|
|
const SerializedPyObj& PythonResp::serializedPyObj() const {
|
|
return serializedPyObj_;
|
|
}
|
|
|
|
} // namespace torch::distributed::rpc
|