76 "Doubly defined resource \"{}\" in category \"{}\".", category, name )
161 #if ALIB_CHARACTERS_WIDE
165 return Get( category, nName
ALIB_DBG(, dbgAssert ) );
170 #if ALIB_DEBUG_RESOURCES
198 std::vector<std::tuple<NString, NString, String, integer>>
DbgGetList();
284 template<
typename TRequires= T>
305 template<
typename TRequires= T>
309 template<
typename TRequires= T>
332 template<
typename TRequires= T>
336 #if ALIB_CHARACTERS_WIDE
337 template<
typename TRequires= T>
509 #if ALIB_CHARACTERS_WIDE
571template<
typename TEnum>
597 auto** lastP = records.getPointerToLast();
598 while( (input= pool.
Get( category, nameNr.
Reset( name).
_(nr)
ALIB_DBG(,
false))).IsNotNull()
606 element->record.Parse();
612 lastP= &element->next;
619 for(
int i= 0 ; i < 35 ; ++i )
622 if( pool.
Get( category, nameNr.
Reset( name).
_( nr)
ALIB_DBG(,
false)).IsNotNull() )
625 "Detected a \"gap\" in numbering of enum records for type <{}>: "
626 "From index {} to {}.\n Resource: {}/{}",
627 &
typeid(TEnum), nr - i - 1, nr - 1, category, name )
648template<
typename TEnum>
653 "No specialization for ResourcedTraits<TEnum> given. Method not applicable." );
658 innerDelim, outerDelim );
virtual bool BootstrapAddOrReplace(const NString &category, const NString &name, const String &data)=0
virtual ALIB_DLL std::vector< std::pair< NString, integer > > DbgGetCategories()
void Bootstrap(const NString &category, const NString &name, const String &data)
const String & Get(const NString &category, const String &name, bool dbgAssert)
virtual ~ResourcePool()=default
Virtual destructor.
virtual const String & Get(const NString &category, const NString &name, bool dbgAssert)=0
virtual void BootstrapBulk(const nchar *category,...)=0
virtual ALIB_DLL std::vector< std::tuple< NString, NString, String, integer > > DbgGetList()
static T & GetSingleton()
TAString & _(const TAppendable &src)
constexpr bool IsNotNull() const
#define ALIB_WARNINGS_RESTORE
#define ALIB_ERROR(domain,...)
#define ALIB_WARNINGS_IGNORE_DOCS
#define ALIB_WARNINGS_ALLOW_NULL_POINTER_PASSING
#define ALIB_ASSERT_ERROR(cond, domain,...)
void Bootstrap(camp::Camp &camp, const NString &name, character innerDelim=',', character outerDelim=',')
void setEnumRecord(const std::type_info &rtti, integer elementValue, const void *record)
ALIB_DLL TMonoAllocator< lang::HeapAllocator > GLOBAL_ALLOCATOR
NLocalString< 128 > NString128
Type alias name for TLocalString<nchar,128>.
constexpr NString NULL_NSTRING
A nulled string of the narrow character type.
NLocalString< 64 > NString64
Type alias name for TLocalString<nchar,64>.
constexpr const String EMPTY_STRING
An empty string of the default character type.
lang::integer integer
Type alias in namespace alib.
strings::TString< nchar > NString
Type alias in namespace alib.
resources::ResourcePool ResourcePool
Type alias in namespace alib.
characters::nchar nchar
Type alias in namespace alib.
resources::ResourceInfo ResourceInfo
Type alias in namespace alib.
strings::TString< character > String
Type alias in namespace alib.
NLocalString< 256 > NString256
Type alias name for TLocalString<nchar,256>.
resources::ResourcedType< T > ResourcedType
Type alias in namespace alib.
characters::character character
Type alias in namespace alib.
static ALIB_DLL void Get(String &result, bool isLastField=false)
static ALIB_DLL void Initialize(const String &input, character innerDelim, character outerDelim, const NString &resourceCategory, const NString &resourceName)
static ALIB_DLL void assertEndOfInput()
A node of the forward list that contains the custom record data.
ResourceInfo(const T &sample)
NString Category
The resource category within Pool.
void Set(const T &sample)
ResourcePool * Pool
The resource pool.
ResourceInfo() noexcept=default
Defaulted constructor leaving the fields uninitialized.
NString Name
The resource category within Pool.
const String & Get(const String &name, bool dbgAssert)
void Set(resources::ResourcePool *pool, NString category, NString name)
const String & Get(const NString &name, bool dbgAssert)
static constexpr NString Category()
static constexpr NString Name()
static constexpr ResourcePool * Pool()
static const String & Get()
static const String & Get(const String &resourceName, bool dbgAssert)
static const String & TypeNamePostfix()
static const String & Get(const NString &name, bool dbgAssert)
static const String & TypeNamePrefix()