NS_IMETHODIMP nsUrlClassifierStreamUpdater::StreamFinished(nsresult status, uint32_t requestedDelay) { // We are a service and may not be reset with Init between calls, so reset // mBeganStream manually. mBeganStream = false; LOG(("nsUrlClassifierStreamUpdater::StreamFinished [%x, %d]", status, requestedDelay)); if (NS_FAILED(status) || mPendingUpdates.Length() == 0) { // We're done. LOG(("nsUrlClassifierStreamUpdater::Done [this=%p]", this)); mDBService->FinishUpdate(); return NS_OK; } // Wait the requested amount of time before starting a new stream. // This appears to be a duplicate timer (see bug 1110891) nsresult rv; mTimer = do_CreateInstance("@mozilla.org/timer;1", &rv); if (NS_SUCCEEDED(rv)) { rv = mTimer->InitWithCallback(this, requestedDelay, nsITimer::TYPE_ONE_SHOT); } if (NS_FAILED(rv)) { NS_WARNING("Unable to initialize timer, fetching next safebrowsing item immediately"); return FetchNext(); } return NS_OK; }
NS_IMETHODIMP nsUrlClassifierStreamUpdater::StreamFinished(nsresult status, uint32_t requestedDelay) { // We are a service and may not be reset with Init between calls, so reset // mBeganStream manually. mBeganStream = false; LOG(("nsUrlClassifierStreamUpdater::StreamFinished [%x, %d]", status, requestedDelay)); if (NS_FAILED(status) || mPendingUpdates.Length() == 0) { // We're done. LOG(("nsUrlClassifierStreamUpdater::Done [this=%p]", this)); mDBService->FinishUpdate(); return NS_OK; } // This timer is for fetching indirect updates ("forwards") from any "u:" lines // that we encountered while processing the server response. It is NOT for // scheduling the next time we pull the list from the server. That's a different // timer in listmanager.js (see bug 1110891). nsresult rv; mTimer = do_CreateInstance("@mozilla.org/timer;1", &rv); if (NS_SUCCEEDED(rv)) { rv = mTimer->InitWithCallback(this, requestedDelay, nsITimer::TYPE_ONE_SHOT); } if (NS_FAILED(rv)) { NS_WARNING("Unable to initialize timer, fetching next safebrowsing item immediately"); return FetchNext(); } return NS_OK; }
NS_IMETHODIMP nsUrlClassifierStreamUpdater::StreamFinished(nsresult status, uint32_t requestedDelay) { LOG(("nsUrlClassifierStreamUpdater::StreamFinished [%x, %d]", status, requestedDelay)); if (NS_FAILED(status) || mPendingUpdates.Length() == 0) { // We're done. mDBService->FinishUpdate(); return NS_OK; } // Wait the requested amount of time before starting a new stream. nsresult rv; mTimer = do_CreateInstance("@mozilla.org/timer;1", &rv); if (NS_SUCCEEDED(rv)) { rv = mTimer->InitWithCallback(this, requestedDelay, nsITimer::TYPE_ONE_SHOT); } if (NS_FAILED(rv)) { NS_WARNING("Unable to initialize timer, fetching next safebrowsing item immediately"); return FetchNext(); } return NS_OK; }
int CBitRead::ReadOneBit(void) { int nRet = m_nInBufWord & 1; if (--m_nBitsAvail == 0) { FetchNext(); } else { m_nInBufWord >>= 1; } return nRet; }
/////////////////////////////////////////////////////////////////////////////// // nsITimerCallback implementation NS_IMETHODIMP nsUrlClassifierStreamUpdater::Notify(nsITimer *timer) { LOG(("nsUrlClassifierStreamUpdater::Notify [%p]", this)); mTimer = nullptr; // Start the update process up again. FetchNext(); return NS_OK; }
bool LL1Parser::Parse() { bool retVal(true); string errorString; string test_2 = ""; char space = ' '; while ( _currentToken != _tokens.end() && retVal == true && _Done == false ) { list<Token> test; while (test.empty() != true) { test.pop_front(); } if (_ruleStack.top().getString() == _currentToken->getString() || _ruleStack.top().getTokenType() == _currentToken->getTokenType()) // might need an OR top of the stack TYPE is the same as current token TYPE { cout << "Matched a token: " << _currentToken->getString() << endl; //cout << "Matched a character: " << _currentToken->getString() << endl; if (_currentToken->getString() == "$") { _Done = true; } else { FetchNext(); _ruleStack.pop(); } } else if (_ruleStack.top().getString() == " ") { cout << "lambda at: " << _currentToken->getString() << endl; //FetchNext(); _ruleStack.pop(); } else { test = GetRule(_ruleStack.top().getString(), _currentToken->getString()); if (test.empty() != true) { _ruleStack.pop(); //push entire "test" token list onto rule stack in reverse order list<Token> List = test; List.reverse(); for (auto itr = List.begin(); itr != List.end(); ++itr) { Token Pushme(itr->getString(), itr->getTokenType()); _ruleStack.push(Pushme); //test_2 = itr->getString(); /* else { string s; s += *itr; Token s2(s, TokenType::UNDEFINED); _ruleStack.push(s2); cout << *itr << endl; } */ } } else { errorString += "Error when trying to find rule [ "; errorString += _ruleStack.top().getString(); errorString += " , "; errorString += _currentToken->getString(); errorString += " ]"; _errors.push_back(errorString); retVal = false; } } //if the rule matching was successful //_currentToken++; } return retVal; }