aboutsummaryrefslogtreecommitdiff
path: root/src/profiling/ProfilingGuid.hpp
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-10-22 14:17:11 +0100
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-10-22 14:23:50 +0100
commit15effd8806e77c226b55e546bb44110177383fab (patch)
treef55a1b6d57905849bdb442f65b555e2c7b973e93 /src/profiling/ProfilingGuid.hpp
parent6d2e6594cccde1dae2f52ab25e57d529c4c1d32e (diff)
downloadarmnn-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.hpp70
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