10# if !defined (HPP_ALIB_LANG_RESOURCES_CONFIG_RESOURCE_POOL)
14# if !defined (HPP_ALIB_STRINGS_LOCALSTRING)
19#if !defined (_GLIBCXX_CSTDARG) && !defined (_CSTDARG_)
26: allocator( 8 * 1024 )
31 Priorities::DefaultValues,
61 va_start(args, category);
89 auto replacementsIt=
cache.
Find( key, hashCode );
92 return replacementsIt.Mapped();
94 return replacementsIt.Mapped().first;
100#if !ALIB_DEBUG_RESOURCES
ALIB_API Priorities Load(Variable &variable)
ALIB_API Priorities Store(Variable &variable, const String &externalizedValue=nullptr)
ALIB_API void Add(const String &value)
ALIB_API Variable & Declare(const VariableDecl &declaration, const Box &replacements)
const String & GetString(int idx=0)
Priorities Priority() const
void InsertPlugin(TPlugin *plugin, TPriorities priority, lang::Responsibility responsibility=lang::Responsibility::KeepWithSender)
TPluginType * GetPluginTypeSafe(TPriorities priority)
ALIB_API ~ConfigResourcePool() override
virtual ALIB_API void BootstrapBulk(const nchar *category,...) override
detail::CachingResourceMap cache
ALIB_API ConfigResourcePool()
bool BootstrapAddOrReplace(const NString &category, const NString &name, const String &data) override
config::Configuration Config
NALIB_API const String & Get(const NString &category, const NString &name, bool dbgAssert) override
config::Variable variable
Iterator InsertUnique(const T &value)
Iterator Find(const KeyType &key)
ALIB_FORCE_INLINE T * Emplace(TArgs &&... args)
constexpr bool IsNull() const
#define ALIB_ASSERT_ERROR(cond,...)
#define ALIB_DEBUG_RESOURCES
@ KeepWithSender
Keeps responsibility, e.g. when passing an object.
static ALIB_FORCE_INLINE void Destruct(T *object)
NLocalString< 64 > NString64
Type alias name for TLocalString<nchar,64> .
characters::character character
Type alias in namespace alib.
strings::TString< character > String
Type alias in namespace alib.
characters::nchar nchar
Type alias in namespace alib.
String NULL_STRING
A global instance of a nulled string of standard character size.