added iOS source code
[wl-app.git] / iOS / Pods / Realm / include / RLMObjectStore.h
1 ////////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright 2014 Realm Inc.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 ////////////////////////////////////////////////////////////////////////////
18
19 #import <Foundation/Foundation.h>
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 @class RLMRealm, RLMSchema, RLMObjectBase, RLMResults, RLMProperty;
26
27 NS_ASSUME_NONNULL_BEGIN
28
29 //
30 // Accessor Creation
31 //
32
33 // create or get cached accessors for the given schema
34 void RLMRealmCreateAccessors(RLMSchema *schema);
35
36
37 //
38 // Adding, Removing, Getting Objects
39 //
40
41 // add an object to the given realm
42 void RLMAddObjectToRealm(RLMObjectBase *object, RLMRealm *realm, bool createOrUpdate);
43
44 // delete an object from its realm
45 void RLMDeleteObjectFromRealm(RLMObjectBase *object, RLMRealm *realm);
46
47 // deletes all objects from a realm
48 void RLMDeleteAllObjectsFromRealm(RLMRealm *realm);
49
50 // get objects of a given class
51 RLMResults *RLMGetObjects(RLMRealm *realm, NSString *objectClassName, NSPredicate * _Nullable predicate)
52 NS_RETURNS_RETAINED;
53
54 // get an object with the given primary key
55 id _Nullable RLMGetObject(RLMRealm *realm, NSString *objectClassName, id _Nullable key) NS_RETURNS_RETAINED;
56
57 // create object from array or dictionary
58 RLMObjectBase *RLMCreateObjectInRealmWithValue(RLMRealm *realm, NSString *className,
59                                                id _Nullable value, bool createOrUpdate)
60 NS_RETURNS_RETAINED;
61
62
63 //
64 // Accessor Creation
65 //
66
67
68 // switch List<> properties from being backed by unmanaged RLMArrays to RLMManagedArray
69 void RLMInitializeSwiftAccessorGenerics(RLMObjectBase *object);
70
71 #ifdef __cplusplus
72 }
73
74 namespace realm {
75     class Table;
76     template<typename T> class BasicRowExpr;
77     using RowExpr = BasicRowExpr<Table>;
78 }
79 class RLMClassInfo;
80
81 // Create accessors
82 RLMObjectBase *RLMCreateObjectAccessor(RLMRealm *realm, RLMClassInfo& info,
83                                        NSUInteger index) NS_RETURNS_RETAINED;
84 RLMObjectBase *RLMCreateObjectAccessor(RLMRealm *realm, RLMClassInfo& info,
85                                        realm::RowExpr row) NS_RETURNS_RETAINED;
86 #endif
87
88 NS_ASSUME_NONNULL_END