Blender V5.0
BLI_session_uid.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
17
19
20#include "BLI_hash.hh"
21
24
27
29bool BLI_session_uid_is_equal(const SessionUID *lhs, const SessionUID *rhs);
30
32
33/* Utility functions to make it possible to create set/map with UID as a key. */
34
35uint BLI_session_uid_ghash_hash(const void *uid_v);
36bool BLI_session_uid_ghash_compare(const void *lhs_v, const void *rhs_v);
37
38namespace blender {
39
40inline bool operator==(const SessionUID &lhs, const SessionUID &rhs)
41{
42 return BLI_session_uid_is_equal(&lhs, &rhs);
43}
44
45template<typename T> struct DefaultHash;
46
47template<> struct DefaultHash<SessionUID> {
48 uint64_t operator()(const SessionUID &value) const
49 {
50 return BLI_session_uid_hash_uint64(&value);
51 }
52};
53
54} // namespace blender
bool BLI_session_uid_is_equal(const SessionUID *lhs, const SessionUID *rhs)
bool BLI_session_uid_is_generated(const SessionUID *uid)
uint BLI_session_uid_ghash_hash(const void *uid_v)
bool BLI_session_uid_ghash_compare(const void *lhs_v, const void *rhs_v)
uint64_t BLI_session_uid_hash_uint64(const SessionUID *uid)
SessionUID BLI_session_uid_generate(void)
unsigned int uint
unsigned long long int uint64_t
bool operator==(const CPPType &a, const CPPType &b)
uint64_t operator()(const SessionUID &value) const