3. API 仕様
3.3 API データ型
データ型名 Std_ReturnType【rte_sws_a_0046】
概要 API関数が返す「状態」と「エラー値」
Std_ReturnTypeの構造
この型はuint8で定義されており,値"0"はエラーが発生しなかったことを示すために使用する.
上位 7 即時通信基盤エラーフラグ
1:即時通信基盤エラーのエラー値である.
0:即時通信基盤エラーのエラー値でない.
(つまりアプリケーションエラー)
6 オーバーレイエラーフラグ
(このフラグの使用方法は返り値を返すAPIに依存する)
5 アプリケーションエラーの値に使用する 4
3 2 1 下位 0
3.3.1.1 通信基盤エラー
通信基盤エラーは以下の2種類に分類される.
エラー分類 内容
即時通信基盤エラー 現在使用しているデータに関連するエラーを示す.このエラーは,アプリ ケーションデータやアプリケーションエラーが受信できないようなエラー に対して,受信側で使用するエラーである.
Std_ReturnType型の即時通信基盤エラーフラグがセットされている場合,
このエラーであることを示す.
このエラーは排他的であり,即時通信基盤エラーはアプリケーションエラ ーを上書きする【rte_sws_2593】.また同時に複数の即時通信基盤エラーが 返されることはない.
オーバーレイエラー 現在使用しているデータの受信後に発生した通信イベント(例えばデータ 要素が古い,あるいはキューのオーバーフローによるデータ損失)に関連す るエラーを示す.
オーバーレイエラーはStd_ReturnType型に含まれるオーバーレイエラー フラグビットを使用して通知する【rte_sws_1318】.
このエラーは他のアプリケーションエラー,もしくは通信基盤エラーと併 用できる.
3.3.1.2 アプリケーションエラー
RTEは,以下のフォーマットで定義されたアプリケーションエラーをサポートする【rte_sws_2573】
・ 即時通信基盤エラーフラグが"0"に設定されたStd_ReturnTypeの下位6ビット.
アプリケーションエラーの値範囲
アプリケーションエラーは以下の範囲をとる.
最小値 1 最大値 63
アプリケーションエラーのエラーコード
アプリケーションエラーのエラーコードは,RTE_E_INVALIDを除きアプリケーションエラー定数 で定義される.アプリケーションエラー定数については,3.5.2節を参照.
C/S連携の返り値
C/S連携では,サーバランナブルはアプリケーションエラー値の範囲内でエラーを返すことができ る.
クライアントは以下のどれか1つを受信する.
・ 通信が成功しなかったことを示す即時通信基盤エラー
・ サーバランナブルの返した返り値
・ サーバランナブルの返した返り値+オーバーレイフラグを設定した値.
RTEの現在のリリースでは,クライアントに「サーバランナブルの返した返り値+オーバーレイフラ グを設定した値」を返すことはない.
3.3.1.3 定義済みエラーコード
RTE標準エラーコード定義
RTE APIが正常に終了した場合のStd_ReturnTypeの値はRTE_E_OK(=0)である【rte_sws_1058】.
それ以外の場合はエラーコードで,以下の値を定義する.
・ RTE_E_INVALID = 1【rte_sws_2594】
・ RTE_E_COM_STOPPED = 128【rte_sws_1060】
・ RTE_E_TIMEOUT = 129【rte_sws_1064】
・ RTE_E_LIMIT = 130【rte_sws_1317】
・ RTE_E_NO_DATA = 131【rte_sws_1061】
・ RTE_E_TRANSMIT_ACK = 132【rte_sws_1065】
・ RTE_E_NEVER_RECEIVED = 133【rte_sws_7384】
・ RTE_E_UNCONNECTED = 134【rte_sws_7655】
・ RTE_E_IN_EXCLUSIVE_AREA = 135【rte_sws_2739】
・ RTE_E_LOST_DATA = 64【rte_sws_2571】
・ RTE_E_MAX_AGE_EXCEEDED = 64【rte_sws_2702】
以上のエラーコード定義で規定された標準エラーは,RTEヘッダで定義される【rte_sws_1269】.
SCHM標準エラーコード定義
SCHM APIが正常に終了した場合のStd_ReturnTypeの値はSCHM_E_OK(=0)である
【rte_sws_7289】.
それ以外の場合はエラーコードで,以下の値を定義する.
・ SCHM_E_LIMIT = 130【rte_sws_7290】
・ SCHM_E_NO_DATA = 131【rte_sws_7562】
・ SCHM_E_TRANSMIT_ACK = 132【rte_sws_7563】
・ SCHM_E_IN_EXCLUSIVE_AREA = 135【rte_sws_2747】
・ SCHM_E_TIMEOUT = 129【rte_sws_7054】
以上のエラーコード定義で規定された標準エラーは,RTEヘッダで定義される【rte_sws_7291】.
3.3.2 プリミティブ実装データ型
データ型名 <name>【rte_sws_7104】
概要 RTE APIで使用するデータ型
備考 <name>は,プリミティブ実装データ型のショートネーム
プリミティブ実装データ型を提供するヘッダ
プリミティブ実装データ型は,RTEタイプヘッダ内に定義する〔rte_sws_7104〕.
プリミティブ実装データ型の設定
プリミティブ実装データ型は,カテゴリ(category)がVALUEの実装データ型 (ImplementationDataType)として定義する.
プリミティブ実装データ型のベース型(BaseType)がネイティブ宣言(nativeDeclaration)を持つ場合,
RTEタイプヘッダは以下の型宣言を含む【rte_sws_7104】.
typedef <nativeDeclaration> <name>;
ここで,
・ <nativeDeclaration>は,ベース型(BaseType)のネイティブ宣言(nativeDeclaration)を表す.
・ <name>は,プリミティブ実装データ型のショートネームを表す.
本RTEは,プリミティブ実装データ型のベース型(baseType)のベース型エンコーディング
(baseTypeEncoding)にNONE,もしくはBOOLEANが指定された場合,プリミティブ実装データ型 が符号なしであると見なす.NONE,およびBOOLEAN以外が指定された場合,プリミティブ実装デ ータ型が符号ありであると見なす【nrte_sws_0158】.
同一のデータ型の再定義の防止
ショートネーム,およびベース型(BaseType)のネイティブ宣言(nativeDeclaration)が等しい複数の プリミティブ実装データ型が定義されている場合,RTEタイプヘッダは〔rte_sws_7104〕に従った型 宣言を1度だけ含む【rte_sws_7105】.
定義済みのデータ型の再定義防止
RTEGENは,ネイティブ宣言(nativeDeclaration)を持たないベース型(BaseType)に対する型宣言を 生成しない【nrte_sws_0085】.これは,あらかじめ型宣言が提供されているデータ型の再定義を避け るためである.