diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/FileTransfer.swift b/Sources/ElixxirDAppsSDK/FileTransfer/FileTransfer.swift new file mode 100644 index 0000000000000000000000000000000000000000..4c83984dfc6b51d778e32bc0e27e43df861e6645 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/FileTransfer.swift @@ -0,0 +1,43 @@ +import Bindings + +public struct FileTransfer { + public var closeSend: FileTransferCloseSend + public var maxFileNameLen: FileTransferMaxFilenameLen + public var maxFileSize: FileTransferMaxFileSize + public var maxFileTypeLen: FileTransferMaxFileTypeLen + public var maxPreviewSize: FileTransferMaxPreviewSize + public var receive: FileTransferReceive + public var registerReceivedProgressCallback: FileTransferRegisterReceivedProgressCallback + public var registerSentProgressCallback: FileTransferRegisterSentProgressCallback + public var send: FileTransferSend +} + +extension FileTransfer { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransfer { + FileTransfer( + closeSend: .live(bindingsFileTransfer), + maxFileNameLen: .live(bindingsFileTransfer), + maxFileSize: .live(bindingsFileTransfer), + maxFileTypeLen: .live(bindingsFileTransfer), + maxPreviewSize: .live(bindingsFileTransfer), + receive: .live(bindingsFileTransfer), + registerReceivedProgressCallback: .live(bindingsFileTransfer), + registerSentProgressCallback: .live(bindingsFileTransfer), + send: .live(bindingsFileTransfer) + ) + } +} + +extension FileTransfer { + public static let unimplemented = FileTransfer( + closeSend: .unimplemented, + maxFileNameLen: .unimplemented, + maxFileSize: .unimplemented, + maxFileTypeLen: .unimplemented, + maxPreviewSize: .unimplemented, + receive: .unimplemented, + registerReceivedProgressCallback: .unimplemented, + registerSentProgressCallback: .unimplemented, + send: .unimplemented + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferCloseSend.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferCloseSend.swift new file mode 100644 index 0000000000000000000000000000000000000000..e729435f852bd9db5c124a4408a5ad4db7bf3dd8 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferCloseSend.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferCloseSend { + public var run: (Data) throws -> Void + + public func callAsFunction(transferId: Data) throws { + try run(transferId) + } +} + +extension FileTransferCloseSend { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferCloseSend { + FileTransferCloseSend(run: bindingsFileTransfer.closeSend) + } +} + +extension FileTransferCloseSend { + public static let unimplemented = FileTransferCloseSend( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileSize.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileSize.swift new file mode 100644 index 0000000000000000000000000000000000000000..02aea297f2b67646e429635b01d5a3a5015d7d40 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileSize.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferMaxFileSize { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FileTransferMaxFileSize { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferMaxFileSize { + FileTransferMaxFileSize(run: bindingsFileTransfer.maxFileSize) + } +} + +extension FileTransferMaxFileSize { + public static let unimplemented = FileTransferMaxFileSize( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileTypeLen.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileTypeLen.swift new file mode 100644 index 0000000000000000000000000000000000000000..2d3fe39282c2c9fafbee7986bfec70ae6648b14e --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileTypeLen.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferMaxFileTypeLen { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FileTransferMaxFileTypeLen { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferMaxFileTypeLen { + FileTransferMaxFileTypeLen(run: bindingsFileTransfer.maxFileTypeLen) + } +} + +extension FileTransferMaxFileTypeLen { + public static let unimplemented = FileTransferMaxFileTypeLen( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFilenameLen.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFilenameLen.swift new file mode 100644 index 0000000000000000000000000000000000000000..9db1d198331b19148eda492953e1fade5252b00b --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFilenameLen.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferMaxFilenameLen { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FileTransferMaxFilenameLen { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferMaxFilenameLen { + FileTransferMaxFilenameLen(run: bindingsFileTransfer.maxFileNameLen) + } +} + +extension FileTransferMaxFilenameLen { + public static let unimplemented = FileTransferMaxFilenameLen( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxPreviewSize.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxPreviewSize.swift new file mode 100644 index 0000000000000000000000000000000000000000..a21163b2b7bf46821348e2c8ea499e55355b06ad --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxPreviewSize.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferMaxPreviewSize { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FileTransferMaxPreviewSize { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferMaxPreviewSize { + FileTransferMaxPreviewSize(run: bindingsFileTransfer.maxPreviewSize) + } +} + +extension FileTransferMaxPreviewSize { + public static let unimplemented = FileTransferMaxPreviewSize( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferReceive.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferReceive.swift new file mode 100644 index 0000000000000000000000000000000000000000..bd79c1a5997bd2c0116d793603d9a53877013cc8 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferReceive.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferReceive { + public var run: (Data) throws -> Data + + public func callAsFunction(transferId: Data) throws -> Data { + try run(transferId) + } +} + +extension FileTransferReceive { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferReceive { + FileTransferReceive(run: bindingsFileTransfer.receive) + } +} + +extension FileTransferReceive { + public static let unimplemented = FileTransferReceive( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterReceivedProgressCallback.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterReceivedProgressCallback.swift new file mode 100644 index 0000000000000000000000000000000000000000..b094b3ca0e91c3457e084dbf6f398c8a3882d74d --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterReceivedProgressCallback.swift @@ -0,0 +1,33 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferRegisterReceivedProgressCallback { + public var run: (Data, String, FileTransferProgressCallback) throws -> Void + + public func callAsFunction( + transferId: Data, + period: String, + callback: FileTransferProgressCallback + ) throws { + try run(transferId, period, callback) + } +} + +extension FileTransferRegisterReceivedProgressCallback { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) + -> FileTransferRegisterReceivedProgressCallback { + FileTransferRegisterReceivedProgressCallback { transferId, period, callback in + try bindingsFileTransfer.registerReceivedProgressCallback( + transferId, + callback: callback.makeBindingsFileTransferReceiveProgressCallback(), + period: period + ) + } + } +} + +extension FileTransferRegisterReceivedProgressCallback { + public static let unimplemented = FileTransferRegisterReceivedProgressCallback( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterSentProgressCallback.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterSentProgressCallback.swift new file mode 100644 index 0000000000000000000000000000000000000000..c1cfcbc40b0cf0c2d9c683af90793f24e061b4a7 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterSentProgressCallback.swift @@ -0,0 +1,33 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferRegisterSentProgressCallback { + public var run: (Data, String, FileTransferProgressCallback) throws -> Void + + public func callAsFunction( + transferId: Data, + period: String, + callback: FileTransferProgressCallback + ) throws { + try run(transferId, period, callback) + } +} + +extension FileTransferRegisterSentProgressCallback { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) + -> FileTransferRegisterSentProgressCallback { + FileTransferRegisterSentProgressCallback { transferId, period, callback in + try bindingsFileTransfer.registerSentProgressCallback( + transferId, + callback: callback.makeBindingsFileTransferSentProgressCallback(), + period: period + ) + } + } +} + +extension FileTransferRegisterSentProgressCallback { + public static let unimplemented = FileTransferRegisterSentProgressCallback( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferSend.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferSend.swift new file mode 100644 index 0000000000000000000000000000000000000000..a23f859fd76a89be876aaa4ae5b7239cff059353 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferSend.swift @@ -0,0 +1,55 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferSend { + public struct Params: Equatable { + public init( + payload: FileSend, + recipientId: Data, + paramsJSON: Data, + retry: Float, + period: String + ) { + self.payload = payload + self.recipientId = recipientId + self.paramsJSON = paramsJSON + self.retry = retry + self.period = period + } + + public var payload: FileSend + public var recipientId: Data + public var paramsJSON: Data + public var retry: Float + public var period: String + } + + public var run: (Params, FileTransferProgressCallback) throws -> Data + + public func callAsFunction( + params: Params, + callback: FileTransferProgressCallback + ) throws -> Data { + try run(params, callback) + } +} + +extension FileTransferSend { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferSend { + FileTransferSend { params, callback in + try bindingsFileTransfer.send( + params.payload.encode(), + recipientID: params.recipientId, + retry: params.retry, + callback: callback.makeBindingsFileTransferSentProgressCallback(), + period: params.period + ) + } + } +} + +extension FileTransferSend { + public static let unimplemented = FileTransferSend( + run: XCTUnimplemented("\(Self.self)") + ) +}