use crate::common::*;
use crate::CoreData::*;
use crate::Foundation::*;
extern_static!(NSManagedObjectContextWillSaveNotification: &'static NSString);
extern_static!(NSManagedObjectContextDidSaveNotification: &'static NSString);
extern_static!(NSManagedObjectContextObjectsDidChangeNotification: &'static NSString);
extern_static!(NSManagedObjectContextDidSaveObjectIDsNotification: &'static NSString);
extern_static!(NSManagedObjectContextDidMergeChangesObjectIDsNotification: &'static NSString);
extern_static!(NSInsertedObjectsKey: &'static NSString);
extern_static!(NSUpdatedObjectsKey: &'static NSString);
extern_static!(NSDeletedObjectsKey: &'static NSString);
extern_static!(NSRefreshedObjectsKey: &'static NSString);
extern_static!(NSInvalidatedObjectsKey: &'static NSString);
extern_static!(NSManagedObjectContextQueryGenerationKey: &'static NSString);
extern_static!(NSInvalidatedAllObjectsKey: &'static NSString);
extern_static!(NSInsertedObjectIDsKey: &'static NSString);
extern_static!(NSUpdatedObjectIDsKey: &'static NSString);
extern_static!(NSDeletedObjectIDsKey: &'static NSString);
extern_static!(NSRefreshedObjectIDsKey: &'static NSString);
extern_static!(NSInvalidatedObjectIDsKey: &'static NSString);
ns_enum!(
#[underlying(NSUInteger)]
pub enum NSManagedObjectContextConcurrencyType {
NSConfinementConcurrencyType = 0x00,
NSPrivateQueueConcurrencyType = 0x01,
NSMainQueueConcurrencyType = 0x02,
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSManagedObjectContext;
unsafe impl ClassType for NSManagedObjectContext {
type Super = NSObject;
}
);
extern_methods!(
unsafe impl NSManagedObjectContext {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self, Shared>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Option<Allocated<Self>>) -> Id<Self, Shared>;
#[method_id(@__retain_semantics Init initWithConcurrencyType:)]
pub unsafe fn initWithConcurrencyType(
this: Option<Allocated<Self>>,
ct: NSManagedObjectContextConcurrencyType,
) -> Id<Self, Shared>;
#[method(performBlock:)]
pub unsafe fn performBlock(&self, block: &Block<(), ()>);
#[method(performBlockAndWait:)]
pub unsafe fn performBlockAndWait(&self, block: &Block<(), ()>);
#[method_id(@__retain_semantics Other persistentStoreCoordinator)]
pub unsafe fn persistentStoreCoordinator(
&self,
) -> Option<Id<NSPersistentStoreCoordinator, Shared>>;
#[method(setPersistentStoreCoordinator:)]
pub unsafe fn setPersistentStoreCoordinator(
&self,
persistentStoreCoordinator: Option<&NSPersistentStoreCoordinator>,
);
#[method_id(@__retain_semantics Other parentContext)]
pub unsafe fn parentContext(&self) -> Option<Id<NSManagedObjectContext, Shared>>;
#[method(setParentContext:)]
pub unsafe fn setParentContext(&self, parentContext: Option<&NSManagedObjectContext>);
#[method_id(@__retain_semantics Other name)]
pub unsafe fn name(&self) -> Option<Id<NSString, Shared>>;
#[method(setName:)]
pub unsafe fn setName(&self, name: Option<&NSString>);
#[method_id(@__retain_semantics Other undoManager)]
pub unsafe fn undoManager(&self) -> Option<Id<NSUndoManager, Shared>>;
#[method(setUndoManager:)]
pub unsafe fn setUndoManager(&self, undoManager: Option<&NSUndoManager>);
#[method(hasChanges)]
pub unsafe fn hasChanges(&self) -> bool;
#[method_id(@__retain_semantics Other userInfo)]
pub unsafe fn userInfo(&self) -> Id<NSMutableDictionary, Owned>;
#[method(concurrencyType)]
pub unsafe fn concurrencyType(&self) -> NSManagedObjectContextConcurrencyType;
#[method_id(@__retain_semantics Other objectRegisteredForID:)]
pub unsafe fn objectRegisteredForID(
&self,
objectID: &NSManagedObjectID,
) -> Option<Id<NSManagedObject, Shared>>;
#[method_id(@__retain_semantics Other objectWithID:)]
pub unsafe fn objectWithID(
&self,
objectID: &NSManagedObjectID,
) -> Id<NSManagedObject, Shared>;
#[method_id(@__retain_semantics Other existingObjectWithID:error:)]
pub unsafe fn existingObjectWithID_error(
&self,
objectID: &NSManagedObjectID,
) -> Result<Id<NSManagedObject, Shared>, Id<NSError, Shared>>;
#[method_id(@__retain_semantics Other executeFetchRequest:error:)]
pub unsafe fn executeFetchRequest_error(
&self,
request: &NSFetchRequest,
) -> Result<Id<NSArray, Shared>, Id<NSError, Shared>>;
#[method_id(@__retain_semantics Other executeRequest:error:)]
pub unsafe fn executeRequest_error(
&self,
request: &NSPersistentStoreRequest,
) -> Result<Id<NSPersistentStoreResult, Shared>, Id<NSError, Shared>>;
#[method(insertObject:)]
pub unsafe fn insertObject(&self, object: &NSManagedObject);
#[method(deleteObject:)]
pub unsafe fn deleteObject(&self, object: &NSManagedObject);
#[method(refreshObject:mergeChanges:)]
pub unsafe fn refreshObject_mergeChanges(&self, object: &NSManagedObject, flag: bool);
#[method(detectConflictsForObject:)]
pub unsafe fn detectConflictsForObject(&self, object: &NSManagedObject);
#[method(observeValueForKeyPath:ofObject:change:context:)]
pub unsafe fn observeValueForKeyPath_ofObject_change_context(
&self,
keyPath: Option<&NSString>,
object: Option<&Object>,
change: Option<&NSDictionary<NSString, Object>>,
context: *mut c_void,
);
#[method(processPendingChanges)]
pub unsafe fn processPendingChanges(&self);
#[method(assignObject:toPersistentStore:)]
pub unsafe fn assignObject_toPersistentStore(
&self,
object: &Object,
store: &NSPersistentStore,
);
#[method_id(@__retain_semantics Other insertedObjects)]
pub unsafe fn insertedObjects(&self) -> Id<NSSet<NSManagedObject>, Shared>;
#[method_id(@__retain_semantics Other updatedObjects)]
pub unsafe fn updatedObjects(&self) -> Id<NSSet<NSManagedObject>, Shared>;
#[method_id(@__retain_semantics Other deletedObjects)]
pub unsafe fn deletedObjects(&self) -> Id<NSSet<NSManagedObject>, Shared>;
#[method_id(@__retain_semantics Other registeredObjects)]
pub unsafe fn registeredObjects(&self) -> Id<NSSet<NSManagedObject>, Shared>;
#[method(undo)]
pub unsafe fn undo(&self);
#[method(redo)]
pub unsafe fn redo(&self);
#[method(reset)]
pub unsafe fn reset(&self);
#[method(rollback)]
pub unsafe fn rollback(&self);
#[method(save:)]
pub unsafe fn save(&self) -> Result<(), Id<NSError, Shared>>;
#[method(refreshAllObjects)]
pub unsafe fn refreshAllObjects(&self);
#[method(lock)]
pub unsafe fn lock(&self);
#[method(unlock)]
pub unsafe fn unlock(&self);
#[method(tryLock)]
pub unsafe fn tryLock(&self) -> bool;
#[method(propagatesDeletesAtEndOfEvent)]
pub unsafe fn propagatesDeletesAtEndOfEvent(&self) -> bool;
#[method(setPropagatesDeletesAtEndOfEvent:)]
pub unsafe fn setPropagatesDeletesAtEndOfEvent(&self, propagatesDeletesAtEndOfEvent: bool);
#[method(retainsRegisteredObjects)]
pub unsafe fn retainsRegisteredObjects(&self) -> bool;
#[method(setRetainsRegisteredObjects:)]
pub unsafe fn setRetainsRegisteredObjects(&self, retainsRegisteredObjects: bool);
#[method(shouldDeleteInaccessibleFaults)]
pub unsafe fn shouldDeleteInaccessibleFaults(&self) -> bool;
#[method(setShouldDeleteInaccessibleFaults:)]
pub unsafe fn setShouldDeleteInaccessibleFaults(
&self,
shouldDeleteInaccessibleFaults: bool,
);
#[method(shouldHandleInaccessibleFault:forObjectID:triggeredByProperty:)]
pub unsafe fn shouldHandleInaccessibleFault_forObjectID_triggeredByProperty(
&self,
fault: &NSManagedObject,
oid: &NSManagedObjectID,
property: Option<&NSPropertyDescription>,
) -> bool;
#[method(stalenessInterval)]
pub unsafe fn stalenessInterval(&self) -> NSTimeInterval;
#[method(setStalenessInterval:)]
pub unsafe fn setStalenessInterval(&self, stalenessInterval: NSTimeInterval);
#[method_id(@__retain_semantics Other mergePolicy)]
pub unsafe fn mergePolicy(&self) -> Id<Object, Shared>;
#[method(setMergePolicy:)]
pub unsafe fn setMergePolicy(&self, mergePolicy: &Object);
#[method(obtainPermanentIDsForObjects:error:)]
pub unsafe fn obtainPermanentIDsForObjects_error(
&self,
objects: &NSArray<NSManagedObject>,
) -> Result<(), Id<NSError, Shared>>;
#[method(mergeChangesFromContextDidSaveNotification:)]
pub unsafe fn mergeChangesFromContextDidSaveNotification(
&self,
notification: &NSNotification,
);
#[method(mergeChangesFromRemoteContextSave:intoContexts:)]
pub unsafe fn mergeChangesFromRemoteContextSave_intoContexts(
changeNotificationData: &NSDictionary,
contexts: &NSArray<NSManagedObjectContext>,
);
#[method_id(@__retain_semantics Other queryGenerationToken)]
pub unsafe fn queryGenerationToken(&self) -> Option<Id<NSQueryGenerationToken, Shared>>;
#[method(setQueryGenerationFromToken:error:)]
pub unsafe fn setQueryGenerationFromToken_error(
&self,
generation: Option<&NSQueryGenerationToken>,
) -> Result<(), Id<NSError, Shared>>;
#[method(automaticallyMergesChangesFromParent)]
pub unsafe fn automaticallyMergesChangesFromParent(&self) -> bool;
#[method(setAutomaticallyMergesChangesFromParent:)]
pub unsafe fn setAutomaticallyMergesChangesFromParent(
&self,
automaticallyMergesChangesFromParent: bool,
);
#[method_id(@__retain_semantics Other transactionAuthor)]
pub unsafe fn transactionAuthor(&self) -> Option<Id<NSString, Shared>>;
#[method(setTransactionAuthor:)]
pub unsafe fn setTransactionAuthor(&self, transactionAuthor: Option<&NSString>);
}
);