Blender V4.3
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
18#ifdef __cplusplus
19extern "C" {
20#endif
21
23
26
29
31bool BLI_session_uid_is_equal(const SessionUID *lhs, const SessionUID *rhs);
32
34
35/* Utility functions to make it possible to create GHash/GSet with UID as a key. */
36
37uint BLI_session_uid_ghash_hash(const void *uid_v);
38bool BLI_session_uid_ghash_compare(const void *lhs_v, const void *rhs_v);
39
40#ifdef __cplusplus
41}
42#endif
43
44#ifdef __cplusplus
45
46namespace blender {
47
48inline const bool operator==(const SessionUID &lhs, const SessionUID &rhs)
49{
50 return BLI_session_uid_is_equal(&lhs, &rhs);
51}
52
53template<typename T> struct DefaultHash;
54
55template<> struct DefaultHash<SessionUID> {
56 uint64_t operator()(const SessionUID &value) const
57 {
58 return BLI_session_uid_hash_uint64(&value);
59 }
60};
61
62} // namespace blender
63
64#endif
bool BLI_session_uid_is_equal(const SessionUID *lhs, const SessionUID *rhs)
Definition session_uid.c:43
bool BLI_session_uid_is_generated(const SessionUID *uid)
Definition session_uid.c:38
uint BLI_session_uid_ghash_hash(const void *uid_v)
Definition session_uid.c:53
bool BLI_session_uid_ghash_compare(const void *lhs_v, const void *rhs_v)
Definition session_uid.c:59
uint64_t BLI_session_uid_hash_uint64(const SessionUID *uid)
Definition session_uid.c:48
SessionUID BLI_session_uid_generate(void)
Definition session_uid.c:22
unsigned int uint
local_group_size(16, 16) .push_constant(Type rhs
constexpr bool operator==(StringRef a, StringRef b)
unsigned __int64 uint64_t
Definition stdint.h:90
uint64_t operator()(const T &value) const
Definition BLI_hash.hh:84