UpstreamManager

public class UpstreamManager : NSObject

アップストリームを管理するクラス。

  • 再送回数のデフォルト値。0回が設定されています。

    Declaration

    Swift

    public static let defaultRetryCount: Int
  • UpstreamSpecRequestのリトライ回数。5回が設定されています。

    Declaration

    Swift

    public static let defaultRetryCountOfRequestingSpecs: Int
  • tag

    オブジェクトを識別するためのタグ。

    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

  • 再送用にアップストリームを開いて、開いたストリームのストリーム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

    開いたストリームで送信するセクションの sectionIndexsectionId のリスト [ sectionIndex : sectionId ]
    本引数に引き渡す sectionIndexsectionId は、 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マーカーと基準時刻を送信するために使用します。

    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()