Realm C++ SDK版本 v 2.2.0

obj_key.hpp

1
2//
3// 版权所有 2024 Realm Inc.
4//
5// 根据 Apache 许可证 2.0 版(“许可证”)获得许可;
6// 除非符合合规,否则不得使用此文件。
7// 您可以在以下网址获取许可证副本:
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// 除非适用法律要求或书面同意,否则软件
12// 根据许可证分发是按“原样”分发的,
13// 不提供任何类型的Express或暗示的保证或条件。
14// 请参阅管理权限的特定语言的许可证和
15// 许可证下的限制。
16//
18
19#ifndef CPPREALM_BRIDGE_OBJ_KEY_HPP
20#define CPPREALM_BRIDGE_OBJ_KEY_HPP
21
22#include <cinttypes>
23#include<memory>
24#include <type_traits>
25#include <cpprealm/internal/bridge/utils.hpp>
26
27命名空间域 {
28 struct ObjKey;
29 struct ObjLink;
30 }
31
32命名空间realm::internal::bridge {
33 struct obj_key {
34 obj_key ( const ObjKey&);
35 obj_key(int64_t);
36 obj_key ();
37 obj_key ( const obj_key & other) = 默认 ;
38 obj_key & Operator=( const obj_key & other) = default ;
39 obj_key ( obj_key && other) = 默认 ;
40 obj_key & 操作符=( obj_key && other) = 默认 ;
41 ~obj_key () = 默认 ;
42 操作符 ObjKey() const ;
43 private :
44 int64_t m_obj_key;
45 };
46
47 bool 操作符==( const obj_key &, const obj_key &);
48
49 bool操作符!=( const obj_key &, const obj_key &);
50 }
51
52命名空间realm::internal::bridge {
53 struct obj_link {
54 obj_link ( const ObjLink&);
55 obj_link();
56 obj_link ( const obj_link & other);
57 obj_link(uint32_t table_key, obj_key obj_key);
58 obj_link & Operator=( const obj_link & other);
59 obj_link ( obj_link && other);
60 obj_link & Operator=( obj_link && other);
61 ~obj_link();
62 操作符 ObjLink() const ;
63 obj_key get_obj_key();
64 uint32_t get_table_key();
65 private :
66#ifdef CPPREALM_HAVE_GENERATED_BRIDGE_TYPES
67 storage::ObjLink m_obj_link[1];
68#else
69 std::shared_ptr<ObjLink> m_obj_link;
70#endif
71 };
72
73 bool 操作符==( const obj_link &, const obj_link &);
74
75 bool操作符!=( const obj_link &, const obj_link &);
76 }
77
78
79#endif //CPREALM_BRIDGE_OBJ_KEY_HPP
定义: obj_key.hpp: 33