You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@teaclave.apache.org by ms...@apache.org on 2021/02/17 21:53:41 UTC
[incubator-teaclave] 01/03: Make structs and functions public
This is an automated email from the ASF dual-hosted git repository.
mssun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave.git
commit 0dc018eacfd722f0bff067279ad52e1888061f48
Author: Mingshen Sun <bo...@mssun.me>
AuthorDate: Tue Feb 16 17:02:19 2021 -0800
Make structs and functions public
---
.../TeaclaveClientSDK/TeaclaveClientSDK.swift | 212 ++++++++++++++-------
1 file changed, 142 insertions(+), 70 deletions(-)
diff --git a/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK/TeaclaveClientSDK.swift b/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK/TeaclaveClientSDK.swift
index e24d696..22af9dc 100644
--- a/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK/TeaclaveClientSDK.swift
+++ b/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK/TeaclaveClientSDK.swift
@@ -20,7 +20,7 @@
import Foundation
import TeaclaveClientSDK.CTeaclaveClientSDK
-enum TeaclaveClientError: Error {
+public enum TeaclaveClientError: Error {
case userLoginError
case userRegisterError
case setCredentialError
@@ -34,89 +34,161 @@ enum TeaclaveClientError: Error {
case approveTaskError
}
-struct RegisterFunctionRequest: Encodable {
- let request: String = "register_function_request"
- let name: String
- let description: String
- let executor_type: String
- let `public`: Bool = true
- let payload: Array<Int>
- let arguments: Set<String>
- let inputs: Array<Dictionary<String, String>>
- let outputs: Array<Dictionary<String, String>>
+public struct RegisterFunctionRequest: Encodable {
+ public let request: String = "register_function_request"
+ public let name: String
+ public let description: String
+ public let executor_type: String
+ public let `public`: Bool = true
+ public let payload: [Int]
+ public let arguments: Set<String>
+ public let inputs: [[String: String]]
+ public let outputs: [[String: String]]
+
+ public init(name: String, description: String, executor_type: String, payload: [Int], arguments: Set<String>, inputs: [[String: String]], outputs: [[String: String]]) {
+ self.name = name
+ self.description = description
+ self.executor_type = executor_type
+ self.payload = payload
+ self.arguments = arguments
+ self.inputs = inputs
+ self.outputs = outputs
+ }
}
-struct RegisterFunctionResponse: Codable {
- let function_id: String
+public struct RegisterFunctionResponse: Codable {
+ public let function_id: String
+
+ public init(function_id: String) {
+ self.function_id = function_id
+ }
}
-struct OwnerList: Encodable {
- let data_name: String
- let uids: Array<String>
+public struct OwnerList: Encodable {
+ public let data_name: String
+ public let uids: [String]
+
+ public init(data_name: String, uids: [String]) {
+ self.data_name = data_name
+ self.uids = uids
+ }
}
-struct CreateTaskRequest: Encodable {
- let request: String = "register_create_task"
- let function_id: String
- let function_arguments: String
- let executor: String
- let inputs_ownership: Array<OwnerList>
- let outputs_ownership: Array<OwnerList>
+public struct CreateTaskRequest: Encodable {
+ public let request: String = "register_create_task"
+ public let function_id: String
+ public let function_arguments: String
+ public let executor: String
+ public let inputs_ownership: [OwnerList]
+ public let outputs_ownership: [OwnerList]
+
+ public init(function_id: String, function_arguments: String, executor: String, inputs_ownership: [OwnerList], outputs_ownership: [OwnerList]) {
+ self.function_id = function_id
+ self.function_arguments = function_arguments
+ self.executor = executor
+ self.inputs_ownership = inputs_ownership
+ self.outputs_ownership = outputs_ownership
+ }
}
-struct CreateTaskResponse: Codable {
- let task_id: String
+public struct CreateTaskResponse: Codable {
+ public let task_id: String
+
+ public init(task_id: String) {
+ self.task_id = task_id
+ }
}
-struct CryptoInfo: Codable {
- let schema: String
- let key: Array<Int>
- let iv: Array<Int>
+public struct CryptoInfo: Codable {
+ public let schema: String
+ public let key: [Int]
+ public let iv: [Int]
+
+ public init(schema: String, key: [Int], iv: [Int]) {
+ self.schema = schema
+ self.key = key
+ self.iv = iv
+ }
}
-struct RegisterInputFileRequest: Encodable {
- let request: String = "register_input_file"
- let url: String
- let cmac: String
- let crypto_info: CryptoInfo
+public struct RegisterInputFileRequest: Encodable {
+ public let request: String = "register_input_file"
+ public let url: String
+ public let cmac: String
+ public let crypto_info: CryptoInfo
+
+ public init(url: String, cmac: String, crypto_info: CryptoInfo) {
+ self.url = url
+ self.cmac = cmac
+ self.crypto_info = crypto_info
+ }
}
-struct RegisterInputFileResponse: Codable {
- let data_id: String
+public struct RegisterInputFileResponse: Codable {
+ public let data_id: String
+
+ public init(data_id: String) {
+ self.data_id = data_id
+ }
}
-struct RegisterOutputFileRequest: Encodable {
- let request: String = "register_output_file"
- let url: String
- let cmac: String
- let crypto_info: CryptoInfo
+public struct RegisterOutputFileRequest: Encodable {
+ public let request: String = "register_output_file"
+ public let url: String
+ public let cmac: String
+ public let crypto_info: CryptoInfo
+
+ public init(url: String, cmac: String, crypto_info: CryptoInfo) {
+ self.url = url
+ self.cmac = cmac
+ self.crypto_info = crypto_info
+ }
}
-struct RegisterOutputFileResponse: Codable {
- let data_id: String
+public struct RegisterOutputFileResponse: Codable {
+ public let data_id: String
+
+ public init(data_id: String) {
+ self.data_id = data_id
+ }
}
-struct DataMap: Codable {
- let data_name: String
- let data_id: String
+public struct DataMap: Codable {
+ public let data_name: String
+ public let data_id: String
+
+ public init(data_name: String, data_id: String) {
+ self.data_name = data_name
+ self.data_id = data_id
+ }
}
-struct AssignDataRequest: Encodable {
- let request: String = "assign_data"
- let task_id: String
- let inputs: Array<DataMap>
- let outputs: Array<DataMap>
+public struct AssignDataRequest: Encodable {
+ public let request: String = "assign_data"
+ public let task_id: String
+ public let inputs: [DataMap]
+ public let outputs: [DataMap]
+
+ public init(task_id: String, inputs: [DataMap], outputs: [DataMap]) {
+ self.task_id = task_id
+ self.inputs = inputs
+ self.outputs = outputs
+ }
}
-struct ApproveTaskRequest: Encodable {
- let request: String = "approve_task"
- let task_id: String
+public struct ApproveTaskRequest: Encodable {
+ public let request: String = "approve_task"
+ public let task_id: String
+
+ public init(task_id: String) {
+ self.task_id = task_id
+ }
}
-class AuthenticationClient {
+public class AuthenticationClient {
internal let cClient: OpaquePointer
- init?(address: String, enclave_info_path: String, as_root_ca_cert_path: String) {
+ public init?(address: String, enclave_info_path: String, as_root_ca_cert_path: String) {
let address_c_string = address.cString(using: .ascii)
let enclave_info_path_address_c_string = enclave_info_path.cString(using: .ascii)
let as_root_ca_cert_c_string = as_root_ca_cert_path.cString(using: .ascii)
@@ -127,7 +199,7 @@ class AuthenticationClient {
self.cClient = client
}
- func register(id: String, password: String) -> Result<(), TeaclaveClientError> {
+ public func register(id: String, password: String) -> Result<Void, TeaclaveClientError> {
let id_c_string = id.cString(using: .ascii)
let password_c_string = password.cString(using: .ascii)
@@ -138,7 +210,7 @@ class AuthenticationClient {
return Result.success(())
}
- func login(id: String, password: String) -> Result<String, TeaclaveClientError> {
+ public func login(id: String, password: String) -> Result<String, TeaclaveClientError> {
let id_c_string = id.cString(using: .ascii)
let password_c_string = password.cString(using: .ascii)
let token_c_string = UnsafeMutablePointer<CChar>.allocate(capacity: 1024)
@@ -150,7 +222,7 @@ class AuthenticationClient {
token_len.deallocate()
return Result.failure(.userLoginError)
}
- let token = String(cString: token_c_string)
+ let token = String(cString: token_c_string)
token_c_string.deallocate()
token_len.deallocate()
@@ -162,10 +234,10 @@ class AuthenticationClient {
}
}
-class FrontendClient {
+public class FrontendClient {
internal let cClient: OpaquePointer
- init?(address: String, enclave_info_path: String, as_root_ca_cert_path: String) {
+ public init?(address: String, enclave_info_path: String, as_root_ca_cert_path: String) {
let address_c_string = address.cString(using: .ascii)
let enclave_info_path_address_c_string = enclave_info_path.cString(using: .ascii)
let as_root_ca_cert_c_string = as_root_ca_cert_path.cString(using: .ascii)
@@ -180,7 +252,7 @@ class FrontendClient {
teaclave_close_frontend_service(cClient)
}
- func set_credential(id: String, token: String) -> Result<(), TeaclaveClientError> {
+ public func set_credential(id: String, token: String) -> Result<Void, TeaclaveClientError> {
let id_c_string = id.cString(using: .ascii)
let token_c_string = token.cString(using: .ascii)
@@ -191,7 +263,7 @@ class FrontendClient {
return Result.success(())
}
- func register_function(with request: RegisterFunctionRequest) -> Result<RegisterFunctionResponse, TeaclaveClientError> {
+ public func register_function(with request: RegisterFunctionRequest) -> Result<RegisterFunctionResponse, TeaclaveClientError> {
let data = try! JSONEncoder().encode(request)
let json_string = String(data: data, encoding: .ascii)!
@@ -210,7 +282,7 @@ class FrontendClient {
return Result.success(response)
}
- func create_task(with request: CreateTaskRequest) -> Result<CreateTaskResponse, TeaclaveClientError> {
+ public func create_task(with request: CreateTaskRequest) -> Result<CreateTaskResponse, TeaclaveClientError> {
let data = try! JSONEncoder().encode(request)
let json_string = String(data: data, encoding: .ascii)!
@@ -230,7 +302,7 @@ class FrontendClient {
return Result.success(response)
}
- func register_input_file(with request: RegisterInputFileRequest) -> Result<RegisterInputFileResponse, TeaclaveClientError> {
+ public func register_input_file(with request: RegisterInputFileRequest) -> Result<RegisterInputFileResponse, TeaclaveClientError> {
let data = try! JSONEncoder().encode(request)
let json_string = String(data: data, encoding: .ascii)!
@@ -250,7 +322,7 @@ class FrontendClient {
return Result.success(response)
}
- func register_output_file(with request: RegisterOutputFileRequest) -> Result<RegisterOutputFileResponse, TeaclaveClientError> {
+ public func register_output_file(with request: RegisterOutputFileRequest) -> Result<RegisterOutputFileResponse, TeaclaveClientError> {
let data = try! JSONEncoder().encode(request)
let json_string = String(data: data, encoding: .ascii)!
@@ -270,7 +342,7 @@ class FrontendClient {
return Result.success(response)
}
- func assign_data(with request: AssignDataRequest) -> Result<(), TeaclaveClientError> {
+ public func assign_data(with request: AssignDataRequest) -> Result<Void, TeaclaveClientError> {
let data = try! JSONEncoder().encode(request)
let json_string = String(data: data, encoding: .ascii)!
@@ -286,7 +358,7 @@ class FrontendClient {
return Result.success(())
}
- func invoke_task(task_id: String) -> Result<(), TeaclaveClientError> {
+ public func invoke_task(task_id: String) -> Result<Void, TeaclaveClientError> {
let task_id_c_string = task_id.cString(using: .ascii)
let ret = teaclave_invoke_task(cClient, task_id_c_string)
guard ret == 0 else {
@@ -296,7 +368,7 @@ class FrontendClient {
return Result.success(())
}
- func approve_task(task_id: String) -> Result<(), TeaclaveClientError> {
+ public func approve_task(task_id: String) -> Result<Void, TeaclaveClientError> {
let request = ApproveTaskRequest(task_id: task_id)
let data = try! JSONEncoder().encode(request)
let json_string = String(data: data, encoding: .ascii)!
@@ -312,7 +384,7 @@ class FrontendClient {
return Result.success(())
}
- func get_task_result(task_id: String) -> Result<String, TeaclaveClientError> {
+ public func get_task_result(task_id: String) -> Result<String, TeaclaveClientError> {
let task_id_c_string = task_id.cString(using: .ascii)
let response_c_string = UnsafeMutablePointer<CChar>.allocate(capacity: 10240)
let response_len = UnsafeMutablePointer<Int>.allocate(capacity: 1)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@teaclave.apache.org
For additional commands, e-mail: commits-help@teaclave.apache.org