openMSX
Classes | Public Member Functions | Friends | List of all members
openmsx::TclObject Class Reference

#include <TclObject.hh>

Classes

struct  MakeDictTag
 
struct  MakeListTag
 

Public Member Functions

 TclObject ()
 
 TclObject (Tcl_Obj *o)
 
template<typename T >
 TclObject (T t)
 
 TclObject (const TclObject &o)
 
 TclObject (TclObject &&o) noexcept
 
template<typename... Args>
 TclObject (MakeListTag, Args &&... args)
 
template<typename... Args>
 TclObject (MakeDictTag, Args &&... args)
 
 ~TclObject ()
 
TclObjectoperator= (const TclObject &other)
 
TclObjectoperator= (TclObject &other)
 
TclObjectoperator= (TclObject &&other) noexcept
 
template<typename T >
TclObjectoperator= (T &&t)
 
Tcl_Obj * getTclObject ()
 
Tcl_Obj * getTclObjectNonConst () const
 
template<typename T >
void addListElement (const T &t)
 
template<typename ITER >
void addListElements (ITER first, ITER last)
 
template<typename Range >
void addListElements (Range &&range)
 
template<typename... Args>
void addListElement (Args &&... args)
 
template<typename Key , typename Value >
void addDictKeyValue (const Key &key, const Value &value)
 
template<typename... Args>
void addDictKeyValues (Args &&... args)
 
zstring_view getString () const
 
int getInt (Interpreter &interp) const
 
bool getBoolean (Interpreter &interp) const
 
double getDouble (Interpreter &interp) const
 
std::span< const uint8_t > getBinary () const
 
unsigned getListLength (Interpreter &interp) const
 
TclObject getListIndex (Interpreter &interp, unsigned index) const
 
TclObject getDictValue (Interpreter &interp, const TclObject &key) const
 
template<typename Key >
TclObject getDictValue (Interpreter &interp, const Key &key) const
 
std::optional< int > getOptionalInt () const
 
unsigned size () const
 
bool empty () const
 
iterator begin () const
 
iterator end () const
 
bool evalBool (Interpreter &interp) const
 
TclObject executeCommand (Interpreter &interp, bool compile=false)
 Interpret this TclObject as a command and execute it. More...
 

Friends

bool operator== (const TclObject &x, const TclObject &y)
 
bool operator== (const TclObject &x, std::string_view y)
 

Detailed Description

Definition at line 23 of file TclObject.hh.

Constructor & Destructor Documentation

◆ TclObject() [1/7]

openmsx::TclObject::TclObject ( )
inline

Definition at line 70 of file TclObject.hh.

Referenced by executeCommand(), getDictValue(), and getListIndex().

◆ TclObject() [2/7]

openmsx::TclObject::TclObject ( Tcl_Obj *  o)
inlineexplicit

Definition at line 71 of file TclObject.hh.

◆ TclObject() [3/7]

template<typename T >
openmsx::TclObject::TclObject ( t)
inlineexplicit

Definition at line 72 of file TclObject.hh.

References t.

◆ TclObject() [4/7]

openmsx::TclObject::TclObject ( const TclObject o)
inline

Definition at line 73 of file TclObject.hh.

◆ TclObject() [5/7]

openmsx::TclObject::TclObject ( TclObject &&  o)
inlinenoexcept

Definition at line 74 of file TclObject.hh.

◆ TclObject() [6/7]

template<typename... Args>
openmsx::TclObject::TclObject ( MakeListTag  ,
Args &&...  args 
)
inline

Definition at line 78 of file TclObject.hh.

◆ TclObject() [7/7]

template<typename... Args>
openmsx::TclObject::TclObject ( MakeDictTag  ,
Args &&...  args 
)
inline

Definition at line 84 of file TclObject.hh.

References addDictKeyValues().

◆ ~TclObject()

openmsx::TclObject::~TclObject ( )
inline

Definition at line 89 of file TclObject.hh.

Member Function Documentation

◆ addDictKeyValue()

template<typename Key , typename Value >
void openmsx::TclObject::addDictKeyValue ( const Key &  key,
const Value &  value 
)
inline

◆ addDictKeyValues()

template<typename... Args>
void openmsx::TclObject::addDictKeyValues ( Args &&...  args)
inline

◆ addListElement() [1/2]

template<typename... Args>
void openmsx::TclObject::addListElement ( Args &&...  args)
inline

Definition at line 135 of file TclObject.hh.

◆ addListElement() [2/2]

template<typename T >
void openmsx::TclObject::addListElement ( const T &  t)
inline

◆ addListElements() [1/2]

template<typename ITER >
void openmsx::TclObject::addListElements ( ITER  first,
ITER  last 
)
inline

◆ addListElements() [2/2]

template<typename Range >
void openmsx::TclObject::addListElements ( Range &&  range)
inline

Definition at line 132 of file TclObject.hh.

References addListElements(), begin(), and end().

◆ begin()

iterator openmsx::TclObject::begin ( ) const
inline

Definition at line 167 of file TclObject.hh.

Referenced by TEST_CASE().

◆ empty()

bool openmsx::TclObject::empty ( ) const
inline

Definition at line 166 of file TclObject.hh.

References size().

Referenced by TEST_CASE().

◆ end()

iterator openmsx::TclObject::end ( ) const
inline

Definition at line 168 of file TclObject.hh.

References size().

Referenced by TEST_CASE().

◆ evalBool()

bool openmsx::TclObject::evalBool ( Interpreter interp) const

Definition at line 171 of file TclObject.cc.

◆ executeCommand()

TclObject openmsx::TclObject::executeCommand ( Interpreter interp,
bool  compile = false 
)

Interpret this TclObject as a command and execute it.

Parameters
interpThe Tcl interpreter
compileShould the command be compiled to bytecode? The bytecode is stored inside the TclObject can speed up future invocations of the same command. Only set this flag when the command will be executed more than once.

Definition at line 181 of file TclObject.cc.

References TclObject().

Referenced by openmsx::BreakPointBase::checkAndExecute(), openmsx::AfterCmd::execute(), openmsx::CassettePlayerCLI::parseFileType(), openmsx::LaserdiscPlayerCLI::parseFileType(), openmsx::ReplayCLI::parseFileType(), openmsx::SaveStateCLI::parseFileType(), openmsx::CDImageCLI::parseOption(), and TEST_CASE().

◆ getBinary()

std::span< const uint8_t > openmsx::TclObject::getBinary ( ) const

Definition at line 118 of file TclObject.cc.

References gl::length().

Referenced by TEST_CASE().

◆ getBoolean()

bool openmsx::TclObject::getBoolean ( Interpreter interp) const

◆ getDictValue() [1/2]

template<typename Key >
TclObject openmsx::TclObject::getDictValue ( Interpreter interp,
const Key &  key 
) const
inline

Definition at line 158 of file TclObject.hh.

References getDictValue(), and TclObject().

◆ getDictValue() [2/2]

TclObject openmsx::TclObject::getDictValue ( Interpreter interp,
const TclObject key 
) const

Definition at line 161 of file TclObject.cc.

References TclObject().

Referenced by getDictValue(), and TEST_CASE().

◆ getDouble()

double openmsx::TclObject::getDouble ( Interpreter interp) const

◆ getInt()

int openmsx::TclObject::getInt ( Interpreter interp) const

◆ getListIndex()

TclObject openmsx::TclObject::getListIndex ( Interpreter interp,
unsigned  index 
) const

Definition at line 143 of file TclObject.cc.

References TclObject().

Referenced by openmsx::InputEventFactory::createInputEvent(), and TEST_CASE().

◆ getListLength()

unsigned openmsx::TclObject::getListLength ( Interpreter interp) const

◆ getOptionalInt()

std::optional< int > openmsx::TclObject::getOptionalInt ( ) const

Definition at line 82 of file TclObject.cc.

◆ getString()

zstring_view openmsx::TclObject::getString ( ) const

◆ getTclObject()

Tcl_Obj* openmsx::TclObject::getTclObject ( )
inline

Definition at line 123 of file TclObject.hh.

◆ getTclObjectNonConst()

Tcl_Obj* openmsx::TclObject::getTclObjectNonConst ( ) const
inline

Definition at line 124 of file TclObject.hh.

Referenced by openmsx::Interpreter::setVariable().

◆ operator=() [1/4]

TclObject& openmsx::TclObject::operator= ( const TclObject other)
inline

Definition at line 92 of file TclObject.hh.

◆ operator=() [2/4]

template<typename T >
TclObject& openmsx::TclObject::operator= ( T &&  t)
inline

Definition at line 111 of file TclObject.hh.

References t.

◆ operator=() [3/4]

TclObject& openmsx::TclObject::operator= ( TclObject &&  other)
inlinenoexcept

Definition at line 106 of file TclObject.hh.

◆ operator=() [4/4]

TclObject& openmsx::TclObject::operator= ( TclObject other)
inline

Definition at line 99 of file TclObject.hh.

◆ size()

unsigned openmsx::TclObject::size ( ) const
inline

Definition at line 165 of file TclObject.hh.

Referenced by empty(), end(), and TEST_CASE().

Friends And Related Function Documentation

◆ operator== [1/2]

bool operator== ( const TclObject x,
const TclObject y 
)
friend

Definition at line 182 of file TclObject.hh.

◆ operator== [2/2]

bool operator== ( const TclObject x,
std::string_view  y 
)
friend

Definition at line 185 of file TclObject.hh.


The documentation for this class was generated from the following files: