- 232 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 07:05:40 ]
- C++で書いてます。クライアントクラスの管理をしたいのですが、
管理されるクライアントクラスはnewで動的に生成されるという物です。 また、マルチスレッド環境での使用も考えています。 class client{ client_management *cmgmt_; public: client( client_management *cmgmt ):cmgmt_( cmgmt ){ cmgmt_->add( this ); // 排他処理はcmgmt内で } void haandle(){ //クライアントとの通信とか、いくつかの処理 //処理終了で、クライアントと切断後、 cmgmt_->remove( this ); delete this; } }; これをserver側で class server{ client_management cmgmt_; void listen(){ socket sock = accept();//clientクラスのオブジェクトを返す new client( &cmgmt_ ); } }; こんな設計しか思い浮かばなかったのですが、特に new client( &cmgmt_ )の部分とかdelete thisな部分が嫌な感じがします。 よりベストな設計を伺いたいです。よろしくお願いします。
|

|