iscp.Downstream - 下り用ストリーム

ダウンストリームを表すクラス

class Downstream[ソース]

ダウンストリームを表すクラスです。

注意

このクラスのオブジェクトは、必ず iscp.Conn の open_downstream() を使用して生成してください。

async with await Conn.connect(...) as conn:
  async with await conn.open_downstream(...) as downstream:
    pass

このコードは以下のコードと等価です。

async with await Conn.connect(...) as conn:
  downstream = await conn.open_downstream(...)
  try:
      pass
  finally:
      await downstream.close()
async chunks(*, timeout=None)[ソース]

ダウンストリームチャンクを受信します。

パラメータ:

timeout (Optional[float]) -- 読み込みタイムアウト(秒)。指定しない場合はタイムアウトしません。

列挙:

iscp.DownstreamChunk -- ダウンストリームチャンク

サンプル

>>> with conn.open_downstream(...) as downstream:
      async for msg in downstream.chunks():
          print(msg)
async close()[ソース]

ダウンストリームを閉じます。

async metadatas(*, timeout=None)[ソース]

タイムアウトを指定して、ダウンストリームメタデータを受信します。

パラメータ:

timeout (Optional[float]) -- 読み込みタイムアウト(秒)。指定しない場合はタイムアウトしません。

列挙:

iscp.DownstreamMetadata -- ダウンストリームメタデータ

サンプル

>>> with conn.open_downstream(...) as downstream:
      async for msg in downstream.metadatas():
          print(msg)
property ack_interval

Ack返却間隔(秒)を取得します。

戻り値:

Ack返却間隔(秒)

戻り値の型:

float

property expiry_interval

有効期限を取得します。

戻り値:

ストリームの有効期限(秒)

戻り値の型:

float

property filters

ダウンストリームフィルターを取得します。

戻り値:

ダウンストリームフィルターのリスト

戻り値の型:

List[iscp.DownstreamFilter]

property id

ストリームIDを取得します。

戻り値:

ストリームID

戻り値の型:

UUID

property qos

QoSを取得します。

戻り値:

QoS

戻り値の型:

iscp.QoS

property server_time

DownstreamResponseで返却されたサーバー時刻を取得します。

戻り値:

DownstreamResponseで返却されたサーバー時刻

戻り値の型:

iscp.DateTime

property state

ストリームの状態を取得します。

戻り値:

ダウンストリームの状態

戻り値の型:

DownstreamState

ダウンストリーム用の各種クラス

class DownstreamFilter(source_node_id, data_filters)[ソース]

ダウンストリームフィルタを表します。

source_node_id

送信元ノードID

Type:

str

data_filters

データフィルタのリスト

Type:

List[iscp.DataFilter]

classmethod all_for(source_node_id)[ソース]

指定したノードが送信するすべてのデータを取得するフィルタです。

パラメータ:

source_node_id (str) -- データ取得対象とする送信元ノード

class DataFilter(name, type)[ソース]

受信するデータを指定するためのデータフィルタです。

名称や型の指定において階層構造を表現したいときには、特殊文字 / をセパレータとして使用することができます。

特殊文字 # はマルチレベルワイルドカードです。

  • フィルタが # のとき、 name はマッチします。

  • フィルタが # のとき、 group/name はマッチします。

  • フィルタが group/# のとき、 group/name はマッチします。

  • フィルタが group/# のとき、 group/sub-group/name はマッチします。

  • フィルタが group/# のとき、 other-group/name はマッチしません。

特殊文字 + は単一レベルワイルドカードです。

  • フィルタが + のとき、 name はマッチします。

  • フィルタが group/+ のとき、 group/name はマッチします。

  • フィルタが group/+/name のとき、 group/sub-group/name はマッチします。

  • フィルタが group/+/name のとき、 group/other-group/name はマッチします。

  • フィルタが group/+/name のとき、 group/other-group/some-name はマッチしません。

name

名称

Type:

str

type

型

Type:

str

class DownstreamState[ソース]

ダウンストリームの状態を表します。

id

ストリームID

Type:

UUID

data_id_aliases

データIDエイリアスとデータIDのマップ

Type:

Dict[int, iscp.DataID]

last_issued_data_id_alias

最後に払い出されたデータIDエイリアス

Type:

int

upstream_infos

アップストリームエイリアスとアップストリーム情報のマップ

Type:

Dict[int, iscp.UpstreamInfo]

last_issued_upstream_info_alias

最後に払い出されたアップストリーム情報のエイリアス

Type:

int

last_issued_ack_sequence_number

最後に払い出されたAckのシーケンス番号

Type:

int

server_time

DownstreamOpenResponseで返却されたサーバー時刻

Type:

iscp.DateTime

class DownstreamChunk[ソース]

ダウンストリームチャンクを表します。

upstream_info

アップストリーム情報

Type:

iscp.UpstreamInfo

sequence_number

シーケンス番号

Type:

int

data_point_groups

データポイントグループのリスト

Type:

List[iscp.DataPointGroup]

class DownstreamMetadata[ソース]

ダウンストリームメタデータを表します。

source_node_id

送信元ノードID

Type:

str

metadata

メタデータ

Type:

iscp.Metadata

class UpstreamInfo[ソース]

アップストリームの情報です。

session_id

セッションID

Type:

str

stream_id

ストリームID

Type:

uuid.UUID

source_node_id

送信元ノードID

Type:

str