Blender  V3.3
BLI_session_uuid.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #include "DNA_session_uuid_types.h"
21 
24 
27 
29 bool BLI_session_uuid_is_equal(const SessionUUID *lhs, const SessionUUID *rhs);
30 
32 
33 /* Utility functions to make it possible to create GHash/GSet with UUID as a key. */
34 
35 uint BLI_session_uuid_ghash_hash(const void *uuid_v);
36 bool BLI_session_uuid_ghash_compare(const void *lhs_v, const void *rhs_v);
37 
38 #ifdef __cplusplus
39 }
40 #endif
41 
42 #ifdef __cplusplus
43 
44 namespace blender {
45 
46 inline const bool operator==(const SessionUUID &lhs, const SessionUUID &rhs)
47 {
48  return BLI_session_uuid_is_equal(&lhs, &rhs);
49 }
50 
51 template<typename T> struct DefaultHash;
52 
53 template<> struct DefaultHash<SessionUUID> {
54  uint64_t operator()(const SessionUUID &value) const
55  {
56  return BLI_session_uuid_hash_uint64(&value);
57  }
58 };
59 
60 } // namespace blender
61 
62 #endif
uint64_t BLI_session_uuid_hash_uint64(const SessionUUID *uuid)
Definition: session_uuid.c:48
bool BLI_session_uuid_ghash_compare(const void *lhs_v, const void *rhs_v)
Definition: session_uuid.c:59
SessionUUID BLI_session_uuid_generate(void)
Definition: session_uuid.c:22
uint BLI_session_uuid_ghash_hash(const void *uuid_v)
Definition: session_uuid.c:53
bool BLI_session_uuid_is_equal(const SessionUUID *lhs, const SessionUUID *rhs)
Definition: session_uuid.c:43
bool BLI_session_uuid_is_generated(const SessionUUID *uuid)
Definition: session_uuid.c:38
unsigned int uint
Definition: BLI_sys_types.h:67
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