私は IPC を行うための実装を書いています。ユーザーが呼び出しを行い、これらすべてのパラメーターを取得して、他のプロセスに渡します。
このような関数の自動コードジェネレーターを、次のようなロジックに基づいて作成しました。
- すべてのパラメーターを取得し、それらを構造体の中に入れます。
- IPC に必要なその他の情報を追加します。この構造体のサイズとポインターを POSIX メッセージ キューに渡します。このアドレスから指定されたサイズまでのデータが読み取られ、他のプロセスに送信されます。
- 構造体を分解してパラメーターを取得します。
- これらのパラメーターを使用して実際の関数を呼び出します。
プレーンな古いデータ型しかない場合、これは完全に正常に機能します。しかし、関数パラメーターが非 POD の場合、次の理由でロジックが失敗します。
- 非PODタイプの場合、合計データのサイズがわかりません[メッセージキューで必要]
- 一部のクラスには、ベクトルのように動的に増加するエンティティが含まれる場合があります。
誰かがこの状況にどのようにアプローチできるか考えてもらえますか?