mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 12:20:52 +01:00
Follows #132753 Pull Request resolved: https://github.com/pytorch/pytorch/pull/132963 Approved by: https://github.com/Skylion007
42 lines
824 B
C++
42 lines
824 B
C++
#pragma once
|
|
|
|
#include <ATen/core/ivalue.h>
|
|
#include <torch/csrc/jit/mobile/function.h>
|
|
|
|
namespace torch::jit::mobile {
|
|
|
|
class Module;
|
|
|
|
struct TORCH_API Method {
|
|
Method(const Module* owner, Function* function);
|
|
|
|
void run(Stack& stack) const;
|
|
void run(Stack&& stack) const {
|
|
run(stack);
|
|
}
|
|
|
|
c10::IValue operator()(std::vector<c10::IValue> stack) const;
|
|
|
|
const std::string& name() const {
|
|
return function_->name();
|
|
}
|
|
|
|
int64_t get_debug_handle(size_t pc) const {
|
|
return function_->get_debug_handle(pc);
|
|
}
|
|
|
|
Function& function() const {
|
|
return *function_;
|
|
}
|
|
|
|
private:
|
|
// Methods are uniquely owned by a single module.
|
|
// This raw pointer allows referencing the module
|
|
const Module* owner_;
|
|
|
|
// Underlying unbound function
|
|
Function* function_;
|
|
};
|
|
|
|
} // namespace torch::jit::mobile
|