| #pragma once | |
| #include <pybind11/pybind11.h> | |
| #include "c10/util/Registry.h" | |
| namespace caffe2 { | |
| namespace python { | |
| namespace py = pybind11; | |
| struct PybindAddition { | |
| PybindAddition() {} | |
| PybindAddition(py::module&) {} | |
| virtual ~PybindAddition(){}; | |
| }; | |
| C10_DECLARE_REGISTRY(PybindAdditionRegistry, PybindAddition, py::module&); | |
| #define REGISTER_PYBIND_ADDITION(funcname) \ | |
| namespace { \ | |
| struct funcname##Impl : public PybindAddition { \ | |
| funcname##Impl(py::module& m) { \ | |
| funcname(m); \ | |
| } \ | |
| }; \ | |
| C10_REGISTER_CLASS(PybindAdditionRegistry, funcname##Impl, funcname##Impl); \ | |
| } | |
| } // namespace python | |
| } // namespace caffe2 |