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;
- }
- }
|