27 #ifndef SCHNEK_BLOCKDATA_HPP_ 28 #define SCHNEK_BLOCKDATA_HPP_ 30 #include "../util/singleton.hpp" 31 #include "../util/logger.hpp" 45 typedef std::map<std::string, T*> DataMap;
46 typedef std::shared_ptr<DataMap> pDataMap;
47 typedef std::map<long, pDataMap> BlockDataMap;
49 BlockDataMap blockDataMap;
52 void add(
long blockId, std::string key, T &data);
53 T*
get(
long blockId, std::string key);
54 bool exists(
long blockId, std::string key);
62 if (0 == blockDataMap.count(blockId))
64 pDataMap pdm(
new DataMap());
65 blockDataMap[blockId] = pdm;
68 (*blockDataMap[blockId])[key] = &data;
76 if (0 == blockDataMap.count(blockId))
78 if (0 == blockDataMap[blockId]->count(key))
81 return (*blockDataMap[blockId])[key];
88 if (0 == blockDataMap.count(blockId))
return false;
89 return (blockDataMap[blockId]->count(key) > 0);
95 #endif // SCHNEK_BLOCKDATA_HPP_ Definition: singleton.hpp:80
Definition: blockdata.hpp:42
#define SCHNEK_TRACE_LOG(i, x)
Definition: logger.hpp:54