porter/libsrc/porter/api/potrDisconnectPeer.c

1 ファイル

1.1 porter/libsrc/porter/api/potrDisconnectPeer.c

potrDisconnectPeer 関数の実装。

1.1.1 作者

c-modernization-kit sample team

1.1.2 バージョン

1.0.0

1.1.3 日付

2026/03/23

1.1.4 インクルード元

potrDisconnectPeer.c のインクルード元

1.1.5 著作権

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

2 関数

2.1 potrDisconnectPeer

POTR_EXPORT int POTR_API potrDisconnectPeer ( PotrHandle handle, PotrPeerId peer_id )

指定ピアを切断します (N:1 モード専用)。

指定したピアへ FIN パケットを送信し、ピアのリソースを解放します。
切断完了後に POTR_EVENT_DISCONNECTED コールバックが発火します。
N:1 モード (unicast_bidir かつ src 情報省略) 専用です。
1:1 モードおよびその他の通信種別では POTR_ERROR を返します。

2.1.1 引数

  • handle [in] potrOpenService() で取得したセッションハンドル。
  • peer_id [in] 切断するピアの識別子 (POTR_PEER_NA および POTR_PEER_ALL 以外)。

2.1.2 戻り値

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

2.1.3 警告

handle が NULL の場合は失敗を返します。
peer_id = POTR_PEER_NA または POTR_PEER_ALL の場合は失敗を返します。
指定した peer_id が存在しない場合は失敗を返します。
1:1 モードまたは N:1 モード以外で呼び出した場合は失敗を返します。

2.1.4 スレッド セーフティ

本関数はスレッドセーフです。
内部で peers_mutex により排他制御されるため、複数スレッドから並行して呼び出せます。
ただし PotrRecvCallback の内部から本関数を呼び出すとデッドロックが発生します。
コールバック内からの呼び出しは避けてください。

2.1.5 呼び出し先

potrDisconnectPeer の呼び出し先

3 定数、マクロ

3.1 POTR_MUTEX_LOCK_LOCAL

#define POTR_MUTEX_LOCK_LOCAL ( m )
    pthread_mutex_lock(m)

3.2 POTR_MUTEX_UNLOCK_LOCAL

#define POTR_MUTEX_UNLOCK_LOCAL ( m )
    pthread_mutex_unlock(m)

4

4.1 PotrMutexLocal

typedef pthread_mutex_t PotrMutexLocal;