Realm C++ SDK 버전 v2.2.0

object_schema.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_OBJECT_SCHEMA_HPP
20#define CPPREALM_BRIDGE_OBJECT_SCHEMA_HPP
21
22#include <cstdint>
23#include <string>
24#include <vector>
25#include <cpprealm/internal/bridge/utils.hpp>
26
27네임스페이스 영역 {
28 클래스 ObjectSchema;
29}
30namespace realm::internal::bridge {
31 구조체 속성;
32
33 구조체 object_schema {
34 열거형 클래스 object_type : uint8_t { TopLevel = 0, Embedded = 0x1, TopLevelAsymmetric = 0x2 };
35
37
38 object_schema(const object_schema& other) ;
39 object_schema& 연산자=(const object_schema& other) ;
41 object_schema& 연산자=(object_schema&& other);
43
44
45 object_schema(const std::string& name,
46 const std::vector<property>& 속성,
47 const std::string& primary_key,
48 object_type 유형),
49 object_schema(const ObjectSchema&);
50 연산자 ObjectSchema() const;
51 uint32_t table_key();
52 oid add_property (const 속성&);
53
54 set_name (const std::string& name);
55 std::string get_name() const;
56 set_primary_key (const std::string& primary_key);
57 set_object_type (object_type);
58 속성 Property_for_name(const std::string&);
59 bool 연산자==(const object_schema& rhs);
60 private:
61 ObjectSchema* get_object_schema();
62 const ObjectSchema* get_object_schema() const;
63#ifdef CPPRALM_HAVE_GENERATED_BRIDGE_TYPES
64 저장::ObjectSchema m_schema[1];
65#else
66 std::shared_ptr<ObjectSchema> m_schema;
67#endif
68 };
69}
70
71#endif //CPPREALM_BRIDGE_OBJECT_SCHEMA_HPP
정의: object_schema.hpp:33
정의: managed_primary_key.hpp:30