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) noexcept
 
template<typename T >
TclObjectoperator= (T t)
 
Tcl_Obj * getTclObject ()
 
Tcl_Obj * getTclObjectNonConst () const
 
template<typename T >
void addListElement (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)
 
string_view getString () const
 
int getInt (Interpreter &interp) const
 
bool getBoolean (Interpreter &interp) const
 
double getDouble (Interpreter &interp) const
 
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
 
unsigned size () const
 
bool empty () const
 
auto begin () const
 
auto 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, string_view y)
 
bool operator== (string_view x, const TclObject &y)
 
bool operator!= (const TclObject &x, const TclObject &y)
 
bool operator!= (const TclObject &x, string_view y)
 
bool operator!= (string_view x, const TclObject &y)
 

Detailed Description

Definition at line 21 of file TclObject.hh.

Constructor & Destructor Documentation

◆ TclObject() [1/7]

openmsx::TclObject::TclObject ( )
inline

◆ TclObject() [2/7]

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

Definition at line 72 of file TclObject.hh.

◆ TclObject() [3/7]

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

Definition at line 73 of file TclObject.hh.

◆ TclObject() [4/7]

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

Definition at line 74 of file TclObject.hh.

◆ TclObject() [5/7]

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

Definition at line 75 of file TclObject.hh.

◆ TclObject() [6/7]

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

Definition at line 79 of file TclObject.hh.

◆ TclObject() [7/7]

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

Definition at line 85 of file TclObject.hh.

References addDictKeyValues().

◆ ~TclObject()

openmsx::TclObject::~TclObject ( )
inline

Definition at line 90 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 T >
void openmsx::TclObject::addListElement ( t)
inline

◆ addListElement() [2/2]

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

Definition at line 129 of file TclObject.hh.

◆ 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 126 of file TclObject.hh.

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

◆ begin()

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

Definition at line 160 of file TclObject.hh.

Referenced by openmsx::GlobalCommandController::tabCompletion(), and TEST_CASE().

◆ empty()

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

Definition at line 159 of file TclObject.hh.

References size().

Referenced by openmsx::CheckedRam::clear(), and TEST_CASE().

◆ end()

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

Definition at line 161 of file TclObject.hh.

References evalBool(), executeCommand(), and size().

Referenced by openmsx::GlobalCommandController::tabCompletion(), and TEST_CASE().

◆ evalBool()

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

Definition at line 162 of file TclObject.cc.

Referenced by openmsx::BreakPointBase::BreakPointBase(), and end().

◆ 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 172 of file TclObject.cc.

References TclObject().

Referenced by openmsx::BreakPointBase::checkAndExecute(), end(), openmsx::TclCallback::execute(), openmsx::AfterCmd::execute(), openmsx::DiskImageCLI::fileTypeHelp(), openmsx::LaserdiscPlayerCLI::parseFileType(), openmsx::ReplayCLI::parseFileType(), openmsx::SaveStateCLI::parseFileType(), openmsx::CassettePlayerCLI::parseFileType(), openmsx::CDImageCLI::parseOption(), openmsx::HotKey::saveBindings(), openmsx::GlobalCommandController::tabCompletion(), and TEST_CASE().

◆ getBinary()

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

Definition at line 109 of file TclObject.cc.

References gl::length().

Referenced by addDictKeyValues(), and TEST_CASE().

◆ getBoolean()

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

◆ getDictValue() [1/2]

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

Definition at line 152 of file TclObject.cc.

References TclObject().

Referenced by addDictKeyValues(), getDictValue(), TEST_CASE(), and openmsx::Joystick::write().

◆ getDictValue() [2/2]

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

Definition at line 152 of file TclObject.hh.

References getDictValue(), and TclObject().

◆ 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

◆ getListLength()

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

◆ getString()

string_view openmsx::TclObject::getString ( ) const

◆ getTclObject()

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

Definition at line 117 of file TclObject.hh.

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

◆ getTclObjectNonConst()

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

◆ operator=() [1/3]

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

Definition at line 93 of file TclObject.hh.

◆ operator=() [2/3]

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

Definition at line 100 of file TclObject.hh.

References swap().

◆ operator=() [3/3]

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

Definition at line 105 of file TclObject.hh.

◆ size()

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

Friends And Related Function Documentation

◆ operator!= [1/3]

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

Definition at line 185 of file TclObject.hh.

◆ operator!= [2/3]

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

Definition at line 186 of file TclObject.hh.

◆ operator!= [3/3]

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

Definition at line 187 of file TclObject.hh.

◆ operator== [1/3]

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

Definition at line 175 of file TclObject.hh.

◆ operator== [2/3]

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

Definition at line 178 of file TclObject.hh.

◆ operator== [3/3]

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

Definition at line 181 of file TclObject.hh.


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