UpstreamManager
public class UpstreamManager : NSObject
アップストリームを管理するクラス。
-
再送回数のデフォルト値。0回が設定されています。
Declaration
Swift
public static let defaultRetryCount: Int
-
UpstreamSpecRequestのリトライ回数。5回が設定されています。
Declaration
Swift
public static let defaultRetryCountOfRequestingSpecs: Int
-
オブジェクトを識別するためのタグ。
Declaration
Swift
public var tag: Int
-
開いているアップストリームのストリームIDのリスト。
Declaration
Swift
public var upstreamIds: [Int] { get }
-
アップストリームを開いて、開いたストリームのストリームIDを返します。 (再送処理を行う場合、再送用のストリームIDは内部で管理するため返しません)
Declaration
Swift
public func open(measurementId: String, srcEdgeId: String, dstEdgeIds: [String]? = nil, store: Bool = true, retryCount: Int = IntdashClient.UpstreamManager.defaultRetryCount, sectionUpdateInterval: TimeInterval? = nil) throws -> Int
Parameters
measurementId
開くアップストリームから送信するデータが紐付けられる計測のUUID
srcEdgeId
送信元エッジのUUID
dstEdgeIds
送信先エッジのUUIDのリスト
store
サーバーへの保存フラグ
retryCount
再送のリトライ回数(0の場合は再送しません)
sectionUpdateInterval
セクションの長さ
nilの場合はデフォルト値である1秒が適用されます。Return Value
開いたアップストリームのストリームID
-
openForResend(measurementId:
srcEdgeId: dstEdgeIds: sectionUpdateInterval: resendSections: lastSectionId: ) 再送用にアップストリームを開いて、開いたストリームのストリームIDを返します。 このメソッドを用いて開いたストリームは、リアルタイムデータの送信に使用してはならず、
resendSections
で指定したセクションに所属する再送データの送信のみに使用することができます。Declaration
Swift
public func openForResend(measurementId: String, srcEdgeId: String, dstEdgeIds: [String]? = nil, sectionUpdateInterval: TimeInterval? = nil, resendSections: [Int : Int] = [Int: Int](), lastSectionId: Int?) throws -> Int
Parameters
measurementId
開くアップストリームから送信するデータが紐付けられる計測のUUID
srcEdgeId
送信元エッジのUUID
dstEdgeIds
送信先エッジのUUIDのリスト
resendSections
開いたストリームで送信するセクションの
sectionIndex
とsectionId
のリスト [sectionIndex
:sectionId
]
本引数に引き渡すsectionIndex
とsectionId
は、IntdashClientUpstreamManagerDelegate.upstreamManager(_:didGeneratedSesion:sectionIndex:streamId:final:sentCount:startOfElapsedTime:endOfElapsedTime:)
により取得することができます。 空の場合は、開かれたストリームを使用して送信されるデータ全てを再送扱いとして送信します。sectionUpdateInterval
セクションの長さ
nilの場合はデフォルト値である1秒が適用されます。Return Value
開いたアップストリームのストリームID
-
アップストリームを閉じます。また、設定済みのストリームIDを全てクリアします。
Declaration
Swift
public func close(completion: @escaping (Error?) -> ())
Parameters
completion
ストリーム終了時のコールバック
-
指定したストリームIDのアップストリームを閉じます。また、対象のストリームIDをクリアします。
Declaration
Swift
public func close(streamIds: [Int], completion: @escaping (Error?) -> ())
Parameters
streamIds
閉じるダウンストームのストリームIDを格納した配列
completion
ストリーム終了時のコールバック
-
アップストリームを再接続します。送信づまりが発生した場合に、溜まったキューデータを一旦解放して最新のデータから送信を開始することができます。
Declaration
Swift
public func reconnect(completion: ((Bool) -> ())? = nil)
Parameters
completion
再接続完了時のコールバック
-
再送用のデータをクリアします。
Declaration
Swift
public func clearResendData(streamIds: [Int])
Parameters
streamIds
再送用のデータをクリアする対象のストリームIDの配列
-
新しい計測の作成をリクエストします。
Declaration
Swift
public func requestMeasurementId(edgeUuid: String, completion: @escaping (_ measurementUuid: String?, _ error: Error?) -> ())
Parameters
edgeUuid
生成する計測が紐づくエッジのUUID
completion
取得完了時のコールバック
measurementUuid
生成された計測のUUID
error
エラー情報
-
クライアントが保持しているアップストリームの状態をサーバーと同期します。
Declaration
Swift
public func sync(removeClosedStream: Bool = true, retryCount: Int = IntdashClient.UpstreamManager.defaultRetryCountOfRequestingSpecs, completion: @escaping (Error?)->())
Parameters
removeClosedStream
閉じられたストリームを削除するかどうか
retryCount
同期失敗時のリトライ回数
completion
処理完了時のコールバック
-
閉じられているアップストリームを破棄します。
Declaration
Swift
public func removeClosedUpstream()
-
最初のデータ(SOSマーカーと基準時刻)を送信します。
sendUnit(_:elapsedTime:streamId:)
でデータを送信開始する前に、最初のSOSマーカーと基準時刻を送信するために使用します。See also
IntdashData.DataBaseTime.TimeType
Declaration
Swift
public func sendFirstData(_ baseTime: TimeInterval, streamId: Int, channelNum: Int, baseTimeType: IntdashData.DataBaseTime.TimeType = .edge) throws
Parameters
baseTime
基準時間
streamId
ストリームID
channelNum
チャンネル番号(0を設定してください)
baseTimeType
基準時間の種別(デフォルトはEdgeRTC)
-
最後のデータ(EOSマーカー)を送信します。
sendUnit(_:elapsedTime:streamId:)
でデータの送信終了後に、EOSマーカーを送信するために使用します。Declaration
Swift
public func sendLastData(streamId: Int) throws
Parameters
streamId
ストリームID
-
IntdashData
型のデータを送信します。 データを送り始める前に、sendFirstData(_:streamId:channelNum:baseTimeType:)
を使用して、 最初のSOSマーカーと基準時刻を送らなければなりません。 このメソッドで送信されるデータのチャンネル番号は、sendFirstData(_:streamId:channelNum:baseTimeType:)
で指定したものが使用されます。IntdashData
型の中でもIntdashData.DataGeneralSensor
型を送信する際には、 より簡便にGeneralSensorConvertible
型を用いてデータ送信が可能なsendSensor(_:elapsedTime:streamId:)
を使用することができます。Declaration
Swift
public func sendUnit(_ data: IntdashData, elapsedTime: TimeInterval, streamId: Int) throws
Parameters
data
IntdashData
型のデータelapsedTime
基準時刻からの経過時間
streamId
ストリームID
-
IntdashData
型のデータを送信します。 データを送り始める前に、sendFirstData(_:streamId:channelNum:baseTimeType:)
を使用して、 最初のSOSマーカーと基準時刻を送らなければなりません。IntdashData
型の中でもIntdashData.DataGeneralSensor
型を送信する際には、 より簡便にGeneralSensorConvertible
型を用いてデータ送信が可能なsendSensor(_:elapsedTime:streamId:)
を使用することができます。Declaration
Swift
public func sendUnit(_ data: IntdashData, elapsedTime: TimeInterval, streamId: Int, channelNum: Int) throws
Parameters
data
IntdashData
型のデータelapsedTime
基準時刻からの経過時間
streamId
ストリームID
channelNum
チャンネル番号
-
IntdashData
型のデータを送信します。 データを送り始める前に、sendFirstData(_:streamId:channelNum:baseTimeType:)
を使用して、 最初のSOSマーカーと基準時刻を送らなければなりません。 このメソッドで送信されるデータのチャンネル番号は、sendFirstData(_:streamId:channelNum:baseTimeType:)
で指定したものが使用されます。IntdashData
型の中でもIntdashData.DataGeneralSensor
型を送信する際には、 より簡便にGeneralSensorConvertible
型を用いてデータ送信が可能なsendSensor(_:elapsedTime:streamId:)
を使用することができます。Declaration
Swift
public func sendUnits(_ data: [IntdashData], elapsedTime: TimeInterval, streamId: Int) throws
Parameters
data
IntdashData
型の配列elapsedTime
基準時刻からの経過時間
streamId
ストリームID
-
IntdashData
型のデータを送信します。 データを送り始める前に、sendFirstData(_:streamId:channelNum:baseTimeType:)
を使用して、 最初のSOSマーカーと基準時刻を送らなければなりません。IntdashData
型の中でもIntdashData.DataGeneralSensor
型を送信する際には、 より簡便にGeneralSensorConvertible
型を用いてデータ送信が可能なsendSensor(_:elapsedTime:streamId:)
を使用することができます。Declaration
Swift
public func sendUnits(_ data: [IntdashData], elapsedTime: TimeInterval, streamId: Int, channelNum: Int) throws
Parameters
data
IntdashData
型の配列elapsedTime
基準時刻からの経過時間
streamId
ストリームID
channelNum
チャンネル番号
-
基準時間を送信します。
sendFirstData(_:streamId:channelNum:baseTimeType:)
で最初に送信した種別の基準時刻は、このメソッドを使用して送信する必要はありません。Declaration
Swift
public func sendBaseTime(_ baseTime: TimeInterval, baseTimeType: IntdashData.DataBaseTime.TimeType, streamId: Int) throws
Parameters
baseTime
基準時間
baseTimeType
基準時間の種別
streamId
ストリームID
-
GeneralSensorConvertible
型のデータを送信します。 データを送り始める前に、sendFirstData(_:streamId:channelNum:baseTimeType:)
を使用して、 最初のSOSマーカーと基準時刻を送らなければなりません。Declaration
Swift
public func sendSensor(_ sensor: GeneralSensorConvertible, elapsedTime: TimeInterval, streamId: Int) throws
Parameters
sensor
センサーデータ
elapsedTime
基準時刻からの経過時間
streamId
ストリームID
-
GeneralSensorConvertible
型のデータを送信します。 データを送り始める前に、sendFirstData(_:streamId:channelNum:baseTimeType:)
を使用して、 最初のSOSマーカーと基準時刻を送らなければなりません。Declaration
Swift
public func sendSensors(_ sensors: [GeneralSensorConvertible], elapsedTime: TimeInterval, streamId: Int) throws
Parameters
sensors
センサーデータの配列
elapsedTime
基準時刻からの経過時間
streamId
ストリームID
-
Delegateを追加します。
Declaration
Swift
public func addDelegate(delegate: IntdashClientUpstreamManagerDelegate)
Parameters
delegate
追加するDelegate
-
Delegateを削除します。
Declaration
Swift
public func removeDelegate(delegate: IntdashClientUpstreamManagerDelegate)
Parameters
delegate
削除するDelegate
-
割り当てを解除します。
Declaration
Swift
public func dispose()