AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
WorldModelStore Class Reference

#include "WorldModelStore.h"

Public Member Functions

std::shared_ptr< VMAP::WorldModelAcquireModelInstance (std::string const &basepath, std::string const &filename, uint32 flags)
 

Static Public Member Functions

static WorldModelStoreinstance ()
 

Private Types

typedef std::unordered_map< std::string, std::shared_ptr< VMAP::WorldModel > > ModelFileMap
 

Private Attributes

ModelFileMap _loadedModels
 
std::mutex _lock
 

Detailed Description

Member Typedef Documentation

◆ ModelFileMap

typedef std::unordered_map<std::string, std::shared_ptr<VMAP::WorldModel> > WorldModelStore::ModelFileMap
private

Member Function Documentation

◆ AcquireModelInstance()

std::shared_ptr< VMAP::WorldModel > WorldModelStore::AcquireModelInstance ( std::string const &  basepath,
std::string const &  filename,
uint32  flags 
)

Critical section, thread safe access

22{
24 std::lock_guard<std::mutex> lock(_lock);
25
26 ModelFileMap::iterator model = _loadedModels.find(filename);
27 if (model == _loadedModels.end())
28 {
29 std::shared_ptr<VMAP::WorldModel> worldmodel = std::make_shared<VMAP::WorldModel>();
30 LOG_DEBUG("maps", "WorldModelStore: loading file '{}{}'", basepath, filename);
31 if (!worldmodel->readFile(basepath + filename + ".vmo"))
32 {
33 LOG_ERROR("maps", "WorldModelStore: could not load '{}{}.vmo'", basepath, filename);
34 return nullptr;
35 }
36
37 worldmodel->Flags = flags;
38
39 model = _loadedModels.insert(std::pair<std::string, std::shared_ptr<VMAP::WorldModel>>(filename, worldmodel)).first;
40 }
41
42 return model->second;
43}
#define LOG_ERROR(filterType__,...)
Definition Log.h:158
#define LOG_DEBUG(filterType__,...)
Definition Log.h:170
ModelFileMap _loadedModels
Definition WorldModelStore.h:39
std::mutex _lock
Definition WorldModelStore.h:41

References _loadedModels, _lock, LOG_DEBUG, and LOG_ERROR.

◆ instance()

static WorldModelStore * WorldModelStore::instance ( )
inlinestatic
30 {
32 return &instance;
33 }
Definition WorldModelStore.h:27
static WorldModelStore * instance()
Definition WorldModelStore.h:29

References instance().

Referenced by instance().

Member Data Documentation

◆ _loadedModels

ModelFileMap WorldModelStore::_loadedModels
private

Referenced by AcquireModelInstance().

◆ _lock

std::mutex WorldModelStore::_lock
private

Referenced by AcquireModelInstance().


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