ACE_Svc_Handler派生类对象自动销毁?
代码片段如下:ACE_Connector<cHandler, ACE_SOCK_CONNECTOR> connector;
ACE_INET_Addr addr(1025, "192.168.1.222");
cHandler *handler;
ACE_DEBUG((LM_INFO, ACE_TEXT("(%P|%t) connecting...\n")));
while (1)
{
handler = new cHandler;
if(connector.connect(handler, addr) == -1)
{
ACE_OS::sleep(2);
continue;
}
ACE_DEBUG((LM_INFO, ACE_TEXT("(%P|%t) success.\n")));
break;
}
cHandler是ACE_Svc_Handler的派生类,问题如下:
如果实现close()方法,必须在该方法中delete this, 释放new出来的对象。
如果不实现close()方法,则new出来的对象会被ACE自动释放。
偶在ACE代码中找了下,似乎没看到哪里自动销毁handler的地方,还请哪位指点一下~ 找到了
Svc_Handler.cpp
close() -> handle_close() -> destroy()
close()是在connector.connect()返回出错之前调用的。
页:
[1]