mirror of
https://github.com/apple/container.git
synced 2026-09-11 10:15:38 +00:00
make Import and Export public types (#284)
Signed-off-by: crosbymichael <michael_crosby@apple.com>
This commit is contained in:
@@ -24,14 +24,14 @@ import Crypto
|
||||
import Foundation
|
||||
|
||||
extension ImageStore {
|
||||
internal struct ExportOperation {
|
||||
public struct ExportOperation: Sendable {
|
||||
let name: String
|
||||
let tag: String
|
||||
let contentStore: ContentStore
|
||||
let client: ContentClient
|
||||
let progress: ProgressHandler?
|
||||
|
||||
init(name: String, tag: String, contentStore: ContentStore, client: ContentClient, progress: ProgressHandler? = nil) {
|
||||
public init(name: String, tag: String, contentStore: ContentStore, client: ContentClient, progress: ProgressHandler? = nil) {
|
||||
self.contentStore = contentStore
|
||||
self.client = client
|
||||
self.progress = progress
|
||||
@@ -40,7 +40,7 @@ extension ImageStore {
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
internal func export(index: Descriptor, platforms: (Platform) -> Bool) async throws -> Descriptor {
|
||||
public func export(index: Descriptor, platforms: (Platform) -> Bool) async throws -> Descriptor {
|
||||
var pushQueue: [[Descriptor]] = []
|
||||
var current: [Descriptor] = [index]
|
||||
while !current.isEmpty {
|
||||
|
||||
@@ -22,7 +22,7 @@ import ContainerizationOCI
|
||||
import Foundation
|
||||
|
||||
extension ImageStore {
|
||||
internal struct ImportOperation {
|
||||
public struct ImportOperation: Sendable {
|
||||
static let decoder = JSONDecoder()
|
||||
|
||||
let client: ContentClient
|
||||
@@ -31,7 +31,7 @@ extension ImageStore {
|
||||
let progress: ProgressHandler?
|
||||
let name: String
|
||||
|
||||
init(name: String, contentStore: ContentStore, client: ContentClient, ingestDir: URL, progress: ProgressHandler? = nil) {
|
||||
public init(name: String, contentStore: ContentStore, client: ContentClient, ingestDir: URL, progress: ProgressHandler? = nil) {
|
||||
self.client = client
|
||||
self.ingestDir = ingestDir
|
||||
self.contentStore = contentStore
|
||||
@@ -40,7 +40,7 @@ extension ImageStore {
|
||||
}
|
||||
|
||||
/// Pull the required image layers for the provided descriptor and platform(s) into the given directory using the provided client. Returns a descriptor to the Index manifest.
|
||||
internal func `import`(root: Descriptor, matcher: (ContainerizationOCI.Platform) -> Bool) async throws -> Descriptor {
|
||||
public func `import`(root: Descriptor, matcher: (ContainerizationOCI.Platform) -> Bool) async throws -> Descriptor {
|
||||
var toProcess = [root]
|
||||
while !toProcess.isEmpty {
|
||||
// Count the total number of blobs and their size
|
||||
@@ -123,14 +123,14 @@ extension ImageStore {
|
||||
for _ in 0..<8 {
|
||||
if let desc = iterator.next() {
|
||||
group.addTask {
|
||||
try await fetch(desc)
|
||||
try await self.fetch(desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
for try await _ in group {
|
||||
if let desc = iterator.next() {
|
||||
group.addTask {
|
||||
try await fetch(desc)
|
||||
try await self.fetch(desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user