私はこのようなものを作成したいと思います:
メッセージのストリームに対して「回線交換」のようなことを行うモジュールがあります。つまり、単一の入力ポートと複数の出力ポートがあります。メッセージが入力ポートに到着すると、何らかのロジックに基づいて出力ポートが選択されます (質問のコンテキストではロジックは重要ではありません)。outport で進行中のメッセージ転送があるかどうかがチェックされます (最初のメッセージについては、何もありません)。転送がない場合、メッセージはその outport に送信されます。それ以外の場合は、その特定の outport のキューに保持されます。この通信のデータ構造を決める必要があります。ご意見をお聞かせください
私の考えは、出力ポートと対応するキューのマップを持つことです。
queue<message> m_incoming_queue;
typedef map<outport*,m_incoming_queue> transaction_map
これが良い解決策である場合、実行時にキューを作成する方法を知りたいですか? のように、何個の出力ポートがあるかを事前に知りません。要件に基づいて出力ポートを作成します。