Error XMPPStream::close () { Error e = NoError; if (!mSkipInit){ e = send ("</stream:stream>"); } if (mChannel) { mChannel->changed().clear (); mChannel->close(abind (dMemFun (this, &XMPPStream::throwAwayOnClose), mChannel)); mChannel = ChannelPtr (); } return e; }
void LoggingRegistry::registerChannel(const std::string& name, Channel* pChannel) { FastMutex::ScopedLock lock(_mutex); _channelMap[name] = ChannelPtr(pChannel, true); }
void AddChannel(const std::string & name, const std::string & title) { boost::unique_lock<boost::shared_mutex> lock(channel_sync_); channels_.insert(std::make_pair(name, ChannelPtr(new Channel(name, title)))); }
void XMPPStream::uncouple () { mChannel->changed().clear (); xcall (abind (dMemFun (this, &XMPPStream::throwAwayChannel), mChannel)); mChannel = ChannelPtr (); }