mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Follows #125102 Pull Request resolved: https://github.com/pytorch/pytorch/pull/130109 Approved by: https://github.com/ezyang
24 lines
678 B
C++
24 lines
678 B
C++
#pragma once
|
|
|
|
#include <torch/csrc/distributed/rpc/message.h>
|
|
#include <torch/csrc/distributed/rpc/types.h>
|
|
|
|
namespace torch::distributed::rpc {
|
|
|
|
// Base class for all RPC request and responses.
|
|
class RpcCommandBase {
|
|
public:
|
|
// Need to override this to serialize the RPC. This should destructively
|
|
// create a message for the RPC (Hence the &&).
|
|
c10::intrusive_ptr<Message> toMessage() && {
|
|
JitRRefPickleGuard jitPickleGuard;
|
|
return std::move(*this).toMessageImpl();
|
|
}
|
|
virtual c10::intrusive_ptr<Message> toMessageImpl() && = 0;
|
|
virtual ~RpcCommandBase() = 0;
|
|
};
|
|
|
|
inline RpcCommandBase::~RpcCommandBase() = default;
|
|
|
|
} // namespace torch::distributed::rpc
|