diff options
| author | Howard Stearns <howard.stearns@gmail.com> | 2022-06-13 14:03:04 -0700 |
|---|---|---|
| committer | Howard Stearns <howard.stearns@gmail.com> | 2022-06-13 14:03:04 -0700 |
| commit | 9d9c2037e10966bdf4b07ef3fed081c04a4ed30a (patch) | |
| tree | 2650993a565233f5995e6abe44f14d48d48619ac /indra/llcommon/commoncontrol.h | |
| parent | 91a9665e35a3bfeb5a2bc81586a23e70bb2c7596 (diff) | |
| parent | c9a48a1cdd23a592eb25454d5e2d6c316ec93445 (diff) | |
Merge branch 'DRTVWR-564' of bitbucket.org:lindenlab/viewer into SL-17485
Diffstat (limited to 'indra/llcommon/commoncontrol.h')
| -rw-r--r-- | indra/llcommon/commoncontrol.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/indra/llcommon/commoncontrol.h b/indra/llcommon/commoncontrol.h new file mode 100644 index 0000000000..07d4a45ac5 --- /dev/null +++ b/indra/llcommon/commoncontrol.h @@ -0,0 +1,75 @@ +/** + * @file commoncontrol.h + * @author Nat Goodspeed + * @date 2022-06-08 + * @brief Access LLViewerControl LLEventAPI, if process has one. + * + * $LicenseInfo:firstyear=2022&license=viewerlgpl$ + * Copyright (c) 2022, Linden Research, Inc. + * $/LicenseInfo$ + */ + +#if ! defined(LL_COMMONCONTROL_H) +#define LL_COMMONCONTROL_H + +#include <vector> +#include "llexception.h" +#include "llsd.h" + +namespace LL +{ + class CommonControl + { + public: + struct Error: public LLException + { + Error(const std::string& what): LLException(what) {} + }; + + /// Exception thrown if there's no LLViewerControl LLEventAPI + struct NoListener: public Error + { + NoListener(const std::string& what): Error(what) {} + }; + + struct ParamError: public Error + { + ParamError(const std::string& what): Error(what) {} + }; + + /// set control group.key to defined default value + static + LLSD set_default(const std::string& group, const std::string& key); + + /// set control group.key to specified value + static + LLSD set(const std::string& group, const std::string& key, const LLSD& value); + + /// toggle boolean control group.key + static + LLSD toggle(const std::string& group, const std::string& key); + + /// get the definition for control group.key, (! isDefined()) if bad + /// ["name"], ["type"], ["value"], ["comment"] + static + LLSD get_def(const std::string& group, const std::string& key); + + /// get the value of control group.key + static + LLSD get(const std::string& group, const std::string& key); + + /// get defined groups + static + std::vector<std::string> get_groups(); + + /// get definitions for all variables in group + static + LLSD get_vars(const std::string& group); + + private: + static + LLSD access(const LLSD& params); + }; +} // namespace LL + +#endif /* ! defined(LL_COMMONCONTROL_H) */ |
