| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | /* *  ctkTopicRegistry.cpp *  ctkEventBus * *  Created by Roberto Mucci on 26/01/11. *  Copyright 2011 B3C. All rights reserved. * *  See Licence at: http://tiny.cc/QXJ4D * */#include "ctkTopicRegistry.h"using namespace ctkEventBus;ctkTopicRegistry* ctkTopicRegistry::instance() {    static ctkTopicRegistry instanceTopicRegistry;    return &instanceTopicRegistry;}ctkTopicRegistry::ctkTopicRegistry() {}void ctkTopicRegistry::shutdown() {    m_TopicHash.clear();}bool ctkTopicRegistry::registerTopic(const QString topic, const QObject *owner) {    if(topic.isEmpty() || owner == NULL ){        return false;    }    if(m_TopicHash.contains(topic)){        //topic already registered        const QObject *obj = m_TopicHash.value(topic,NULL);        QString className(obj->metaObject()->className());        qWarning() << QObject::tr("Topic %1 already owned by %2").arg(topic, className);        return false;    }    m_TopicHash.insert(topic,owner);    return true;}bool ctkTopicRegistry::unregisterTopic(const QString topic) {    bool result = false;    if(m_TopicHash.contains(topic)){        if (m_TopicHash.remove(topic) > 0) {            result = true;        }    }    return result;}const QObject *ctkTopicRegistry::owner(const QString topic) const {    return m_TopicHash.value(topic,NULL);}bool ctkTopicRegistry::isTopicRegistered(const QString topic) const {    return m_TopicHash.contains(topic);}void ctkTopicRegistry::dump() {    QHash<QString, const QObject*>::const_iterator i = m_TopicHash.constBegin();    while (i != m_TopicHash.constEnd()) {        const QObject *obj = i.value();        QString key =  i.key();        QString name = obj->metaObject()->className();        qDebug() << "Topic: " << key << "   Owner: "  << name;        ++i;    }}
 |