#pragma once #include #include namespace torch::distributed::rpc { // RPC call representing calling a Python function over RPC. class TORCH_API PythonCall final : public RpcCommandBase { public: PythonCall(SerializedPyObj&& serializedPyObj, bool isAsyncExecution); c10::intrusive_ptr toMessageImpl() && override; static std::unique_ptr fromMessage(const Message& message); const SerializedPyObj& serializedPyObj() const; inline bool isAsyncExecution() const { return isAsyncExecution_; } private: SerializedPyObj serializedPyObj_; // NOLINTNEXTLINE(cppcoreguidelines-avoid-const-or-ref-data-members) const bool isAsyncExecution_; }; } // namespace torch::distributed::rpc