SkyWay Embedded SDK 0.1.0
読み取り中…
検索中…
一致する文字列を見つけられません
local_person.h ファイル

自分自身によるPublish・Subscribe。 [詳解]

#include <stddef.h>
#include <stdint.h>
#include "publication.h"
#include "subscription.h"

[ソースコード]

データ構造

struct  skw_room_local_person_publish_params_t
 skw_room_local_person_publishのパラメータ。 [詳解]
struct  skw_room_local_person_unpublish_params_t
 skw_room_local_person_unpublishのパラメータ。 [詳解]
struct  skw_room_local_person_subscribe_params_t
 skw_room_local_person_subscribeのパラメータ。 [詳解]
struct  skw_room_local_person_unsubscribe_params_t
 skw_room_local_person_unsubscribeのパラメータ。 [詳解]

マクロ定義

#define SKW_ROOM_LOCAL_PERSON_PUBLISH_PARAMS_INIT(...)
 skw_room_local_person_publish_params_tの初期化子。指定しなかったフィールドには既定値が入ります。
#define SKW_ROOM_LOCAL_PERSON_UNPUBLISH_PARAMS_INIT(...)
 skw_room_local_person_unpublish_params_tの初期化子。指定しなかったフィールドには既定値が入ります。
#define SKW_ROOM_LOCAL_PERSON_SUBSCRIBE_PARAMS_INIT(...)
 skw_room_local_person_subscribe_params_tの初期化子。指定しなかったフィールドには既定値が入ります。
#define SKW_ROOM_LOCAL_PERSON_UNSUBSCRIBE_PARAMS_INIT(...)
 skw_room_local_person_unsubscribe_params_tの初期化子。指定しなかったフィールドには既定値が入ります。

列挙型

enum  skw_room_local_person_err_t {
  SKW_ROOM_LOCAL_PERSON_OK = 0 , SKW_ROOM_LOCAL_PERSON_ERR_NULL_ARGS = 1 , SKW_ROOM_LOCAL_PERSON_ERR_INVALID_ARGS = 2 , SKW_ROOM_LOCAL_PERSON_ERR_CONTEXT_NOT_INITED = 3 ,
  SKW_ROOM_LOCAL_PERSON_ERR_CONTEXT_NOT_SETUP = 4 , SKW_ROOM_LOCAL_PERSON_ERR_REQUEST_FAILED = 5 , SKW_ROOM_LOCAL_PERSON_ERR_MUTEX_UNLOCK_FAILED = 6 , SKW_ROOM_LOCAL_PERSON_ERR_CALLED_IN_HANDLER = 7 ,
  SKW_ROOM_LOCAL_PERSON_ERR_SEND_FAILED = 8 , SKW_ROOM_LOCAL_PERSON_ERR_TIMEOUT = 9 , SKW_ROOM_LOCAL_PERSON_ERR_CONNECTION_CLOSED = 10 , SKW_ROOM_LOCAL_PERSON_ERR_RESPONSE_TOO_LARGE = 11 ,
  SKW_ROOM_LOCAL_PERSON_ERR_RESPONSE_PARSE_FAILED = 12 , SKW_ROOM_LOCAL_PERSON_ERR_PUBLICATION_LIMIT = 13 , SKW_ROOM_LOCAL_PERSON_ERR_NOT_JOINED = 14 , SKW_ROOM_LOCAL_PERSON_ERR_STREAM_FAILED = 15 ,
  SKW_ROOM_LOCAL_PERSON_ERR_VIDEO_SUBSCRIBE_DISABLED = 16 , SKW_ROOM_LOCAL_PERSON_ERR_NOT_SUPPORTED = 90 , SKW_ROOM_LOCAL_PERSON_ERR_UNKNOWN = 99 , SKW_ROOM_LOCAL_PERSON_ERR_BAD_REQUEST = 400 ,
  SKW_ROOM_LOCAL_PERSON_ERR_UNAUTHORIZED = 401 , SKW_ROOM_LOCAL_PERSON_ERR_FORBIDDEN = 403 , SKW_ROOM_LOCAL_PERSON_ERR_NOT_FOUND = 404 , SKW_ROOM_LOCAL_PERSON_ERR_ALREADY_EXIST = 409 ,
  SKW_ROOM_LOCAL_PERSON_ERR_TOO_LARGE = 413 , SKW_ROOM_LOCAL_PERSON_ERR_TOO_MANY_REQUESTS = 429 , SKW_ROOM_LOCAL_PERSON_ERR_SERVER_INTERNAL = 500 , SKW_ROOM_LOCAL_PERSON_ERR_SERVER_BUSY = 503
}
 LocalPerson APIのエラーコード。 [詳解]

関数

skw_room_local_person_err_t skw_room_local_person_publish (const skw_room_local_person_publish_params_t *params, skw_room_publication_data_field_t *data_fields)
 StreamをPublishします。
skw_room_local_person_err_t skw_room_local_person_unpublish (const skw_room_local_person_unpublish_params_t *params)
 PublishしているStreamをUnpublishします。
skw_room_local_person_err_t skw_room_local_person_subscribe (const skw_room_local_person_subscribe_params_t *params, skw_room_subscription_data_field_t *data_fields)
 PublicationをSubscribeし、Streamが利用可能になるまでブロックします(最大60秒)。 タイムアウト・確立失敗時はSubscriptionを自動でUnsubscribeします。
skw_room_local_person_err_t skw_room_local_person_unsubscribe (const skw_room_local_person_unsubscribe_params_t *params)
 SubscribeしているStreamをUnsubscribeします。

詳解

自分自身によるPublish・Subscribe。

マクロ定義詳解

◆ SKW_ROOM_LOCAL_PERSON_PUBLISH_PARAMS_INIT

#define SKW_ROOM_LOCAL_PERSON_PUBLISH_PARAMS_INIT ( ...)
値:
{__VA_ARGS__}

skw_room_local_person_publish_params_tの初期化子。指定しなかったフィールドには既定値が入ります。

◆ SKW_ROOM_LOCAL_PERSON_SUBSCRIBE_PARAMS_INIT

#define SKW_ROOM_LOCAL_PERSON_SUBSCRIBE_PARAMS_INIT ( ...)
値:
{__VA_ARGS__}

skw_room_local_person_subscribe_params_tの初期化子。指定しなかったフィールドには既定値が入ります。

◆ SKW_ROOM_LOCAL_PERSON_UNPUBLISH_PARAMS_INIT

#define SKW_ROOM_LOCAL_PERSON_UNPUBLISH_PARAMS_INIT ( ...)
値:
{__VA_ARGS__}

skw_room_local_person_unpublish_params_tの初期化子。指定しなかったフィールドには既定値が入ります。

◆ SKW_ROOM_LOCAL_PERSON_UNSUBSCRIBE_PARAMS_INIT

#define SKW_ROOM_LOCAL_PERSON_UNSUBSCRIBE_PARAMS_INIT ( ...)
値:
{__VA_ARGS__}

skw_room_local_person_unsubscribe_params_tの初期化子。指定しなかったフィールドには既定値が入ります。

列挙型詳解

◆ skw_room_local_person_err_t

LocalPerson APIのエラーコード。

列挙値
SKW_ROOM_LOCAL_PERSON_OK 

正常終了

SKW_ROOM_LOCAL_PERSON_ERR_NULL_ARGS 

引数がNULL

SKW_ROOM_LOCAL_PERSON_ERR_INVALID_ARGS 

引数の値が不正

SKW_ROOM_LOCAL_PERSON_ERR_CONTEXT_NOT_INITED 

Contextが初期化されていない

SKW_ROOM_LOCAL_PERSON_ERR_CONTEXT_NOT_SETUP 

Contextがセットアップされていない

SKW_ROOM_LOCAL_PERSON_ERR_REQUEST_FAILED 

リクエストの実行に失敗

SKW_ROOM_LOCAL_PERSON_ERR_MUTEX_UNLOCK_FAILED 

LocalPerson APIのアンロックに失敗

SKW_ROOM_LOCAL_PERSON_ERR_CALLED_IN_HANDLER 

イベントハンドラ内から呼ばれた

SKW_ROOM_LOCAL_PERSON_ERR_SEND_FAILED 

リクエストの送信に失敗

SKW_ROOM_LOCAL_PERSON_ERR_TIMEOUT 

応答の受信がタイムアウトした

SKW_ROOM_LOCAL_PERSON_ERR_CONNECTION_CLOSED 

応答待ちの間に接続が切断された

SKW_ROOM_LOCAL_PERSON_ERR_RESPONSE_TOO_LARGE 

応答が受信バッファのサイズを超過した

SKW_ROOM_LOCAL_PERSON_ERR_RESPONSE_PARSE_FAILED 

応答の解析に失敗した

SKW_ROOM_LOCAL_PERSON_ERR_PUBLICATION_LIMIT 

Publishできる数の上限を超過

SKW_ROOM_LOCAL_PERSON_ERR_NOT_JOINED 

LocalPersonが存在しない

SKW_ROOM_LOCAL_PERSON_ERR_STREAM_FAILED 

Streamの確立に失敗した

SKW_ROOM_LOCAL_PERSON_ERR_VIDEO_SUBSCRIBE_DISABLED 

VideoのSubscribeが無効(Contextのオプションで許可していない)

SKW_ROOM_LOCAL_PERSON_ERR_NOT_SUPPORTED 

未サポートの機能の呼び出し

SKW_ROOM_LOCAL_PERSON_ERR_UNKNOWN 

不明なエラー

SKW_ROOM_LOCAL_PERSON_ERR_BAD_REQUEST 

リクエストパラメータが不正

SKW_ROOM_LOCAL_PERSON_ERR_UNAUTHORIZED 

AuthTokenが不正、もしくは有効期限切れ

SKW_ROOM_LOCAL_PERSON_ERR_FORBIDDEN 

必要な権限が無い

SKW_ROOM_LOCAL_PERSON_ERR_NOT_FOUND 

リソースが見つからない

SKW_ROOM_LOCAL_PERSON_ERR_ALREADY_EXIST 

すでに存在するリソースを作成しようとした

SKW_ROOM_LOCAL_PERSON_ERR_TOO_LARGE 

リクエストパラメータが大きすぎる

SKW_ROOM_LOCAL_PERSON_ERR_TOO_MANY_REQUESTS 

レートリミット超過

SKW_ROOM_LOCAL_PERSON_ERR_SERVER_INTERNAL 

サーバー内部エラー

SKW_ROOM_LOCAL_PERSON_ERR_SERVER_BUSY 

サーバーが過負荷で一時的に利用できない

関数詳解

◆ skw_room_local_person_publish()

skw_room_local_person_err_t skw_room_local_person_publish ( const skw_room_local_person_publish_params_t * params,
skw_room_publication_data_field_t * data_fields )

StreamをPublishします。

引数
paramsPublishパラメータのポインタ
data_fieldsPublishされたPublicationの情報を格納する出力先のポインタ(不要ならNULL)。
戻り値
エラーコード

◆ skw_room_local_person_subscribe()

skw_room_local_person_err_t skw_room_local_person_subscribe ( const skw_room_local_person_subscribe_params_t * params,
skw_room_subscription_data_field_t * data_fields )

PublicationをSubscribeし、Streamが利用可能になるまでブロックします(最大60秒)。 タイムアウト・確立失敗時はSubscriptionを自動でUnsubscribeします。

引数
paramsSubscribeパラメータのポインタ
data_fieldsSubscribeされたSubscriptionの情報を格納する出力先のポインタ(不要ならNULL)。
戻り値
エラーコード

◆ skw_room_local_person_unpublish()

skw_room_local_person_err_t skw_room_local_person_unpublish ( const skw_room_local_person_unpublish_params_t * params)

PublishしているStreamをUnpublishします。

引数
paramsUnpublishパラメータのポインタ
戻り値
エラーコード

◆ skw_room_local_person_unsubscribe()

skw_room_local_person_err_t skw_room_local_person_unsubscribe ( const skw_room_local_person_unsubscribe_params_t * params)

SubscribeしているStreamをUnsubscribeします。

引数
paramsUnsubscribeパラメータのポインタ
戻り値
エラーコード