//---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- void MsgMgr::removeCommNodeFromChannel(ChannelId _channelId, CommNode * _commNode) { if(_channelId != InvalidChannelId) { { NWAutoCritSec critSec(mCritSecAddRemoveCommNodes); MsgChannel * channel = mChannelList->getChannel(_channelId); MsgChannel * commNodeChannel = _commNode->getLocalChannel(); if(channel) { channel->stopListeningTo(commNodeChannel); commNodeChannel->stopListeningTo(channel); if(channel->getNumListeners() < 1 && channel->getNumListened() < 1) { unregChannelName(getChannelName(_channelId)); mChannelList->removeChannel(_channelId); } } } } }