void PolicyEnforcementEngine::run() { PolicyEnforcement* aPolicyEnforcement; PolicyEnforcementContainerIterator iter; DateAndTime currentTime; int waitingSleepTime = 1; int sleepTimeSeconds = 1; while (1) { if(policyEnforcements.size() != 0) { currentTime.update(); { boost::mutex::scoped_lock lock(mtx); iter = policyEnforcements.begin(); } std::cout << "PolicyEnforcementEngine::run() - First element: '" << (*iter)->getName() << "' has start time = " << (*iter)->getStart() << endl; std::cout << "PolicyEnforcementEngine::run() - Current time: '" << currentTime << endl; if (currentTime == (*iter)->getStart() ) { std::cout << "PolicyEnforcementEngine::run() - Removing and running top element in PolicyEnforcement Container ..." << endl; aPolicyEnforcement = popContainer(); aPolicyEnforcement->run(); } else { std::cout << "PolicyEnforcementEngine::run() - Waiting to run next PolicyEnforcement ..." << endl; sleep(waitingSleepTime); } } else { std::cout << "PolicyEnforcementEngine::run() - Waiting for new PolicyEnforcements ..." << endl; sleep(waitingSleepTime); } } }