Alexandria 2.31.4
SDC-CH common library for the Euclid project
Loading...
Searching...
No Matches
Pyston::Placeholder< AttributeSet >::AttrGetterFactory Struct Reference
Inheritance diagram for Pyston::Placeholder< AttributeSet >::AttrGetterFactory:
Collaboration diagram for Pyston::Placeholder< AttributeSet >::AttrGetterFactory:

Public Member Functions

 AttrGetterFactory (unsigned pos, const std::string &name)
 
template<typename Content>
boost::python::object operator() (Content) const
 
 Placeholder (const unsigned pos)
 
std::string repr () const final
 
AttributeSet eval (const Context &, const Arguments &args) const final
 
void visit (Visitor &visitor) const final
 
- Public Member Functions inherited from Pyston::Node< T >
 Node ()
 
virtual ~Node ()=default
 
template<typename... Args>
eval (const Context &context, Args... args) const
 
template<typename... Args>
eval (Args... args) const
 
- Public Member Functions inherited from Pyston::NodeBase
 NodeBase (const std::type_index &type_index)
 
virtual ~NodeBase ()=default
 
const std::type_indextype () const
 

Public Attributes

unsigned m_pos
 
std::string m_name
 

Private Attributes

unsigned m_pos
 

Additional Inherited Members

- Protected Member Functions inherited from Pyston::Node< T >
eval_helper (const Context &context, Arguments &arguments) const
 
template<typename A0, typename... AN>
eval_helper (const Context &context, Arguments &arguments, A0 v0, AN... an) const
 

Detailed Description

Definition at line 117 of file AttributeSet.h.

Constructor & Destructor Documentation

◆ AttrGetterFactory()

Pyston::Placeholder< AttributeSet >::AttrGetterFactory::AttrGetterFactory ( unsigned pos,
const std::string & name )
inline

Definition at line 121 of file AttributeSet.h.

References m_name, and m_pos.

Member Function Documentation

◆ eval()

AttributeSet Pyston::Placeholder< AttributeSet >::eval ( const Context & ,
const Arguments & args ) const
inlinefinalvirtual

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.

Returns
Result of the evaluation
Exceptions
std::out_of_rangeThere is no value assigned to this placeholder
boost::bad_getThe type of the value assigned to the placeholder does not correspond to the expected type T

Implements Pyston::Node< T >.

Definition at line 56 of file Placeholder.h.

◆ operator()()

template<typename Content>
boost::python::object Pyston::Placeholder< AttributeSet >::AttrGetterFactory::operator() ( Content ) const
inline

Definition at line 124 of file AttributeSet.h.

References m_name, m_pos, and std::make_shared().

Here is the call graph for this function:

◆ Placeholder()

Pyston::Placeholder< AttributeSet >::Placeholder ( const unsigned pos)
inlineexplicit

Constructor

Parameters
posPosition of the Placeholder. It will be used to retrieve later the value assigned to it.

Definition at line 39 of file Placeholder.h.

◆ repr()

std::string Pyston::Placeholder< AttributeSet >::repr ( ) const
inlinefinalvirtual

Returns
A human readable representation of the node
Note
It should not include the representation of the children, if any. That's what visitors are for.

Implements Pyston::NodeBase.

Definition at line 44 of file Placeholder.h.

◆ visit()

void Pyston::Placeholder< AttributeSet >::visit ( Visitor & visitor) const
inlinefinalvirtual

Entry point for the visitor

Implements Pyston::NodeBase.

Definition at line 63 of file Placeholder.h.

Member Data Documentation

◆ m_name

std::string Pyston::Placeholder< AttributeSet >::AttrGetterFactory::m_name

Definition at line 119 of file AttributeSet.h.

Referenced by AttrGetterFactory(), and operator()().

◆ m_pos [1/2]

unsigned Pyston::Placeholder< AttributeSet >::AttrGetterFactory::m_pos

Definition at line 118 of file AttributeSet.h.

Referenced by AttrGetterFactory(), and operator()().

◆ m_pos [2/2]

unsigned Pyston::Placeholder< AttributeSet >::m_pos
private

Definition at line 69 of file Placeholder.h.


The documentation for this struct was generated from the following file: