Loading...
Searching...
No Matches
by::thread Class Reference

Thread execution context for byeol runtime. More...

#include <thread.hpp>

Inheritance diagram for by::thread:
by::node by::frameInteractable

Public Member Functions

 thread (const errReport &new1)
 Constructs a thread object with a custom error report instance.
 
const framesgetFrames () const BY_CONST_FUNC(_getFrames()) const frame *getNowFrame() const BY_CONST_FUNC(_getNowFrame()) static thread &get()
 
errReportgetEx ()
 
const errReportgetEx () const BY_CONST_FUNC(getEx()) virtual void setEx(const errReport &new 1)
 Sets the error report instance for this thread.
 
void setEx (const errReport *it) BY_SIDE_FUNC(setEx)
 
scopesubs () override
 
priorType prioritize (const args &a) const override
 
str eval (const args &a) override
 
void rel () override
 
const nmapgetPods () const
 
void dump () const override
 
virtual nbool isInteractable () const
 Checks if the thread is currently in an interactable state.
 
- Public Member Functions inherited from by::node
me & operator[] (const std::string &name)
 
const me & operator[] (const std::string &name) const BY_CONST_FUNC(operator[](name))
 
me & operator[] (const std::string *it)
 
const me & operator[] (const std::string *it) const BY_CONST_FUNC(operator[](it))
 
me & operator[] (const nchar *name)
 
const me & operator[] (const nchar *name) const BY_CONST_FUNC(operator[](name))
 
nbool in (const node &elem) const
 
nbool in (const node *elem) const
 
const scopesubs () const BY_CONST_FUNC(subs()) virtual tstr< nbicontainer > mySubs() const
 Returns a tstr to a container of immediate sub-nodes (excluding inherited or chained ones).
 
const nodepromote (const node &it) const
 
const nodepromote (const node *it) const BY_SIDE_FUNC(promote)
 
template<typename T >
T * sub (std::function< nbool(const std::string &, const T &)> l)
 
template<typename T >
const T * sub (std::function< nbool(const std::string &, const T &)> l) const BY_CONST_FUNC(sub< T >(l)) template< typename T
 
template<typename T = me>
const T * sub () const BY_CONST_FUNC(sub< T >()) template< typename T
 
template<typename T = me>
T * sub (const std::string *it) BY_SIDE_FUNC(sub)
 
template<typename T = me>
const T * sub (const std::string &name) const BY_CONST_FUNC(sub< T >(name)) template< typename T
 
template<typename T = me>
T * sub (const std::string *name, const args &a) BY_SIDE_FUNC(name
 
template<typename T = me>
const T * sub (const std::string &name, const args &a) const BY_CONST_FUNC(sub< T >(name
 
template<typename T = me>
const T a const T * sub (const std::string *name, const args &a) const BY_CONST_FUNC(sub< T >(name
 
template<typename T >
const T a const T a tnarr< T, strTactic > subAll (std::function< nbool(const std::string &, const T &)> l) const
 
template<typename T = me>
tnarr< T, strTactic > subAll () const
 
template<typename T = me>
tpriorities< T > subAll (const std::string &name) const
 
template<typename T = me>
tpriorities< T > subAll (const std::string *it) const BY_SIDE_FUNC(subAll< T >) template< typename T
 
template<typename T = me>
tpriorities< T > subAll (const std::string &name, const args &a) const
 
template<typename T = me>
tpriorities< T > subAll (const std::string *name, const args *a) const BY_SIDE_FUNC(name
 
tpriorities< T > subAll< T > tpriorities ())
 
template<typename T = me>
tpriorities< T > subAll (const std::string *name, const args &a) const BY_SIDE_FUNC(name
 
tpriorities< T > subAll< T > tpriorities ())
 
bool canEval (const args &a) const
 
priorType prioritize (const args *it) const BY_SIDE_FUNC(it
 
str eval (const args *it) BY_SIDE_FUNC(eval)
 
str eval (const std::string &name, const args &a)
 
str eval (const std::string &name, const args *a) BY_SIDE_FUNC(a
 
str eval (name, a)
 
str str ())
 
str eval (const std::string *name, const args &a) BY_SIDE_FUNC(name
 
str eval str ())
 
str eval (const std::string *name, const args *a) BY_SIDE_FUNC(name &&a
 
str eval str ())
 
str eval (const std::string &name)
 
str eval (const std::string *it) BY_SIDE_FUNC(eval)
 
str eval ()
 
template<typename T >
nbool is () const
 
nbool is (const typeProvidable &to) const
 
nbool is (const typeProvidable *it) const BY_SIDE_FUNC(is)
 
nbool is (const type &to) const
 
nbool is (const type *it) const BY_SIDE_FUNC(is)
 
template<typename T >
tstr< T > as () const
 
str as (const typeProvidable &to) const
 
str as (const typeProvidable *it) const BY_SIDE_FUNC(as)
 
str as (const type &to) const
 
str as (const type *it) const BY_SIDE_FUNC(as)
 
template<typename T >
nbool isImpli () const
 
virtual nbool isImpli (const type &to) const
 
nbool isImpli (const typeProvidable &to) const
 
nbool isImpli (const typeProvidable *it) const BY_SIDE_FUNC(isImpli)
 
template<typename T >
tstr< T > asImpli () const
 
virtual str asImpli (const type &to) const
 
str asImpli (const typeProvidable &to) const
 
str asImpli (const typeProvidable *it) const BY_SIDE_FUNC(asImpli)
 
virtual const srcgetSrc () const
 
virtual nbool isComplete () const
 
virtual str infer () const
 
virtual void accept (const visitInfo &i, visitor &v)
 
void inFrame (const bicontainable *args) const override
 
void outFrame () const override
 
virtual const modifiergetModifier () const
 
virtual void inFrame (const bicontainable *args) const=0
 
void inFrame () const
 
virtual void outFrame () const=0
 
- Public Member Functions inherited from by::frameInteractable
void inFrame () const
 

Static Public Member Functions

static void set (thread *new1)
 
static void set (thread &new1)
 
static const instancergetInstancer ()
 

Protected Member Functions

virtual frames_getFrames ()
 
frame_getNowFrame ()
 
- Protected Member Functions inherited from by::node
virtual str _onEvalSub (node &sub, const args &a)
 Protected virtual method for evaluating a sub-node.
 
virtual void _setSrc (const src &s)
 
void _setSrc (const src *it) BY_SIDE_FUNC(_setSrc)
 

Friends

class coreInternal
 
struct ::exprTest
 

Additional Inherited Members

- Public Attributes inherited from by::node
T sub name
 
T sub nullptr
 
tpriorities< T > subAll< T > name
 
priorType prioritize it
 
priorType prioritize NO_MATCH
 
str eval name
 

Detailed Description

Thread execution context for byeol runtime.

Represents a single program execution flow. Currently only supports single threading. thread has frames and errReport, allowing it to construct frame when executing a program and collect err that occurs during execution.

Builtin

The builtin pod consists of types/functions provided by default in the byeol language. They are always accessible without separate manifest declaration. It's similar to the standard pod, but this is a distinctly separate pod written in byeol code. However, the builtin pod is entirely in the form of exposing C++ native classes using tbridger. The types included here are only the most basic symbols like int, str, arr, err, print().

Singleton Property

thread provides static thread& get(). Through this, scope or expr can access the currently active thread object. When not using the default thread and creating a thread instance directly to run a program, it's necessary to register the thread object and replace it with the original thread instance when the program ends. To make this easier, use threadUse.

if(main.canEval(a)) {
threadUse thr(getReport());
// doSomething() with new thread...
}
// When exiting, it's replaced with the original thread instance.
// The program execution state before entering the block is restored.
Thread usage wrapper.
Definition threadUse.hpp:11
Definition tnarr.hpp:9

As shown in the above example, threadUse automatically creates a thread object internally upon creation.

Constructor & Destructor Documentation

◆ thread()

by::thread::thread ( const errReport & new1)

Constructs a thread object with a custom error report instance.

Parameters
new1The errReport instance to be used by this thread for error collection.

Member Function Documentation

◆ eval()

str by::thread::eval ( const args & a)
overridevirtual

Implements by::node.

◆ getEx() [1/2]

errReport & by::thread::getEx ( )
Returns
exception errReport instance. what this contains are all runtime err and exceptions.

◆ getEx() [2/2]

const errReport & by::thread::getEx ( ) const &
new

Sets the error report instance for this thread.

Parameters
new1The errReport instance to be used by this thread.

◆ getPods()

const nmap & by::thread::getPods ( ) const
Returns
pod instances loaded by internal system. you can cast these to 'pod' types.

◆ isInteractable()

virtual nbool by::thread::isInteractable ( ) const
virtual

Checks if the thread is currently in an interactable state.

Returns
true if the thread is interactable, false otherwise.

An interactable thread typically means it's ready to process user input or continue execution.

◆ prioritize()

priorType by::thread::prioritize ( const args & a) const
overridevirtual

Implements by::node.

◆ rel()

void by::thread::rel ( )
overridevirtual

Release all held resources and prepare for termination.

Remarks
Some classes won't be able to reinitialize after rel() is called.

Reimplemented from by::node.

◆ subs()

scope & by::thread::subs ( )
overridevirtual

Implements by::node.


The documentation for this class was generated from the following file:
to Top