added iOS source code
[wl-app.git] / iOS / Pods / Realm / include / RLMResults_Private.hpp
diff --git a/iOS/Pods/Realm/include/RLMResults_Private.hpp b/iOS/Pods/Realm/include/RLMResults_Private.hpp
new file mode 100644 (file)
index 0000000..a4f5abf
--- /dev/null
@@ -0,0 +1,63 @@
+////////////////////////////////////////////////////////////////////////////
+//
+// 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 "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)resultsWithObjectInfo:(RLMClassInfo&)info results:(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