objc2_cloud_kit/generated/
CKDatabase.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/cloudkit/ckdatabasescope?language=objc)
11// NS_ENUM
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct CKDatabaseScope(pub NSInteger);
15impl CKDatabaseScope {
16    #[doc(alias = "CKDatabaseScopePublic")]
17    pub const Public: Self = Self(1);
18    #[doc(alias = "CKDatabaseScopePrivate")]
19    pub const Private: Self = Self(2);
20    #[doc(alias = "CKDatabaseScopeShared")]
21    pub const Shared: Self = Self(3);
22}
23
24unsafe impl Encode for CKDatabaseScope {
25    const ENCODING: Encoding = NSInteger::ENCODING;
26}
27
28unsafe impl RefEncode for CKDatabaseScope {
29    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
30}
31
32extern_class!(
33    /// [Apple's documentation](https://developer.apple.com/documentation/cloudkit/ckdatabase?language=objc)
34    #[unsafe(super(NSObject))]
35    #[derive(Debug, PartialEq, Eq, Hash)]
36    pub struct CKDatabase;
37);
38
39unsafe impl Send for CKDatabase {}
40
41unsafe impl Sync for CKDatabase {}
42
43unsafe impl NSObjectProtocol for CKDatabase {}
44
45impl CKDatabase {
46    extern_methods!(
47        #[unsafe(method(init))]
48        #[unsafe(method_family = init)]
49        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
50
51        #[unsafe(method(new))]
52        #[unsafe(method_family = new)]
53        pub unsafe fn new() -> Retained<Self>;
54
55        #[cfg(all(feature = "CKDatabaseOperation", feature = "CKOperation"))]
56        #[unsafe(method(addOperation:))]
57        #[unsafe(method_family = none)]
58        pub unsafe fn addOperation(&self, operation: &CKDatabaseOperation);
59
60        #[unsafe(method(databaseScope))]
61        #[unsafe(method_family = none)]
62        pub unsafe fn databaseScope(&self) -> CKDatabaseScope;
63    );
64}
65
66/// ConvenienceMethods.
67/// Convenience APIs
68///
69///
70/// These calls operate on a single item in the default zone and allow for simple operations.
71/// If you'd like to batch your requests, add dependencies between requests, set priorities, or schedule operations on your own queue, take a look at the corresponding
72/// `CKOperation.`This work is treated as having
73/// `NSQualityOfServiceUserInitiated`quality of service.
74impl CKDatabase {
75    extern_methods!(
76        #[cfg(all(feature = "CKRecord", feature = "CKRecordID", feature = "block2"))]
77        /// `CKFetchRecordsOperation`and
78        /// `CKModifyRecordsOperation`are the more configurable,
79        /// `CKOperation`-based alternatives to these methods
80        #[unsafe(method(fetchRecordWithID:completionHandler:))]
81        #[unsafe(method_family = none)]
82        pub unsafe fn fetchRecordWithID_completionHandler(
83            &self,
84            record_id: &CKRecordID,
85            completion_handler: &block2::Block<dyn Fn(*mut CKRecord, *mut NSError)>,
86        );
87
88        #[cfg(all(feature = "CKRecord", feature = "block2"))]
89        #[unsafe(method(saveRecord:completionHandler:))]
90        #[unsafe(method_family = none)]
91        pub unsafe fn saveRecord_completionHandler(
92            &self,
93            record: &CKRecord,
94            completion_handler: &block2::Block<dyn Fn(*mut CKRecord, *mut NSError)>,
95        );
96
97        #[cfg(all(feature = "CKRecordID", feature = "block2"))]
98        #[unsafe(method(deleteRecordWithID:completionHandler:))]
99        #[unsafe(method_family = none)]
100        pub unsafe fn deleteRecordWithID_completionHandler(
101            &self,
102            record_id: &CKRecordID,
103            completion_handler: &block2::Block<dyn Fn(*mut CKRecordID, *mut NSError)>,
104        );
105
106        #[cfg(all(
107            feature = "CKQuery",
108            feature = "CKRecord",
109            feature = "CKRecordZoneID",
110            feature = "block2"
111        ))]
112        /// `CKQueryOperation`is the more configurable,
113        /// `CKOperation`-based alternative to this method
114        /// Queries can potentially return a large number of records, and the server will return those records in batches. This convenience API will only fetch the first batch of results (equivalent to using
115        /// `CKQueryOperationMaximumResults).`If you would like to fetch all results, use
116        /// `CKQueryOperation`and its
117        /// `CKQueryCursor`instead.
118        /// Queries invoked within a
119        /// `sharedCloudDatabase`must specify a
120        /// `zoneID.`Cross-zone queries are not supported in a
121        /// `sharedCloudDatabase`Queries that do not specify a
122        /// `zoneID`will perform a query across all zones in the database.
123        #[unsafe(method(performQuery:inZoneWithID:completionHandler:))]
124        #[unsafe(method_family = none)]
125        pub unsafe fn performQuery_inZoneWithID_completionHandler(
126            &self,
127            query: &CKQuery,
128            zone_id: Option<&CKRecordZoneID>,
129            completion_handler: &block2::Block<dyn Fn(*mut NSArray<CKRecord>, *mut NSError)>,
130        );
131
132        #[cfg(all(feature = "CKRecordZone", feature = "block2"))]
133        /// `CKFetchRecordZonesOperation`and
134        /// `CKModifyRecordZonesOperation`are the more configurable,
135        /// `CKOperation`-based alternatives to these methods
136        #[unsafe(method(fetchAllRecordZonesWithCompletionHandler:))]
137        #[unsafe(method_family = none)]
138        pub unsafe fn fetchAllRecordZonesWithCompletionHandler(
139            &self,
140            completion_handler: &block2::Block<dyn Fn(*mut NSArray<CKRecordZone>, *mut NSError)>,
141        );
142
143        #[cfg(all(
144            feature = "CKRecordZone",
145            feature = "CKRecordZoneID",
146            feature = "block2"
147        ))]
148        #[unsafe(method(fetchRecordZoneWithID:completionHandler:))]
149        #[unsafe(method_family = none)]
150        pub unsafe fn fetchRecordZoneWithID_completionHandler(
151            &self,
152            zone_id: &CKRecordZoneID,
153            completion_handler: &block2::Block<dyn Fn(*mut CKRecordZone, *mut NSError)>,
154        );
155
156        #[cfg(all(feature = "CKRecordZone", feature = "block2"))]
157        #[unsafe(method(saveRecordZone:completionHandler:))]
158        #[unsafe(method_family = none)]
159        pub unsafe fn saveRecordZone_completionHandler(
160            &self,
161            zone: &CKRecordZone,
162            completion_handler: &block2::Block<dyn Fn(*mut CKRecordZone, *mut NSError)>,
163        );
164
165        #[cfg(all(feature = "CKRecordZoneID", feature = "block2"))]
166        #[unsafe(method(deleteRecordZoneWithID:completionHandler:))]
167        #[unsafe(method_family = none)]
168        pub unsafe fn deleteRecordZoneWithID_completionHandler(
169            &self,
170            zone_id: &CKRecordZoneID,
171            completion_handler: &block2::Block<dyn Fn(*mut CKRecordZoneID, *mut NSError)>,
172        );
173
174        #[cfg(all(feature = "CKSubscription", feature = "block2"))]
175        /// `CKFetchSubscriptionsOperation`and
176        /// `CKModifySubscriptionsOperation`are the more configurable,
177        /// `CKOperation`-based alternative to these methods
178        #[unsafe(method(fetchSubscriptionWithID:completionHandler:))]
179        #[unsafe(method_family = none)]
180        pub unsafe fn fetchSubscriptionWithID_completionHandler(
181            &self,
182            subscription_id: &CKSubscriptionID,
183            completion_handler: &block2::Block<dyn Fn(*mut CKSubscription, *mut NSError)>,
184        );
185
186        #[cfg(all(feature = "CKSubscription", feature = "block2"))]
187        #[unsafe(method(fetchAllSubscriptionsWithCompletionHandler:))]
188        #[unsafe(method_family = none)]
189        pub unsafe fn fetchAllSubscriptionsWithCompletionHandler(
190            &self,
191            completion_handler: &block2::Block<dyn Fn(*mut NSArray<CKSubscription>, *mut NSError)>,
192        );
193
194        #[cfg(all(feature = "CKSubscription", feature = "block2"))]
195        #[unsafe(method(saveSubscription:completionHandler:))]
196        #[unsafe(method_family = none)]
197        pub unsafe fn saveSubscription_completionHandler(
198            &self,
199            subscription: &CKSubscription,
200            completion_handler: &block2::Block<dyn Fn(*mut CKSubscription, *mut NSError)>,
201        );
202
203        #[cfg(all(feature = "CKSubscription", feature = "block2"))]
204        #[unsafe(method(deleteSubscriptionWithID:completionHandler:))]
205        #[unsafe(method_family = none)]
206        pub unsafe fn deleteSubscriptionWithID_completionHandler(
207            &self,
208            subscription_id: &CKSubscriptionID,
209            completion_handler: &block2::Block<dyn Fn(*mut CKSubscriptionID, *mut NSError)>,
210        );
211    );
212}