|
Document of c-modernization-kit (porter) 1.0.0
|
通信ライブラリの型定義ファイル。 More...
Go to the source code of this file.
Data Structures | |
| struct | PotrServiceDef |
| サービス定義。 More... | |
| struct | PotrGlobalConfig |
| グローバル設定。 More... | |
| struct | PotrPacket |
| ネットワーク送受信用パケット構造体。 More... | |
Macros | |
| #define | POTR_PEER_NA ((PotrPeerId)0U) |
| ピア ID 未割当を示す予約値。 1:1 モードのコールバックで渡される (ピアの概念がない)。 potrSend() に N:1 モードで指定した場合はエラーを返す。 | |
| #define | POTR_PEER_ALL ((PotrPeerId)UINT32_MAX) |
| 全接続ピアへの一斉送信を指示する予約ピア ID。 N:1 モードでは全アクティブピアへユニキャスト送信する。 1:1 モードでは唯一のピアへの送信として動作する。 | |
Typedefs | |
| typedef uint32_t | PotrPeerId |
| ピア識別子。 | |
| typedef struct PotrContext_ * | PotrHandle |
| セッションハンドル。 | |
| typedef void(* | PotrRecvCallback) (int64_t service_id, PotrPeerId peer_id, PotrEvent event, const void *data, size_t len) |
| 受信コールバック関数型 (全通信種別共通)。 | |
Enumerations | |
| enum | PotrType { POTR_TYPE_UNICAST_RAW = 1 , POTR_TYPE_MULTICAST_RAW = 2 , POTR_TYPE_BROADCAST_RAW = 3 , POTR_TYPE_UNICAST = 4 , POTR_TYPE_MULTICAST = 5 , POTR_TYPE_BROADCAST = 6 , POTR_TYPE_UNICAST_BIDIR = 7 , POTR_TYPE_UNICAST_BIDIR_N1 = 8 , POTR_TYPE_TCP = 9 , POTR_TYPE_TCP_BIDIR = 10 } |
| 通信種別。 More... | |
| enum | PotrRole { POTR_ROLE_SENDER = 1 , POTR_ROLE_RECEIVER = 2 } |
| 役割種別。 More... | |
| enum | PotrEvent { POTR_EVENT_DATA = 0 , POTR_EVENT_CONNECTED = 1 , POTR_EVENT_DISCONNECTED = 2 } |
| 受信イベント種別。 More... | |
| enum | PotrLogLevel { POTR_TRACE_CRITICAL = 0 , POTR_TRACE_ERROR = 1 , POTR_TRACE_WARNING = 2 , POTR_TRACE_INFO = 3 , POTR_TRACE_VERBOSE = 4 , POTR_TRACE_NONE = 5 } |
| ログレベル。 More... | |
通信ライブラリの型定義ファイル。
Definition in file porter_type.h.
| typedef uint32_t PotrPeerId |
ピア識別子。
N:1 モードで各クライアントを識別する ID です。
N:1 モードでは有効なピア ID は常に POTR_PEER_NA および POTR_PEER_ALL 以外の値です。
1:1 モードおよびその他の通信種別では peer_id は常に POTR_PEER_NA です。
N:1 通信モード (POTR_TYPE_UNICAST_BIDIR src 情報なし) で各接続ピアを識別する ID です。
1:1 通信モードおよびその他の通信種別では常に POTR_PEER_NA を使用します。
有効な N:1 ピア ID は常に POTR_PEER_NA および POTR_PEER_ALL 以外の値となります(ピア ID 生成ロジックにより保証)。
予約値については ピア ID 予約値 を参照してください。
Definition at line 32 of file porter_type.h.
| typedef struct PotrContext_* PotrHandle |
セッションハンドル。
potrOpenService() が返す不透明ポインタです。
内部実装の詳細はライブラリ利用者からは隠蔽されます。
Definition at line 238 of file porter_type.h.
| typedef void(* PotrRecvCallback) (int64_t service_id, PotrPeerId peer_id, PotrEvent event, const void *data, size_t len) |
受信コールバック関数型 (全通信種別共通)。
データ受信またはヘルスチェック状態変化時に、受信スレッドから呼び出されます。
コールバック内でブロッキング処理を行わないようにしてください。
すべてのイベントは受信スレッドから直列に呼び出されるため、順序性が保証されます。
| [in] | service_id | サービスの ID。 |
| [in] | peer_id | ピア識別子。N:1 モード時は接続ピアの ID (POTR_PEER_NA / POTR_PEER_ALL 以外)。 1:1 モードおよびその他の通信種別では常に POTR_PEER_NA。 |
| [in] | event | イベント種別 (PotrEvent)。 |
| [in] | data | 受信データへのポインタ。POTR_EVENT_DATA 時のみ有効。 コールバック復帰後は無効になります。 |
| [in] | len | 受信データのバイト数。POTR_EVENT_DATA 時のみ有効。 |
Definition at line 308 of file porter_type.h.
| enum PotrType |
通信種別。
サービス定義の通信方式を表します。
Definition at line 84 of file porter_type.h.
| enum PotrRole |
役割種別。
potrOpenService() の呼び出し元がデータを送信する役割か受信する役割かを明示します。
| Enumerator | ||
|---|---|---|
| POTR_ROLE_SENDER | 1 | 送信者。 |
| POTR_ROLE_RECEIVER | 2 | 受信者。 |
Definition at line 113 of file porter_type.h.
| enum PotrEvent |
受信イベント種別。
PotrRecvCallback の第 2 引数に渡されるイベント種別です。
| Enumerator | ||
|---|---|---|
| POTR_EVENT_DATA | 0 | データ受信。data/len に内容が格納される。 |
| POTR_EVENT_CONNECTED | 1 | 送信者からの疎通を初検知 or 復帰。data=NULL, len=0。 |
| POTR_EVENT_DISCONNECTED | 2 | 切断を検知 (タイムアウト / FIN 受信 / REJECT 受信)。data=NULL, len=0。 |
Definition at line 283 of file porter_type.h.
| enum PotrLogLevel |
ログレベル。
potrLogConfig() の level 引数に指定するログ出力レベルです。
数値が小さいほど重大度が高く、指定したレベル以下 (より重大) のメッセージのみが出力されます。
数値順序は trace-util の enum trace_level と対応しています。
| PotrLogLevel | 値 | trace_level | syslog priority |
|---|---|---|---|
| POTR_TRACE_CRITICAL | 0 | TRACE_LV_CRITICAL | LOG_CRIT |
| POTR_TRACE_ERROR | 1 | TRACE_LV_ERROR | LOG_ERR |
| POTR_TRACE_WARNING | 2 | TRACE_LV_WARNING | LOG_WARNING |
| POTR_TRACE_INFO | 3 | TRACE_LV_INFO | LOG_INFO |
| POTR_TRACE_VERBOSE | 4 | TRACE_LV_VERBOSE | LOG_DEBUG |
| POTR_TRACE_NONE | 5 | TRACE_LV_NONE | - |
Definition at line 332 of file porter_type.h.