Realm C++ SDK 버전 v2.2.0

obj_key.hpp

1
2//
3//저작권 2024 Realm Inc.
4//
5// Apache 라이선스, 버전 2.0("라이선스")에 따라 라이선스가 부여됩니다.
6// 라이선스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다.
7// 다음에서 라이선스 사본을 얻을 수 있습니다.
8//
9// http://www.apache.org/licences/LICENSE-2.0
10//
11// 관련 법률에서 요구하거나 문서로 동의하지 않는 한, 소프트웨어
12// 라이선스에 따라 배포되는 것은 '있는 그대로' 배포됩니다,
13// Express 묵시적이든 어떤 종류의 보증이나 조건도 제공하지 않습니다.
14// 권한을 관리하는 특정 언어에 대한 내용은 라이선스를 참조하세요.
15// 라이선스에 따른 제한 사항.
16//
18
19#ifndef CPPRALM_BRIDGE_OBJ_KEY_HPP
20#define CPPRALM_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
32namespace realm::internal::bridge {
33 구조체 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) = 기본값;
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
52namespace realm::internal::bridge {
53 구조체 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 CPPRALM_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 //CPPREALM_BRIDGE_OBJ_KEY_HPP
정의: obj_key.hpp:33