void CViewTransfers::GetDocStatus(size_t item, wxString& strBuffer) const { CMainDocument* pDoc = wxGetApp().GetDocument(); FILE_TRANSFER* transfer = 0; if (pDoc) { transfer = pDoc->file_transfer(item); } CC_STATUS status; int retval = pDoc->GetCoreClientStatus(status); if ((transfer) && (!retval)) { wxDateTime dtNextRequest((time_t)transfer->next_request_time); wxDateTime dtNow(wxDateTime::Now()); if (dtNextRequest > dtNow) { wxTimeSpan tsNextRequest(dtNextRequest - dtNow); strBuffer = _("Retry in ") + tsNextRequest.Format(); } else if (ERR_GIVEUP_DOWNLOAD == transfer->status) { strBuffer = _("Download failed"); } else if (ERR_GIVEUP_UPLOAD == transfer->status) { strBuffer = _("Upload failed"); } else { if (status.network_suspend_reason) { strBuffer = _("Suspended"); } else { if (transfer->xfer_active) { strBuffer = transfer->generated_locally? _("Uploading") : _("Downloading"); } else { strBuffer = transfer->generated_locally? _("Upload pending") : _("Download pending"); } } } } }
void CViewTransfers::GetDocStatus(wxInt32 item, wxString& strBuffer) const { FILE_TRANSFER* transfer = NULL; CMainDocument* pDoc = wxGetApp().GetDocument(); int retval; strBuffer = wxString("", wxConvUTF8); transfer = pDoc->file_transfer(item); if (!transfer) return; CC_STATUS status; wxASSERT(pDoc); wxASSERT(wxDynamicCast(pDoc, CMainDocument)); retval = pDoc->GetCoreClientStatus(status); if (retval) return; wxDateTime dtNextRequest((time_t)transfer->next_request_time); wxDateTime dtNow(wxDateTime::Now()); strBuffer = transfer->is_upload?_("Upload"):_("Download"); strBuffer += wxString(": ", wxConvUTF8); if (dtNextRequest > dtNow) { wxTimeSpan tsNextRequest(dtNextRequest - dtNow); strBuffer += _("retry in ") + tsNextRequest.Format(); } else if (transfer->status == ERR_GIVEUP_DOWNLOAD || transfer->status == ERR_GIVEUP_UPLOAD) { strBuffer = _("failed"); } else { if (status.network_suspend_reason) { strBuffer += _("suspended"); strBuffer += wxString(" - ", wxConvUTF8); strBuffer += suspend_reason_wxstring(status.network_suspend_reason); } else { if (transfer->xfer_active) { strBuffer += _("active"); } else { strBuffer += _("pending"); } } } if (transfer->project_backoff) { wxString x; FormatTime(transfer->project_backoff, x); strBuffer += _(" (project backoff: ") + x + _(")"); } }
wxInt32 CViewTransfersGrid::FormatStatus(wxInt32 item, wxString& strBuffer) const { CMainDocument* doc = wxGetApp().GetDocument(); FILE_TRANSFER* transfer = wxGetApp().GetDocument()->file_transfer(item); CC_STATUS status; wxASSERT(doc); wxASSERT(wxDynamicCast(doc, CMainDocument)); doc->GetCoreClientStatus(status); wxDateTime dtNextRequest((time_t)transfer->next_request_time); wxDateTime dtNow(wxDateTime::Now()); if (transfer) { if (dtNextRequest > dtNow) { wxTimeSpan tsNextRequest(dtNextRequest - dtNow); strBuffer = _("Retry in ") + tsNextRequest.Format(); } else if (ERR_GIVEUP_DOWNLOAD == transfer->status) { strBuffer = _("Download failed"); } else if (ERR_GIVEUP_UPLOAD == transfer->status) { strBuffer = _("Upload failed"); } else { if (status.network_suspend_reason) { strBuffer = _("Suspended"); } else { if (transfer->xfer_active) { strBuffer = transfer->generated_locally? _("Uploading") : _("Downloading"); } else { strBuffer = transfer->generated_locally? _("Upload pending") : _("Download pending"); } } } } strBuffer = wxT(" ") + strBuffer; return 0; }
wxString CUtils::ConstructTransferStatus(CBSLTransfer& bslTransfer) { CBSLClient* pState = wxGetApp().GetState(); CBSLHostStatus bslHostStatus; wxString strBuffer = wxEmptyString; pState->GetHostStatus(bslTransfer.GetHostHandle(), &bslHostStatus, false); if (bslTransfer.GetProjectBackoff() > 1) { if (bslTransfer.IsUpload()) { strBuffer.Printf( _("Upload: pending (project backoff: %s)"), bslTransfer.GetProjectBackoff().Format().wx_str() ); } else { strBuffer.Printf( _("Download: pending (project backoff: %s)"), bslTransfer.GetProjectBackoff().Format().wx_str() ); } } else if (bslTransfer.GetNextRequestTime() > wxDateTime::Now()) { wxTimeSpan tsNextRequest(bslTransfer.GetNextRequestTime() - wxDateTime::Now()); if (bslTransfer.IsUpload()) { strBuffer = _("Upload: retry in ") + tsNextRequest.Format(); } else { strBuffer = _("Download: retry in ") + tsNextRequest.Format(); } } else if (bslHostStatus.GetNetworkSuspendReason()) { if (bslTransfer.IsUpload()) { strBuffer.Printf( _("Upload: suspended (%s)"), ConstructSuspendReason(bslHostStatus.GetTaskSuspendReason()).wx_str() ); } else { strBuffer.Printf( _("Download: suspended (%s)"), ConstructSuspendReason(bslHostStatus.GetTaskSuspendReason()).wx_str() ); } } else { if (bslTransfer.IsUpload()) { strBuffer = _("Upload: active"); } else { strBuffer = _("Download: active"); } } return strBuffer; }