openMSX
|
#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 () | |
TclObject & | operator= (const TclObject &other) |
TclObject & | operator= (TclObject &other) |
TclObject & | operator= (TclObject &&other) noexcept |
template<typename T > | |
TclObject & | operator= (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 |
float | getFloat (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 | getListIndexUnchecked (unsigned index) const |
void | removeListIndex (Interpreter &interp, unsigned index) |
void | setDictValue (Interpreter &interp, const TclObject &key, const TclObject &value) |
TclObject | getDictValue (Interpreter &interp, const TclObject &key) const |
template<typename Key > | |
TclObject | getDictValue (Interpreter &interp, const Key &key) const |
std::optional< TclObject > | getOptionalDictValue (const TclObject &key) const |
std::optional< int > | getOptionalInt () const |
std::optional< bool > | getOptionalBool () const |
std::optional< double > | getOptionalDouble () const |
std::optional< float > | getOptionalFloat () const |
unsigned | size () const |
bool | empty () const |
iterator | begin () const |
iterator | end () const |
bool | evalBool (Interpreter &interp) const |
TclObject | eval (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) |
Definition at line 24 of file TclObject.hh.
|
inline |
Definition at line 70 of file TclObject.hh.
Referenced by eval(), executeCommand(), getDictValue(), getListIndex(), getListIndexUnchecked(), and getOptionalDictValue().
|
inlineexplicit |
Definition at line 71 of file TclObject.hh.
|
inlineexplicit |
Definition at line 72 of file TclObject.hh.
References t.
|
inline |
Definition at line 73 of file TclObject.hh.
|
inlinenoexcept |
Definition at line 74 of file TclObject.hh.
|
inline |
Definition at line 78 of file TclObject.hh.
|
inline |
Definition at line 84 of file TclObject.hh.
References addDictKeyValues().
|
inline |
Definition at line 89 of file TclObject.hh.
|
inline |
Definition at line 141 of file TclObject.hh.
References addDictKeyValues().
Referenced by openmsx::MachineExtensionInfo::execute(), openmsx::ConfigInfo::execute(), openmsx::MSXDevice::getDeviceInfo(), openmsx::MSXRom::getExtraDeviceInfo(), openmsx::RealDrive::getMediaInfo(), openmsx::IDECDROM::getMediaInfo(), and openmsx::SCSILS120::getMediaInfo().
|
inline |
Definition at line 144 of file TclObject.hh.
References addDictKeyValues().
Referenced by addDictKeyValue(), addDictKeyValues(), openmsx::RomInfoTopic::execute(), openmsx::SoftwareInfoTopic::execute(), openmsx::VDP::getExtraDeviceInfo(), openmsx::MSXRom::getInfo(), openmsx::Rom::getInfo(), openmsx::CassettePlayer::getMediaInfo(), openmsx::RealDrive::getMediaInfo(), openmsx::HD::getMediaInfo(), openmsx::LaserdiscPlayer::getMediaInfo(), and TclObject().
|
inline |
Definition at line 135 of file TclObject.hh.
|
inline |
Definition at line 127 of file TclObject.hh.
References addListElement(), and t.
Referenced by openmsx::FloatSetting::additionalInfo(), openmsx::IntegerSetting::additionalInfo(), openmsx::VideoSourceSetting::additionalInfo(), openmsx::EnumSettingBase::additionalInfoBase(), addListElement(), openmsx::CPUCore< CPU_POLICY >::disasmCommand(), openmsx::DiskCommand::execute(), openmsx::HDCommand::execute(), openmsx::CDXCommand::execute(), openmsx::LSXCommand::execute(), openmsx::MSXJoystick::getDefaultConfig(), openmsx::MSXDevice::getNameList(), openmsx::MSXMultiIODevice::getNameList(), openmsx::MSXMultiMemDevice::getNameList(), openmsx::OSDWidget::getProperty(), openmsx::OSDImageBasedWidget::getProperty(), openmsx::BaseSetting::info(), and TEST_CASE().
|
inline |
Definition at line 128 of file TclObject.hh.
Referenced by openmsx::VideoSourceSetting::additionalInfo(), openmsx::EnumSettingBase::additionalInfoBase(), addListElements(), openmsx::RomInfoTopic::execute(), openmsx::MachineExtensionInfo::execute(), openmsx::MachineMediaInfo::execute(), openmsx::DeviceInfo::execute(), openmsx::ConfigInfo::execute(), openmsx::ListExtCmd::execute(), openmsx::ListMachinesCommand::execute(), openmsx::RealDrive::getMediaInfo(), and TEST_CASE().
|
inline |
Definition at line 132 of file TclObject.hh.
References addListElements(), begin(), and end().
|
inline |
Definition at line 175 of file TclObject.hh.
Referenced by TEST_CASE().
|
inline |
Definition at line 174 of file TclObject.hh.
References size().
Referenced by openmsx::ImGuiMedia::showMenu(), and TEST_CASE().
|
inline |
TclObject openmsx::TclObject::eval | ( | Interpreter & | interp | ) | const |
Definition at line 239 of file TclObject.cc.
References TclObject().
bool openmsx::TclObject::evalBool | ( | Interpreter & | interp | ) | const |
Definition at line 229 of file TclObject.cc.
TclObject openmsx::TclObject::executeCommand | ( | Interpreter & | interp, |
bool | compile = false |
||
) |
Interpret this TclObject as a command and execute it.
interp | The Tcl interpreter |
compile | Should 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 249 of file TclObject.cc.
References TclObject().
Referenced by openmsx::BreakPointBase::checkAndExecute(), openmsx::AfterCmd::execute(), openmsx::ImGuiManager::execute(), openmsx::CassettePlayerCLI::parseFileType(), openmsx::LaserdiscPlayerCLI::parseFileType(), openmsx::ReplayCLI::parseFileType(), openmsx::SaveStateCLI::parseFileType(), openmsx::CDImageCLI::parseOption(), and TEST_CASE().
std::span< const uint8_t > openmsx::TclObject::getBinary | ( | ) | const |
bool openmsx::TclObject::getBoolean | ( | Interpreter & | interp | ) | const |
Definition at line 89 of file TclObject.cc.
Referenced by openmsx::BooleanSetting::BooleanSetting(), openmsx::BooleanSetting::getBoolean(), openmsx::detail::GetArg< bool >::operator()(), openmsx::OSDWidget::setProperty(), and TEST_CASE().
|
inline |
Definition at line 162 of file TclObject.hh.
References getDictValue(), and TclObject().
TclObject openmsx::TclObject::getDictValue | ( | Interpreter & | interp, |
const TclObject & | key | ||
) | const |
Definition at line 210 of file TclObject.cc.
References TclObject().
Referenced by getDictValue(), and TEST_CASE().
double openmsx::TclObject::getDouble | ( | Interpreter & | interp | ) | const |
Definition at line 123 of file TclObject.cc.
Referenced by openmsx::FloatSetting::FloatSetting(), openmsx::FloatSetting::getDouble(), getFloat(), openmsx::detail::GetArg< double >::operator()(), and TEST_CASE().
float openmsx::TclObject::getFloat | ( | Interpreter & | interp | ) | const |
Definition at line 108 of file TclObject.cc.
References getDouble().
Referenced by openmsx::FloatSetting::getFloat(), openmsx::OSDWidget::setProperty(), openmsx::OSDImageBasedWidget::setProperty(), openmsx::OSDRectangle::setProperty(), and openmsx::OSDText::setProperty().
int openmsx::TclObject::getInt | ( | Interpreter & | interp | ) | const |
Definition at line 70 of file TclObject.cc.
Referenced by openmsx::IntegerSetting::getInt(), openmsx::IntegerSetting::IntegerSetting(), openmsx::detail::GetArg< int >::operator()(), openmsx::OSDRectangle::setProperty(), openmsx::OSDText::setProperty(), and TEST_CASE().
TclObject openmsx::TclObject::getListIndex | ( | Interpreter & | interp, |
unsigned | index | ||
) | const |
Definition at line 174 of file TclObject.cc.
References TclObject().
Referenced by openmsx::InputEventFactory::createInputEvent(), openmsx::FilePool::getDirectories(), and TEST_CASE().
TclObject openmsx::TclObject::getListIndexUnchecked | ( | unsigned | index | ) | const |
Definition at line 183 of file TclObject.cc.
References TclObject().
Referenced by openmsx::ImGuiWatchExpr::loadLine().
unsigned openmsx::TclObject::getListLength | ( | Interpreter & | interp | ) | const |
Definition at line 156 of file TclObject.cc.
Referenced by openmsx::InputEventFactory::createInputEvent(), openmsx::DiskCommand::execute(), openmsx::FilePool::getDirectories(), and TEST_CASE().
std::optional< bool > openmsx::TclObject::getOptionalBool | ( | ) | const |
Definition at line 99 of file TclObject.cc.
Definition at line 220 of file TclObject.cc.
References TclObject().
std::optional< double > openmsx::TclObject::getOptionalDouble | ( | ) | const |
Definition at line 133 of file TclObject.cc.
Referenced by getOptionalFloat().
std::optional< float > openmsx::TclObject::getOptionalFloat | ( | ) | const |
Definition at line 115 of file TclObject.cc.
References getOptionalDouble().
std::optional< int > openmsx::TclObject::getOptionalInt | ( | ) | const |
Definition at line 80 of file TclObject.cc.
zstring_view openmsx::TclObject::getString | ( | ) | const |
Definition at line 142 of file TclObject.cc.
References gl::length().
Referenced by openmsx::ComboBox(), openmsx::InputEventFactory::createInputEvent(), openmsx::EnumSetting< T >::EnumSetting(), openmsx::DiskCommand::execute(), openmsx::BaseSetting::getBaseName(), openmsx::BreakPointBase::getCommand(), openmsx::BreakPointBase::getCondition(), openmsx::FilePool::getDirectories(), openmsx::BaseSetting::getFullName(), openmsx::OSDWidget::getName(), openmsx::MSXMultiIODevice::getName(), openmsx::MSXMultiMemDevice::getName(), openmsx::VideoSourceSetting::getSource(), openmsx::EnumSetting< T >::getString(), openmsx::FilenameSetting::getString(), openmsx::StringSetting::getString(), openmsx::InputText(), openmsx::KeyCodeSetting::KeyCodeSetting(), openmsx::ImGuiWatchExpr::loadLine(), openmsx::Setting::notifyPropertyChange(), openmsx::XXTclHasher::operator()(), openmsx::detail::GetArg< std::string >::operator()(), openmsx::detail::GetArg< std::string_view >::operator()(), openmsx::ImGuiConsole::paint(), openmsx::CommandLineParser::parse(), openmsx::Interpreter::registerSetting(), openmsx::OSDRectangle::setProperty(), openmsx::OSDText::setProperty(), openmsx::ImGuiMedia::showMenu(), TEST_CASE(), and openmsx::VideoSourceSetting::VideoSourceSetting().
|
inline |
Definition at line 123 of file TclObject.hh.
|
inline |
Definition at line 124 of file TclObject.hh.
Referenced by openmsx::Interpreter::setVariable().
Definition at line 92 of file TclObject.hh.
|
inline |
Definition at line 111 of file TclObject.hh.
References t.
Definition at line 106 of file TclObject.hh.
References std::swap().
Definition at line 99 of file TclObject.hh.
void openmsx::TclObject::removeListIndex | ( | Interpreter & | interp, |
unsigned | index | ||
) |
Definition at line 192 of file TclObject.cc.
void openmsx::TclObject::setDictValue | ( | Interpreter & | interp, |
const TclObject & | key, | ||
const TclObject & | value | ||
) |
Definition at line 201 of file TclObject.cc.
|
inline |
Definition at line 173 of file TclObject.hh.
Referenced by empty(), end(), openmsx::ImGuiWatchExpr::loadLine(), and TEST_CASE().
Definition at line 191 of file TclObject.hh.
|
friend |
Definition at line 194 of file TclObject.hh.