# porter/libsrc/porter/protocol/config.h

# 1 ファイル

## 1.1 porter/libsrc/porter/protocol/config.h

設定ファイル解析モジュールの内部ヘッダー。

### 1.1.1 作者

c-modernization-kit sample team

### 1.1.2 バージョン

1.0.0

### 1.1.3 日付

2026/03/04

### 1.1.4 著作権

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

# 2 関数

## 2.1 config_load_global

    int config_load_global ( const char *config_path, PotrGlobalConfig *global )

設定ファイルから [global] セクションを読み込みます。

[global] セクションが存在しない場合はデフォルト値を設定します。

### 2.1.1 引数

- config_path [in] 設定ファイルのパス。
- global [out] 読み込み結果を格納する構造体へのポインタ。

### 2.1.2 戻り値

成功時は POTR_SUCCESS、失敗時は POTR_ERROR を返します。

## 2.2 config_load_service

    int config_load_service ( const char *config_path, int64_t service_id, PotrServiceDef *def )

設定ファイルから指定サービスの定義を読み込みます。

[service.] 形式のセクション名から 部分を取得し、service_id と照合します。
サービスの識別子はセクション名の であり、ポート番号とは無関係です。

### 2.2.1 引数

- config_path [in] 設定ファイルのパス。
- service_id [in] 読み込むサービスの ID。
- def [out] 読み込み結果を格納する構造体へのポインタ。

### 2.2.2 戻り値

成功時は POTR_SUCCESS、サービスが見つからない場合は POTR_ERROR を返します。

## 2.3 config_list_service_ids

    int config_list_service_ids ( const char *config_path, int64_t **ids_out, int *count_out )

設定ファイルに登録されているすべてのサービス ID を列挙します。

初期容量 POTR_MAX_SERVICES で配列を確保し、超過時は realloc で 2 倍に拡張します。

### 2.3.1 引数

- config_path [in] 設定ファイルのパス。
- ids_out [out] サービス ID 配列へのポインタを格納する変数。 呼び出し元が free(*ids_out) の責務を持つ。
- count_out [out] 列挙したサービス ID 数。

### 2.3.2 戻り値

成功時は POTR_SUCCESS、失敗時は POTR_ERROR を返します。