TrinityCore
SpecializedScriptRegistry< ScriptType, false > Class Template Reference
+ Inheritance diagram for SpecializedScriptRegistry< ScriptType, false >:

Public Types

typedef std::unordered_multimap< std::string, std::unique_ptr< ScriptType > > ScriptStoreType
 
typedef ScriptStoreType::iterator ScriptStoreIteratorType
 

Public Member Functions

 SpecializedScriptRegistry ()
 
void ReleaseContext (std::string const &context) final override
 
void SwapContext (bool initialize) final override
 Injects and updates the changed script objects. More...
 
void RemoveUsedScriptsFromContainer (std::unordered_set< std::string > &scripts) final override
 
void Unload () final override
 Unloads the script registry. More...
 
void SyncScriptNames () final override
 Updates the scripts to reflect the current id. More...
 
void AddScript (ScriptType *script)
 
ScriptStoreTypeGetScripts ()
 
- Public Member Functions inherited from ScriptRegistryInterface
 ScriptRegistryInterface ()
 
virtual ~ScriptRegistryInterface ()
 
 ScriptRegistryInterface (ScriptRegistryInterface const &)=delete
 
 ScriptRegistryInterface (ScriptRegistryInterface &&)=delete
 
ScriptRegistryInterfaceoperator= (ScriptRegistryInterface const &)=delete
 
ScriptRegistryInterfaceoperator= (ScriptRegistryInterface &&)=delete
 
virtual void ReleaseContext (std::string const &context)=0
 
virtual void SwapContext (bool initialize)=0
 Injects and updates the changed script objects. More...
 
virtual void RemoveUsedScriptsFromContainer (std::unordered_set< std::string > &scripts)=0
 
virtual void Unload ()=0
 Unloads the script registry. More...
 
virtual void SyncScriptNames ()=0
 Updates the scripts to reflect the current id. More...
 
- Public Member Functions inherited from ScriptRegistrySwapHookBase
 ScriptRegistrySwapHookBase ()
 
virtual ~ScriptRegistrySwapHookBase ()
 
 ScriptRegistrySwapHookBase (ScriptRegistrySwapHookBase const &)=delete
 
 ScriptRegistrySwapHookBase (ScriptRegistrySwapHookBase &&)=delete
 
ScriptRegistrySwapHookBaseoperator= (ScriptRegistrySwapHookBase const &)=delete
 
ScriptRegistrySwapHookBaseoperator= (ScriptRegistrySwapHookBase &&)=delete
 
virtual void BeforeReleaseContext (std::string const &)
 Called before the actual context release happens. More...
 
virtual void BeforeSwapContext (bool)
 Called before SwapContext. More...
 
virtual void BeforeUnload ()
 Called before Unload. More...
 
virtual void OnScriptNamesSync ()
 Called manually to sync scriptnames. More...
 

Private Attributes

ScriptStoreType _scripts
 

Friends

template<typename , typename >
class ScriptRegistrySwapHooks
 

Detailed Description

template<typename ScriptType>
class SpecializedScriptRegistry< ScriptType, false >

Definition at line 1091 of file ScriptMgr.cpp.

Member Typedef Documentation

◆ ScriptStoreIteratorType

template<typename ScriptType >
typedef ScriptStoreType::iterator SpecializedScriptRegistry< ScriptType, false >::ScriptStoreIteratorType

Definition at line 1100 of file ScriptMgr.cpp.

◆ ScriptStoreType

template<typename ScriptType >
typedef std::unordered_multimap<std::string , std::unique_ptr<ScriptType> > SpecializedScriptRegistry< ScriptType, false >::ScriptStoreType

Definition at line 1099 of file ScriptMgr.cpp.

Constructor & Destructor Documentation

◆ SpecializedScriptRegistry()

template<typename ScriptType >
SpecializedScriptRegistry< ScriptType, false >::SpecializedScriptRegistry ( )
inline

Definition at line 1102 of file ScriptMgr.cpp.

Member Function Documentation

◆ AddScript()

template<typename ScriptType >
void SpecializedScriptRegistry< ScriptType, false >::AddScript ( ScriptType *  script)
inline

Definition at line 1134 of file ScriptMgr.cpp.

◆ GetScripts()

template<typename ScriptType >
ScriptStoreType & SpecializedScriptRegistry< ScriptType, false >::GetScripts ( )
inline

Definition at line 1157 of file ScriptMgr.cpp.

◆ ReleaseContext()

template<typename ScriptType >
void SpecializedScriptRegistry< ScriptType, false >::ReleaseContext ( std::string const &  context)
inlinefinaloverridevirtual

Removes all scripts associated with the given script context. Requires ScriptRegistryBase::SwapContext to be called after all transfers have finished.

Implements ScriptRegistryInterface.

Definition at line 1104 of file ScriptMgr.cpp.

+ Here is the call graph for this function:

◆ RemoveUsedScriptsFromContainer()

template<typename ScriptType >
void SpecializedScriptRegistry< ScriptType, false >::RemoveUsedScriptsFromContainer ( std::unordered_set< std::string > &  scripts)
inlinefinaloverridevirtual

Removes the scripts used by this registry from the given container. Used to find unused script names.

Implements ScriptRegistryInterface.

Definition at line 1116 of file ScriptMgr.cpp.

◆ SwapContext()

template<typename ScriptType >
void SpecializedScriptRegistry< ScriptType, false >::SwapContext ( bool  initialize)
inlinefinaloverridevirtual

Injects and updates the changed script objects.

Implements ScriptRegistryInterface.

Definition at line 1111 of file ScriptMgr.cpp.

+ Here is the call graph for this function:

◆ SyncScriptNames()

template<typename ScriptType >
void SpecializedScriptRegistry< ScriptType, false >::SyncScriptNames ( )
inlinefinaloverridevirtual

Updates the scripts to reflect the current id.

Implements ScriptRegistryInterface.

Definition at line 1129 of file ScriptMgr.cpp.

◆ Unload()

template<typename ScriptType >
void SpecializedScriptRegistry< ScriptType, false >::Unload ( )
inlinefinaloverridevirtual

Unloads the script registry.

Implements ScriptRegistryInterface.

Definition at line 1122 of file ScriptMgr.cpp.

+ Here is the call graph for this function:

Friends And Related Function Documentation

◆ ScriptRegistrySwapHooks

template<typename ScriptType >
template<typename , typename >
friend class ScriptRegistrySwapHooks
friend

Definition at line 1096 of file ScriptMgr.cpp.

Member Data Documentation

◆ _scripts

template<typename ScriptType >
ScriptStoreType SpecializedScriptRegistry< ScriptType, false >::_scripts
private

Definition at line 1163 of file ScriptMgr.cpp.


The documentation for this class was generated from the following file: