Realm C++ SDK 버전 v2.2.0

mixed.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 CPPREALM_BRIDGE_MIXED_HPP
20#define CPPRALM_BRIDGE_MIXED_HPP
21
22#include <string>
23#include <optional>
24#include <variant>
25#include <cpprealm/internal/bridge/ 속성.hpp>
26#include <cpprealm/internal/bridge/binary.hpp>
27#include <cpprealm/internal/bridge/uuid.hpp>
28#include <cpprealm/internal/bridge/timestamp.hpp>
29#include <cpprealm/internal/bridge/obj_key.hpp>
30#include <cpprealm/internal/bridge/object_id.hpp>
31#include <cpprealm/internal/bridge/decimal128.hpp>
32
33네임스페이스 영역 {
34 클래스 혼합;
35
36 혼합 사용 = std::variant<
37 std::monostate,
38 int64_t,
39 부울,
40 std::string,
41 double,
42 std::vector<uint8_t>,
43 std::chrono::time_point<std::chrono::system_clock>,
44 uuid,
45 object_id,
46 십진수128>;
47}
48
49namespace realm::internal::bridge {
50 열거형 클래스 data_type {
51 // 참고: 값 할당은 <realm/column_type.h>
52 // 참고: 이 열거형 에 대한 모든 변경 사항은 파일 형식의 호환성이 손상되는 호환성이 손상되는 변경 입니다.
53 Int = 0,
54 Bool = 1,
55 string = 2,
56 바이너리 = 4,
57 혼합 = 6,
58 타임스탬프 = 8,
59 Float = 9,
60 double = 10,
61 10진수 = 11,
62 링크 = 12,
63 LinkList = 13,
64 ObjectId = 15,
65 TypedLink = 16,
66 UUID = 17,
67 };
68
69 구조체 혼합 {
70 혼합();
71 혼합(const 혼합& 기타) ;
72 혼합& 연산자=(const 혼합& 기타) ;
73 혼합(혼합&& 기타);
74 혼합& 연산자=(혼합&& 기타);
75 ~mixed();
76
77 명시적 혼합(const std::string&);
78 혼합(const std::monostate&); //NOLINT(google-explicit-constructor)
79 혼합(const int&); //NOLINT(google-explicit-constructor)
80 혼합(const int64_t&); //NOLINT(google-explicit-constructor)
81 혼합(const double&); //NOLINT(google-explicit-constructor)
82 혼합(const bool&); //NOLINT(google-explicit-constructor)
83 혼합(const struct uuid&); //NOLINT(google-explicit-constructor)
84 혼합(const struct object_id&); //NOLINT(google-explicit-constructor)
85 혼합(const struct decimal128&); //NOLINT(google-explicit-constructor)
86 혼합(const struct 타임스탬프&); //NOLINT(google-explicit-constructor)
87 혼합(const struct obj_link&); //NOLINT(google-explicit-constructor)
88 혼합(const struct obj_key&); //NOLINT(google-explicit-constructor)
89 혼합(const 구조체 바이너리&); //NOLINT(google-explicit-constructor)
90 혼합(const 혼합&); //NOLINT(google-explicit-constructor)
91 템플릿<typename T>
92 혼합(const std::optional<T>& o); //NOLINT(google-explicit-constructor)
93 연산자 std::string() const; //NOLINT(google-explicit-constructor)
94 연산자 int64_t() const; //NOLINT(google-explicit-constructor)
95 연산자 double() const; //NOLINT(google-explicit-constructor)
96 연산자 bool() const; //NOLINT(google-explicit-constructor)
97 연산자 브리지::uuid() const; //NOLINT(google-explicit-constructor)
98 연산자 bridge::object_id() const; //NOLINT(google-explicit-constructor)
99 연산자 bridge::decimal128() const; //NOLINT(google-explicit-constructor)
100 연산자 브리지::타임스탬프() const; //NOLINT(google-explicit-constructor)
101 연산자 bridge::obj_link() const; //NOLINT(google-explicit-constructor)
102 연산자 bridge::obj_key() const; //NOLINT(google-explicit-constructor)
103 연산자 Bridge::binary() const; //NOLINT(google-explicit-constructor)
104
105 명시적 연산자 Mixed() const;
106
107 [[nodiscard]] data_type type() const noException;
108 [[nodiscard]] bool is_null() const noException;
109 private:
110 std::string m_own_string;
111 바이너리 m_own_data;
112#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
113 저장::Mixed m_mixed[1];
114#else
115 std::shared_ptr<Mixed> m_mixed;
116#endif
117 친구 bool 연산자 ==(const 혼합&, const 혼합&);
118 친구 bool 연산자 !=(const 혼합&, const 혼합&);
119 친구 bool 연산자 >(const 혼합&, const 혼합&);
120 친구 bool 연산자 <(const 혼합&, const 혼합&);
121 친구 bool 연산자 >=(const 혼합&, const 혼합&);
122 친구 bool 연산자 <=(const 혼합&, const 혼합&);
123 };
124
125 bool 연산자 ==(const 혼합&, const 혼합&);
126 bool 연산자 !=(const 혼합&, const 혼합&);
127 bool 연산자 >(const 혼합&, const 혼합&);
128 bool 연산자 <(const 혼합&, const 혼합&);
129 bool 연산자 >=(const 혼합&, const 혼합&);
130 bool 연산자 <=(const 혼합&, const 혼합&);
131}
132
133
134#endif //CPPREALM_BRIDGE_MIXED_HPP
정의: 바이너리.hpp:30
정의: 십진수128.hpp:30
정의: obj_key.hpp:33
정의: object_id.hpp:31
정의: timestamp.hpp:30