blob: 2fdffc4499f1803b48ebdb43e397ae52c66a98c8 [file] [log] [blame]
Jim Flynn00f3aaf2019-10-24 11:58:06 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Nikhil Raj5b1bcc92021-06-08 12:31:50 +01008#include "ProfilingGuid.hpp"
Jim Flynn00f3aaf2019-10-24 11:58:06 +01009
Jim Flynnab845752019-10-25 13:17:30 +010010#include <string>
11
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000012namespace arm
Jim Flynn00f3aaf2019-10-24 11:58:06 +010013{
14
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000015namespace pipe
Jim Flynn00f3aaf2019-10-24 11:58:06 +010016{
17
18class IProfilingGuidGenerator
19{
20public:
21 /// Return the next random Guid in the sequence
22 virtual ProfilingDynamicGuid NextGuid() = 0;
23
24 /// Create a ProfilingStaticGuid based on a hash of the string
25 virtual ProfilingStaticGuid GenerateStaticId(const std::string& str) = 0;
26
27 virtual ~IProfilingGuidGenerator() {}
28};
29
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000030} // namespace pipe
Jim Flynn00f3aaf2019-10-24 11:58:06 +010031
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000032} // namespace arm