From 7f8946eae1eae62c3140bed25bde9719c720bf35 Mon Sep 17 00:00:00 2001 From: randomdan Date: Sat, 16 Mar 2013 17:35:08 +0000 Subject: Folderise variables and another test --- project2/common/variables/localparam.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 project2/common/variables/localparam.cpp (limited to 'project2/common/variables/localparam.cpp') diff --git a/project2/common/variables/localparam.cpp b/project2/common/variables/localparam.cpp new file mode 100644 index 0000000..1b789a7 --- /dev/null +++ b/project2/common/variables/localparam.cpp @@ -0,0 +1,31 @@ +#include +#include "../variables.h" +#include "../scriptLoader.h" +#include "../scriptStorage.h" +#include "../iHaveParameters.h" + +/// Variable implementation to access call parameters +class VariableLocalParam : public VariableImplDyn { + public: + VariableLocalParam(ScriptNodePtr e) : + VariableImplDyn(e), + name(e->value("name").as()) + { + } + VariableType value() const + { + try { + return IHaveParameters::getScopedParameter(name); + } + catch (ParamNotFound) { + if (!defaultValue) { + throw; + } + return (*defaultValue)(); + } + } + private: + const Glib::ustring name; +}; +DECLARE_COMPONENT_LOADER("local", VariableLocalParam, VariableLoader); + -- cgit v1.2.3