| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | 
							- /*
 
-  *  ctkEventDispatcherLocal.cpp
 
-  *  ctkEventBus
 
-  *
 
-  *  Created by Paolo Quadrani on 27/03/09.
 
-  *  Copyright 2009 B3C. All rights reserved.
 
-  *namespace ctkEventBus
 
-  *  See Licence at: http://tiny.cc/QXJ4D
 
-  *
 
-  */
 
- #include "ctkEventDispatcherLocal.h"
 
- #include "ctkBusEvent.h"
 
- using namespace ctkEventBus;
 
- ctkEventDispatcherLocal::ctkEventDispatcherLocal() : ctkEventDispatcher() {
 
-     this->initializeGlobalEvents();
 
- }
 
- void ctkEventDispatcherLocal::initializeGlobalEvents() {
 
-     ctkBusEvent *properties = new ctkBusEvent("ctk/local/eventBus/globalUpdate",ctkEventTypeLocal,ctkSignatureTypeSignal, this, "notifyDefaultEvent()");
 
-     /*QString topic = "ctk/local/eventBus/globalUpdate";
 
-     (*properties)[TOPIC] =  topic;
 
-     (*properties)[TYPE] = ctkEventTypeLocal;
 
-     (*properties)[SIGTYPE] = mafSignatureTypeSignal;
 
-     QVariant var;
 
-     var.setValue((QObject*)this);
 
-     (*properties)[OBJECT] = var;
 
-     (*properties)[SIGNATURE] = "notifyDefaultEvent()";*/
 
-     registerSignal(*properties);
 
-     ctkEventDispatcher::initializeGlobalEvents();
 
- }
 
- void ctkEventDispatcherLocal::notifyEvent(ctkBusEvent &event_dictionary, ctkEventArgumentsList *argList, ctkGenericReturnArgument *returnArg) const {
 
-     QString topic = event_dictionary[TOPIC].toString();
 
-     ctkEventItemListType items = signalItemProperty(topic);
 
-     ctkBusEvent *itemEventProp;
 
-     foreach(itemEventProp, items) {
 
-         if((*itemEventProp)[SIGNATURE].toString().length() != 0) {
 
-             QString signal_to_emit = (*itemEventProp)[SIGNATURE].toString().split("(")[0];
 
-             QObject *obj = (*itemEventProp)[OBJECT].value<QObject *>();
 
-             if(argList != NULL) {
 
-                 if (returnArg == NULL || returnArg->data() == NULL) { //don't use return value
 
-                     switch (argList->count()) {
 
-                         case 0:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1());
 
-                             break;
 
-                         case 1:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                             argList->at(0));
 
-                             break;
 
-                         case 2:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1));
 
-                             break;
 
-                         case 3:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1), argList->at(2));
 
-                             break;
 
-                         case 4:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3));
 
-                             break;
 
-                         case 5:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4));
 
-                             break;
 
-                         case 6:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), argList->at(5));
 
-                             break;
 
-                         case 7:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), \
 
-                              argList->at(5), argList->at(6));
 
-                             break;
 
-                         case 8:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), \
 
-                              argList->at(5), argList->at(6), argList->at(7));
 
-                             break;
 
-                         case 9:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), \
 
-                              argList->at(5), argList->at(6), argList->at(7), argList->at(8));
 
-                             break;
 
-                         case 10:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), \
 
-                              argList->at(5), argList->at(6), argList->at(7), argList->at(8), argList->at(9));
 
-                             break;
 
-                         default:
 
-                             qWarning("%s", tr("Number of arguments not supported. Max 10 arguments").toLatin1().data());
 
-                     } //switch
 
-                  } else { //use return value
 
-                     switch (argList->count()) {
 
-                         case 0:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg);
 
-                             break;
 
-                         case 1:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg,\
 
-                             argList->at(0));
 
-                             break;
 
-                         case 2:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1));
 
-                             break;
 
-                         case 3:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1), argList->at(2));
 
-                             break;
 
-                         case 4:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3));
 
-                             break;
 
-                         case 5:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4));
 
-                             break;
 
-                         case 6:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), argList->at(5));
 
-                             break;
 
-                         case 7:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), \
 
-                              argList->at(5), argList->at(6));
 
-                             break;
 
-                         case 8:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), \
 
-                              argList->at(5), argList->at(6), argList->at(7));
 
-                             break;
 
-                         case 9:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), \
 
-                              argList->at(5), argList->at(6), argList->at(7), argList->at(8));
 
-                             break;
 
-                         case 10:
 
-                             this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg, \
 
-                              argList->at(0), argList->at(1), argList->at(2), argList->at(3), argList->at(4), \
 
-                              argList->at(5), argList->at(6), argList->at(7), argList->at(8), argList->at(9));
 
-                             break;
 
-                         default:
 
-                             qWarning("%s", tr("Number of arguments not supported. Max 10 arguments").toLatin1().data());
 
-                     } //switch
 
-                  }
 
-             } else {
 
-                 if (returnArg == NULL || returnArg->data() == NULL) { //don't use return value
 
-                     this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1());
 
-                 } else {
 
-                     this->metaObject()->invokeMethod(obj, signal_to_emit.toLatin1(), *returnArg);
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |