私のアプリケーションが、クライアントとの新しい接続が確立されたときにオブジェクトへの参照を渡すServer
コールバックを持つライブラリオブジェクトを使用していると仮定します。の所有権を保持します。(ローカルまたはリモートで)閉じられたときに破棄したいのですが、接続を使用しているアプリケーションへの通知にどのように対処するのが最善かわかりません。onConnected
Connection
Server
Connection
Connection
明らかな解決策は、ある種のonDisconnected
コールバックをdelete
すぐに実行して、アプリケーションが使用を継続しようとするとアプリケーションがクラッシュするようにするか、それをそのまま渡してshared_ptr
、アプリケーションがクリーンアップするまでオブジェクトをそのままにしておくことです。これらのアプローチはどちらも私にとって特に良いとは感じません。前者は安全でないと感じ、後者は接続の所有者の概念を混乱させ、アプリケーションがコールバックを無視した場合にリークを可能にします。
私が見逃しているこれに対する慣用的な解決策はありますか、それともそれを行うためのより良い方法はありますか?