diff options
author | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-10-22 14:17:11 +0100 |
---|---|---|
committer | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-10-22 14:23:50 +0100 |
commit | 15effd8806e77c226b55e546bb44110177383fab (patch) | |
tree | f55a1b6d57905849bdb442f65b555e2c7b973e93 /src/profiling/ProfilingGuid.hpp | |
parent | 6d2e6594cccde1dae2f52ab25e57d529c4c1d32e (diff) | |
download | armnn-15effd8806e77c226b55e546bb44110177383fab.tar.gz |
IVGCVSW-3980 Add ProfilingGuid and ProfilingGuidGenerator API
* ProfilingGuid
* ProfilingDynamicGuid
* ProfilingStaticGuid
* ProfilingGuidGenerator API
* Unit tests
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: If950415f059d07d34cf64e13a9b4663dd032ec34
Diffstat (limited to 'src/profiling/ProfilingGuid.hpp')
-rw-r--r-- | src/profiling/ProfilingGuid.hpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/profiling/ProfilingGuid.hpp b/src/profiling/ProfilingGuid.hpp new file mode 100644 index 0000000000..84d2db7363 --- /dev/null +++ b/src/profiling/ProfilingGuid.hpp @@ -0,0 +1,70 @@ +// +// Copyright © 2019 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <stdint.h> + +namespace armnn +{ + +namespace profiling +{ + +class ProfilingGuid +{ +public: + ProfilingGuid(uint64_t guid) : m_Guid(guid) {} + + operator uint64_t () const { return m_Guid; } + + bool operator==(const ProfilingGuid& other) const + { + return m_Guid == other.m_Guid; + } + + bool operator!=(const ProfilingGuid& other) const + { + return !(*this == other); + } + + bool operator<(const ProfilingGuid& other) const + { + return m_Guid < other.m_Guid; + } + + bool operator<=(const ProfilingGuid& other) const + { + return m_Guid <= other.m_Guid; + } + + bool operator>(const ProfilingGuid& other) const + { + return m_Guid > other.m_Guid; + } + + bool operator>=(const ProfilingGuid& other) const + { + return m_Guid >= other.m_Guid; + } + +protected: + uint64_t m_Guid; +}; + +/// Strongly typed guids to distinguish between those generated at runtime, and those that are statically defined. +struct ProfilingDynamicGuid : public ProfilingGuid +{ + using ProfilingGuid::ProfilingGuid; +}; + +struct ProfilingStaticGuid : public ProfilingGuid +{ + using ProfilingGuid::ProfilingGuid; +}; + +} // namespace profiling + +} // namespace armnn |