通信ライブラリの定数ファイル。
c-modernization-kit sample team
1.0.0
2026/03/04
Copyright (C) CompanyName, Ltd. 2026. All rights reserved.
#define POTR_SEND_COMPRESS 0x0001Uメッセージを圧縮して送信します。圧縮後のサイズが元のサイズ以上の場合は自動的に非圧縮で送信します。
#define POTR_SEND_BLOCKING 0x0002Uブロッキング送信を行います。0 を指定するとノンブロッキング送信を行います。
#define POTR_SUCCESS 0成功の戻り値を表す定数。
#define POTR_ERROR -1失敗の戻り値を表す定数。
#define POTR_ERROR_DISCONNECTED 1TCP 全 path 切断中に potrSend() を呼んだ場合の戻り値。
#define POTR_FLAG_DATA 0x0001Uデータパケット (パックコンテナ) であることを示すフラグ。常に設定される。
#define POTR_FLAG_NACK 0x0002U再送要求パケットであることを示すフラグ。ack_num に要求通番を格納する。
#define POTR_FLAG_PING 0x0004Uヘルスチェック要求パケットであることを示すフラグ。ペイロードなし。
#define POTR_FLAG_REJECT 0x0008U再送不能通知パケットであることを示すフラグ。ack_num に再送不能な通番を格納する。
#define POTR_FLAG_FIN 0x0010U正常終了通知パケットであることを示すフラグ。送信者が potrCloseService 時に送出し、受信者は即座に DISCONNECTED へ遷移する。ペイロードなし。
#define POTR_FLAG_ENCRYPTED 0x0020UAES-256-GCM 認証タグが付与されていることを示す外側パケットフラグ。
POTR_FLAG_DATA と組み合わせる場合: [ヘッダー 32B][暗号文: packed_len B][GCM 認証タグ: 16B]。
単独で使用する場合 (PING/NACK/REJECT/FIN): ペイロードなし (平文 0B) の
GCM 認証タグのみ (16B) を格納する。[ヘッダー 32B][GCM 認証タグ: 16B]。
いずれの場合もヘッダー全体 (32B) が AAD として認証される。
Nonce (12B) = session_id (4B NBO) + flags (2B NBO) + seq_or_ack_num (4B NBO) + padding (2B 0x00)。
flags には本フラグを含んだ実際の送信フラグ値を使用する。
seq_or_ack_num は DATA/PING/FIN の場合 seq_num、NACK/REJECT の場合 ack_num。
#define POTR_FLAG_MORE_FRAG 0x0001U後続フラグメントが存在することを示すペイロードエレメントフラグ。メッセージが複数ペイロードエレメントに分割された場合、最終フラグメント以外に設定する。
#define POTR_FLAG_COMPRESSED 0x0002Uペイロードが圧縮されていることを示すペイロードエレメントフラグ。圧縮はメッセージ単位で行い、全フラグメントのペイロードエレメントに設定する。先頭 4 バイトが元サイズ (NBO)、続くデータが raw DEFLATE。
#define POTR_DEFAULT_WINDOW_SIZE 16Uデフォルトウィンドウサイズ (パケット数)。
#define POTR_DEFAULT_MAX_PAYLOAD 1400Uデフォルト最大ペイロード長 (バイト)。
#define POTR_DEFAULT_TTL 1Uデフォルトマルチキャスト TTL。
#define POTR_DEFAULT_HEALTH_INTERVAL_MS 0Uデフォルトヘルスチェック送信間隔 (ミリ秒)。0 = 無効。
#define POTR_DEFAULT_HEALTH_TIMEOUT_MS 0Uデフォルトヘルスチェックタイムアウト (ミリ秒)。0 = 無効。
#define POTR_DEFAULT_PACK_WAIT_MS 0Uデフォルトパッキング待ち時間 (ミリ秒)。0 = 即時送信。
#define POTR_DEFAULT_RECONNECT_INTERVAL_MS 5000USENDER 自動再接続間隔のデフォルト (ミリ秒)。TCP 通信種別 (POTR_TYPE_TCP / POTR_TYPE_TCP_BIDIR) のみ有効。
#define POTR_DEFAULT_CONNECT_TIMEOUT_MS 10000USENDER TCP 接続タイムアウトのデフォルト (ミリ秒)。0 = OS デフォルト。TCP 通信種別のみ有効。
#define POTR_CRYPTO_KEY_SIZE 32UAES-256-GCM 鍵サイズ (バイト)。設定ファイルの encrypt_key に 64 文字 hex で指定する。
#define POTR_CRYPTO_NONCE_SIZE 12UAES-256-GCM ノンスサイズ (バイト)。session_id (4B NBO) + flags (2B NBO) + seq_or_ack_num (4B NBO) + padding (2B 0x00) で構成する。
#define POTR_CRYPTO_TAG_SIZE 16UAES-256-GCM 認証タグサイズ (バイト)。暗号文の直後に付加する。
#define POTR_MAX_ADDR_LEN 64Uアドレス文字列の最大長 (バイト、終端 NUL を含む)。
#define POTR_MAX_PAYLOAD 65507Uペイロードの最大長 (バイト)。UDP 最大ペイロード (65535 - IP20 - UDP8)。max_payload 設定値のバリデーション上限として使用する。
#define POTR_MAX_WINDOW_SIZE 256Uウィンドウサイズの最大値 (パケット数)。window_size 設定値のバリデーション上限として使用する。
#define POTR_MAX_SERVICES 64Uconfig_list_service_ids() の初期バッファ容量。サービス数がこれを超えた場合は realloc で自動拡張する。
#define POTR_MAX_MESSAGE_SIZE 65535U1 回の potrSend で送信できる最大メッセージ長 (バイト) のデフォルト値。設定ファイルの max_message_size で変更可能。フラグメント化により max_payload を超えるメッセージも送受信できる。
#define POTR_SEND_QUEUE_DEPTH 1024U非同期送信キューの最大エントリ数のデフォルト値。設定ファイルの send_queue_depth で変更可能。メッセージがフラグメント化される場合、1 メッセージが複数エントリを占有する。
#define POTR_PAYLOAD_ELEM_HDR_SIZE 6Uパックコンテナ内ペイロードエレメントのヘッダーサイズ (バイト)。flags (2): POTR_FLAG_MORE_FRAG / POTR_FLAG_COMPRESSED を格納 + payload_len (4): uint32_t (NBO)。通番は外側パケットで管理するためペイロードエレメントには含まない。
#define POTR_MAX_PATH 4Uマルチパスの最大パス数。