75d24c15
yangbin
123
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
////////////////////////////////////////////////////////////////////////////
//
// Copyright 2017 Realm Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////
#import "RLMResults_Private.h"
#import <realm/object-store/results.hpp>
class RLMClassInfo;
NS_ASSUME_NONNULL_BEGIN
@interface RLMResults () {
@protected
realm::Results _results;
}
/**
Initialize a 'raw' `RLMResults` using only an object store level Results.
This is only meant for applications where a results collection is being backed
by an object store object class that has no binding-level equivalent. The
consumer is responsible for bridging between the underlying objects and whatever
binding-level class is being vended out.
*/
- (instancetype)initWithResults:(realm::Results)results;
- (instancetype)initWithObjectInfo:(RLMClassInfo&)info results:(realm::Results&&)results;
+ (instancetype)resultsWithObjectInfo:(RLMClassInfo&)info results:(realm::Results&&)results;
- (instancetype)subresultsWithResults:(realm::Results)results;
@end
NS_ASSUME_NONNULL_END
// Utility functions
[[gnu::noinline]]
[[noreturn]]
void RLMThrowResultsError(NSString * _Nullable aggregateMethod);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnullability-completeness"
template<typename Function>
static auto translateRLMResultsErrors(Function&& f, NSString *aggregateMethod=nil) {
try {
return f();
}
catch (...) {
RLMThrowResultsError(aggregateMethod);
}
}
#pragma clang diagnostic pop
|