porter/src/send/send.c

1 ファイル

1.1 porter/src/send/send.c

送信テストコマンド。

指定サービスへデータを対話式に送信する CLI テストコマンドです。
1 回のセッション内でメッセージを連続して送信できます。
各送信後に次のメッセージを送るか終了するかを選択できます。

サービス種別が unicast_bidir の場合は双方向モードで動作します。
双方向モードでは相手から受信したメッセージも標準出力に表示します。

level に指定可能な値: TRACE, DEBUG, INFO, WARN, ERROR, FATAL (大文字小文字不問)

1.1.1 作者

c-modernization-kit sample team

1.1.2 バージョン

1.3.0

1.1.3 日付

2026/03/22

1.1.4 使用方法

send [-l <level>] <config_path> <service_id>

1.1.5 オプション

オプション 説明
-l ログレベルを指定します。指定がない場合はログ出力なし。

1.1.6 使用例

send porter-services.conf 10
send -l INFO porter-services.conf 10
send -l DEBUG porter-services.conf 1031

1.1.7 インクルード元

send.c のインクルード元

1.1.8 著作権

Copyright (C) CompanyName, Ltd. 2026. All rights reserved.

2 関数

2.1 sig_handler

static void sig_handler ( int sig )

Linux SIGINT シグナルハンドラー。

2.1.1 引数

  • sig [in] シグナル番号。

2.2 on_recv

static void on_recv ( int64_t service_id, PotrPeerId peer_id, PotrEvent event, const void *data, size_t len )

受信コールバック関数 (unicast_bidir モード用)。

2.2.1 引数

  • service_id [in] サービスの ID。
  • peer_id [in] ピア識別子 (N:1 モード時は非ゼロ、1:1 モード時は 0)。
  • event [in] イベント種別。
  • data [in] 受信データへのポインタ (POTR_EVENT_DATA 時のみ有効)。
  • len [in] 受信データのバイト数 (POTR_EVENT_DATA 時のみ有効)。

2.3 parse_log_level

static int parse_log_level ( const char *str, PotrLogLevel *out )

ログレベル文字列を PotrLogLevel に変換する。

2.3.1 引数

  • str [in] レベル文字列 (TRACE/DEBUG/INFO/WARN/ERROR/FATAL)。
  • out [out] 変換結果の格納先。

2.3.2 戻り値

変換に成功した場合は 1、未知の文字列の場合は 0 を返します。

2.3.3 呼び出し元

parse_log_level の呼び出し元

2.4 read_line

static int read_line ( char *buf, size_t size )

標準入力から1行読み込み、末尾の改行を取り除く。

2.4.1 引数

  • buf [out] 読み込み先バッファ。
  • size [in] バッファサイズ (バイト)。

2.4.2 戻り値

入力があれば 1、EOF またはエラーなら 0 を返します。

2.4.3 呼び出し元

read_line の呼び出し元

2.5 main

int main ( int argc, char *argv[] )

メインエントリーポイント。

2.5.1 引数

  • argc [in] コマンドライン引数の数。
  • argv [in] コマンドライン引数の配列。

2.5.2 戻り値

成功時は EXIT_SUCCESS、失敗時は EXIT_FAILURE を返します。

2.5.3 呼び出し先

main の呼び出し先

3 変数

3.1 g_running

static volatile int g_running = 1;

送信ループ継続フラグ。シグナルハンドラーで 0 に設定される。

4 定数、マクロ

4.1 INPUT_BUF_SIZE

#define INPUT_BUF_SIZE (POTR_MAX_MESSAGE_SIZE + 2U)

入力バッファサイズ。POTR_MAX_MESSAGE_SIZE + 改行 + NUL。