ManagerFilter::ManagerFilter() { // Initialize structures: streams, vars, mutexes, etc. this->sOut = getOutputHandler("out"); this->sWorkRequest = getOutputHandler("workRequest"); this->sNewWork = getInputHandler("newWork"); this->sNeedMore = getInputHandler("needMore"); this->currVal = 0; this->msgId = 1; this->hasRequest = false; pthread_mutex_init(&mWorkQueue, NULL); pthread_mutex_init(&mStatus, NULL); pthread_mutex_init(&mLog, NULL); // Open Log File log.open("manager.log", std::fstream::out); // Create initial work buildInitialWork(); // Set event handlers setHandler( sNewWork, &ManagerFilter::handleNewWork ); setHandler( sNeedMore, &ManagerFilter::handleNeedMore ); }
void SockDgram_IOChannel::dataIndication(void * arg, Msg_t *msg) { getInputHandler()->handleInput((void *)this->getID(), msg); }