#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/command_buffer/common/gpu_command_buffer_common_export.h"
namespace gpu {
class GPU_COMMAND_BUFFER_COMMON_EXPORT SharedImagePoolId {
public:
SharedImagePoolId();
explicit SharedImagePoolId(const base::UnguessableToken& token);
static SharedImagePoolId Create();
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_;
}
template <typename H>
friend H AbslHashValue(H h, const SharedImagePoolId& id) {
return H::combine(std::move(h), id.token_);
}
bool IsValid() const { return !token_.is_empty(); }
const base::UnguessableToken& GetToken() const { return token_; }
private:
base::UnguessableToken token_;
};
}
#endif