30 lines
1.2 KiB
Swift
30 lines
1.2 KiB
Swift
import Foundation
|
|
import TermindRemoteInfrastructure
|
|
|
|
extension MobileWorkspaceConnectionServices {
|
|
static var live: MobileWorkspaceConnectionServices {
|
|
live(coordinator: RemoteConnectionCoordinator())
|
|
}
|
|
|
|
static func live(coordinator: RemoteConnectionCoordinator) -> MobileWorkspaceConnectionServices {
|
|
return MobileWorkspaceConnectionServices(
|
|
makePTYChannel: { output, exit, shellIntegration in
|
|
coordinator.makePTYChannel(output: output, exit: exit, shellIntegration: shellIntegration)
|
|
},
|
|
connectSSH: { session, request, shellIntegrationEnabled, columns, rows, progress in
|
|
try await session.connect(
|
|
using: request,
|
|
shellIntegrationEnabled: shellIntegrationEnabled,
|
|
columns: columns,
|
|
rows: rows,
|
|
progress: progress
|
|
)
|
|
},
|
|
connectSFTP: { request, progress, connectionFailure in
|
|
try await coordinator.connectSFTP(
|
|
using: request, progress: progress, connectionFailure: connectionFailure)
|
|
},
|
|
writeSSH: { session, data in await session.write(data) })
|
|
}
|
|
}
|