Alexandria 2.31.0
SDC-CH common library for the Euclid project
|
#include <PythonCall.h>
Classes | |
struct | to_python_visitor |
Public Member Functions | |
PythonCall (boost::python::object callable) | |
std::string | repr () const override |
void | visit (Visitor &visitor) const override |
T | eval (const Context &context, const Arguments &arguments) const override |
![]() | |
Node () | |
virtual | ~Node ()=default |
template<typename... Args> | |
T | eval (const Context &context, Args... args) const |
template<typename... Args> | |
T | eval (Args... args) const |
![]() | |
NodeBase (const std::type_index &type_index) | |
virtual | ~NodeBase ()=default |
const std::type_index & | type () const |
Private Attributes | |
boost::python::object | m_callable |
Additional Inherited Members | |
![]() | |
T | eval_helper (const Context &context, Arguments &arguments) const |
template<typename A0 , typename... AN> | |
T | eval_helper (const Context &context, Arguments &arguments, A0 v0, AN... an) const |
A PythonCall node hides a call to a wrapped Python function when the tree can not be evaluated
Definition at line 36 of file PythonCall.h.
|
inlineexplicit |
Definition at line 38 of file PythonCall.h.
|
inlineoverridevirtual |
Evaluate the computing tree
In principle one could avoid to pass any values here, and assign directly the final value to the placeholders that were used to create this tree. However, this would cause the placeholders not to be thread-safe, and a tree would have to be either cloned, either protected by a mutex. Passing the values as an argument allows making the full tree immutable once built, and fully thread safe.
Implements Pyston::Node< T >.
Definition at line 49 of file PythonCall.h.
References Pyston::PythonCall< T >::m_callable, and Pyston::sharedContext.
|
inlineoverridevirtual |
Implements Pyston::NodeBase.
Definition at line 40 of file PythonCall.h.
|
inlineoverridevirtual |
Entry point for the visitor
Implements Pyston::NodeBase.
Definition at line 44 of file PythonCall.h.
References Pyston::Visitor::enter(), and Pyston::Visitor::exit().
|
private |
Definition at line 75 of file PythonCall.h.
Referenced by Pyston::PythonCall< T >::eval().