aboutsummaryrefslogtreecommitdiff
path: root/src/profiling/ProfilingGuidGenerator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/profiling/ProfilingGuidGenerator.hpp')
-rw-r--r--src/profiling/ProfilingGuidGenerator.hpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/profiling/ProfilingGuidGenerator.hpp b/src/profiling/ProfilingGuidGenerator.hpp
index ad3159f201..97de4a88e5 100644
--- a/src/profiling/ProfilingGuidGenerator.hpp
+++ b/src/profiling/ProfilingGuidGenerator.hpp
@@ -22,25 +22,28 @@ public:
ProfilingGuidGenerator() : m_Sequence(0) {}
/// Return the next random Guid in the sequence
- // NOTE: dummy implementation for the moment
inline ProfilingDynamicGuid NextGuid() override
{
- // NOTE: skipping the zero for testing purposes
- ProfilingDynamicGuid guid(++m_Sequence);
+ ProfilingDynamicGuid guid(m_Sequence);
+ m_Sequence++;
+ if (m_Sequence >= MIN_STATIC_GUID)
+ {
+ // Reset the sequence to 0 when it reaches the upper bound of dynamic guid
+ m_Sequence = 0;
+ }
return guid;
}
/// Create a ProfilingStaticGuid based on a hash of the string
- // NOTE: dummy implementation for the moment
inline ProfilingStaticGuid GenerateStaticId(const std::string& str) override
{
- uint64_t guid = static_cast<uint64_t>(m_StringHasher(str));
- return guid;
+ uint64_t staticHash = m_Hash(str) | MIN_STATIC_GUID;
+ return ProfilingStaticGuid(staticHash);
}
private:
- std::hash<std::string> m_StringHasher;
uint64_t m_Sequence;
+ std::hash<std::string> m_Hash;
};
} // namespace profiling