1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
gpu / command_buffer / common / shared_image_pool_id.h [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef GPU_COMMAND_BUFFER_COMMON_SHARED_IMAGE_POOL_ID_H_
#define GPU_COMMAND_BUFFER_COMMON_SHARED_IMAGE_POOL_ID_H_
#include <string>
#include "base/unguessable_token.h"
#include "gpu/gpu_export.h"
namespace gpu {
// A unique, unguessable identifier for a SharedImagePool.
class GPU_EXPORT SharedImagePoolId {
public:
SharedImagePoolId();
explicit SharedImagePoolId(const base::UnguessableToken& token);
// Creates a new SharedImagePoolId with a cryptographically random value.
static SharedImagePoolId Create();
// Generates a string representation of the SharedImagePoolId.
std::string ToString() const;
bool operator==(const SharedImagePoolId& other) const {
return token_ == other.token_;
}
std::strong_ordering operator<=>(const SharedImagePoolId& other) const {
return token_ <=> other.token_;
}
bool IsValid() const { return !token_.is_empty(); }
const base::UnguessableToken& GetToken() const { return token_; }
private:
// The underlying unguessable token.
base::UnguessableToken token_;
};
} // namespace gpu
#endif // GPU_COMMAND_BUFFER_COMMON_SHARED_IMAGE_POOL_ID_H_