8#ifndef HPP_ALIB_LANG_CAMP
9#define HPP_ALIB_LANG_CAMP 1
83 #if ALIB_CONFIGURATION
153 "Destructing a non-terminated camp. "
177 #if ALIB_CONFIGURATION
200 "This camp already has a configuration object set.\n"
201 "A custom configuration must be set before camp initialization.")
245 "This camp already has a resource pool object set.\n"
246 "A custom resource pool must be set before camp initialization.")
void BootstrapSetResourcePool(lang::resources::ResourcePool *pool)
void operator=(Camp &&)=delete
Deleted move assignment.
resources::ResourcePool & GetResourcePool()
SharedLock * configLock
A shared lock associated to member config.
void operator=(const Camp &)=delete
Deleted copy assignment.
void BootstrapResource(const NString &name, const String &data)
void BootstrapSetConfig(config::Configuration *pConfig)
threads::SharedLock & GetConfigLock()
virtual void shutdown(ShutdownPhases phase)=0
const String & TryResource(const NString &name)
NCString ResourceCategory
lang::resources::ResourcePool * resourcePool
Camp(const NCString &resourceCategory)
virtual void bootstrap(BootstrapPhases phase)=0
config::Configuration & GetConfig()
Camp(Camp &&)=delete
Deleted move constructor.
config::Configuration * config
const String & GetResource(const NString &name)
Camp(const Camp &)=delete
Deleted copy constructor.
virtual ~Camp()
Virtual destructor to satisfy C++ abstract type rules.
#define ALIB_ASSERT_MODULE(modulename)
#define ALIB_ASSERT_WARNING(cond,...)
ShutdownPhases
Termination levels usable with Bootstrapping ALib Camps.
@ Destruct
The main phase of termination that destructs everything.
config::Configuration Configuration
Type alias in namespace alib.
BootstrapPhases
Initialization levels usable with Bootstrapping ALib Camps.
@ Final
The final initialization phase. Here, camps are initializing their custom setup.
ALIB_WARNINGS_RESTORE void Bootstrap(int alibVersion, int alibRevision, TCompilationFlags compilationFlags)
lang::resources::ResourcePool ResourcePool
Type alias in namespace alib.