38#include <ARM/TLM/arm_chi.h>
42#include "pybind11/functional.h"
46namespace py = pybind11;
48using namespace ARM::CHI;
55tlm_chi_generator_pybind(pybind11::module_ &m_tlm_chi)
57 auto tlm_chi_gen = m_tlm_chi.def_submodule(
"tlm_chi_gen");
59 using Action = tlm::chi::TlmGenerator::Transaction::Action;
60 using Expectation = tlm::chi::TlmGenerator::Transaction::Expectation;
61 using Assertion = tlm::chi::TlmGenerator::Transaction::Assertion;
62 using Callback = Action::Callback;
63 py::class_<tlm::chi::TlmGenerator::Transaction>(tlm_chi_gen,
"Transaction")
64 .def(py::init<Payload*, Phase&>())
66 [] (tlm::chi::TlmGenerator::Transaction &self,
70 self.addCallback(std::make_unique<Expectation>(
name, cb));
73 [] (tlm::chi::TlmGenerator::Transaction &self,
76 self.addCallback(std::make_unique<Expectation>(
77 cb.attr(
"__name__").cast<std::string>(),
78 cb.cast<Callback>()));
81 [] (tlm::chi::TlmGenerator::Transaction &self,
85 self.addCallback(std::make_unique<Assertion>(
name, cb));
88 [] (tlm::chi::TlmGenerator::Transaction &self,
91 self.addCallback(std::make_unique<Action>(cb,
false));
94 [] (tlm::chi::TlmGenerator::Transaction &self,
97 self.addCallback(std::make_unique<Action>(cb,
true));
100 .def_property(
"phase",
106EmbeddedPyBind embed_(
"tlm_chi_gen", &tlm_chi_generator_pybind,
"tlm_chi");
ARM::CHI::Phase & phase()
Copyright (c) 2024 Arm Limited All rights reserved.
const std::string & name()