Example #1
0
void testThread(int n, ServiceLocator* aDifferentThreadsLocator) {
    ServiceLocator* loc = ServiceLocator::getDefaultLocator();  
    ServiceLocator* loc2 = ServiceLocator::getDefaultLocator();
    Timer* timer1 = loc->locateTimerService();
    Timer* timer2 = loc2->locateTimerService();
    
    MessageService* mes1 = loc->locateMessageService();
    MessageService* mes2 = loc2->locateMessageService();

    assert(mes1 == mes2);
    mes1->publish("someMessage", StringMap());
    
    MessageService* mes3 = aDifferentThreadsLocator->locateMessageService();
    mes3->publish("aMessage", StringMap());
    
    EventQueue* eq = loc->locateEventService();
    eq->pushTimerEvent(loc->locateTimerService()->getTimeStamp());
    
    assert(loc == loc2);
    assert(loc != aDifferentThreadsLocator);
    assert(loc != NULL);
    assert(aDifferentThreadsLocator != NULL);
    
    assert(timer1 == timer2);
    
    assert(mes1 != NULL);
    assert(mes3 != NULL);
    assert(mes1 != mes3);
}