私はいくつかのクラスを設計しました。こんな感じです:
- クラス
ClientEntity
は複数のインスタンスを持つことができます。 - オブジェクトが作成される
ClientEntity
と変更されないため、ミューテックスは使用しません。 ClientEntity
オブジェクトは異なるスレッド間でアクセスできます。ClientEntity
オブジェクトは、いくつかの終了コマンドを受け取ると破棄されます。ClientEntity
オブジェクトは、一部のスレッドによってアクセスされる場合があります。
このオブジェクトを安全に破棄するにはどうすればよいですか?
class ClientEntity
{
public:
conference_info & conf_info (){return conf_info_;}
void conf_info(const conference_info &ci){conf_info_ = ci;}
user_info & usr_info(){return usr_info_;}
void usr_info(const user_info &ui){usr_info_ = ui;}
private:
web_conf_info *wci_;
user_info usr_info_;
conference_info conf_info_;
// .....
};
class user_info
{
public:
user_info & operator = (const user_info &ui)
{
if (this != &ui){
user_id = ui.user_id;
user_name = ui.user_name;
user_role = ui.user_role;
}
return *this;
}
public:
int user_id;
int user_role;
std::string user_name;
};
class conference_info
{
public:
conference_info & operator = (const conference_info &conf)
{
if (this != &conf){
conf_id = conf.conf_id;
dtsip_list = conf.dtsip_list;
ctsip_list = conf.ctsip_list;
}
return *this;
}
public:
int conf_id;
std::list<std::string> dtsip_list;
std::list<std::string> ctsip_list;
};