//===----------------------------------------------------------------------===// // // This source file is part of the SwiftLibs open source project // // Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors // Licensed under the EUPL 1.2 or later. // // See LICENSE.txt for license information // See CONTRIBUTORS.txt for the list of SwiftLibs project authors // //===----------------------------------------------------------------------===// #if canImport(CoreData) import CoreData public protocol Service { // MARK: Properties /// The main managed object context. var viewContext: NSManagedObjectContext { get } // MARK: Functions /// Create a private queue context. /// - Returns: A concurrent `NSManagedObjectContext` context instance ready to use. func makeTaskContext() -> NSManagedObjectContext /// Create a child context of the view context. /// - Returns: A generated child `NSManagedObjectContext` context instance ready to use. func makeChildContext() -> NSManagedObjectContext /// Save a given context. /// - Parameter context: A `NSManagedObjectContext` context instance to save. func save(context: NSManagedObjectContext) throws /// Save a given child context as well as its respective parent context. /// - Parameter context: A child `NSManagedObjectContext` context instance to save. func save(childContext context: NSManagedObjectContext) throws } #endif