in Sources/XCRemoteCache/Network/RemoteNetworkClientAbstractFactory.swift [50:67]
func build() throws -> RemoteNetworkClient {
let downloadURLBuilder = try urlBuilderFactory(downloadStreamURL)
guard !upstreamStreamURL.isEmpty else {
return RemoteNetworkClientImpl(networkClient, downloadURLBuilder)
}
switch mode {
case .producer, .producerFast:
let upstreamBuilders = try upstreamStreamURL.map(urlBuilderFactory)
return ReplicatedRemotesNetworkClient(
networkClient,
download: downloadURLBuilder,
uploads: upstreamBuilders,
uploadBatchSize: uploadBatchSize
)
case .consumer:
return RemoteNetworkClientImpl(networkClient, downloadURLBuilder)
}
}