void QCopChannel::registerChannel(const QString& ch, QWSClient *cl) { if (!qcopServerMap) qcopServerMap = new QCopServerMap; // do we need a new channel list ? QCopServerMap::Iterator it = qcopServerMap->find(ch); if (it == qcopServerMap->end()) it = qcopServerMap->insert(ch, QList<QWSClient*>()); // If the channel name contains wildcard characters, then we also // register it on the server regexp matching list. if (containsWildcards( ch )) { QCopServerRegexp item(ch, cl); if (!qcopServerRegexpList) qcopServerRegexpList = new QCopServerRegexpList; qcopServerRegexpList->append( item ); } // If this is the first client in the channel, announce the channel as being created. if (it.value().count() == 0) { QWSServerSignalBridge* qwsBridge = new QWSServerSignalBridge(); connect(qwsBridge, SIGNAL(newChannel(QString)), qwsServer, SIGNAL(newChannel(QString))); qwsBridge->emitNewChannel(ch); delete qwsBridge; } it.value().append(cl); }
/*! \internal Server side: subscribe client \a cl on channel \a ch. */ void QCopChannel::registerChannel( const QString &ch, const QWSClient *cl ) { if ( !qcopServerMap ) qcopServerMap = new QCopServerMap; // do we need a new channel list ? QCopServerMap::Iterator it = qcopServerMap->find( ch ); if ( it == qcopServerMap->end() ) it = qcopServerMap->insert( ch, QList<QWSClient>() ); // If this is the first client in the channel, announce the channel as being created. if (it.data().count() == 0) { QWSServerSignalBridge* qwsBridge = new QWSServerSignalBridge(); connect(qwsBridge, SIGNAL(newChannel(const QString&)), qwsServer, SIGNAL(newChannel(const QString&))); qwsBridge->emitNewChannel(ch); delete qwsBridge; } it.data().append( cl ); }