bool CAsyncRequestQueue::AddRequest(CFileZillaEngine *pEngine, std::unique_ptr<CAsyncRequestNotification> && pNotification) { ClearPending(pEngine); if (ProcessDefaults(pEngine, pNotification)) return false; m_requestList.emplace_back(pEngine, std::move(pNotification)); if (m_requestList.size() == 1) { QueueEvent(new wxCommandEvent(fzEVT_PROCESSASYNCREQUESTQUEUE)); } return true; }
void CAsyncRequestQueue::RecheckDefaults() { if (m_requestList.size() <= 1) return; std::list<t_queueEntry>::iterator cur, next; cur = ++m_requestList.begin(); while (cur != m_requestList.end()) { next = cur; ++next; if (ProcessDefaults(cur->pEngine, cur->pNotification)) m_requestList.erase(cur); cur = next; } }
bool CAsyncRequestQueue::AddRequest(CFileZillaEngine *pEngine, CAsyncRequestNotification *pNotification) { ClearPending(pEngine); if (ProcessDefaults(pEngine, pNotification)) return false; t_queueEntry entry; entry.pEngine = pEngine; entry.pNotification = pNotification; m_requestList.push_back(entry); if (m_requestList.size() == 1) { wxCommandEvent evt(fzEVT_PROCESSASYNCREQUESTQUEUE); wxPostEvent(this, evt); } return true; }