public void Dispose() { if (m_current != null) { m_current.DisposeTempFile(); m_current = null; } }
public bool MoveNext() { if (m_current != null) { m_current.DisposeTempFile(); m_current = null; } if (m_index >= m_volumes.Count) { return(false); } if (m_handle == null) { m_handle = m_backend.GetAsync(m_volumes[m_index].Name, m_volumes[m_index].Size, m_volumes[m_index].Hash); } string hash = null; long size = -1; Library.Utility.TempFile file = null; Exception exception = null; try { file = m_handle.Wait(out hash, out size); } catch (Exception ex) { Logging.Log.WriteErrorMessage(LOGTAG, "FailedToRetrieveFile", ex, "Failed to retrieve file {0}", m_volumes[m_index].Name); exception = ex; } m_current = new AsyncDownloadedFile(m_volumes[m_index].Name, hash, size, file, exception); m_handle = null; m_index++; if (m_index < m_volumes.Count) { m_handle = m_backend.GetAsync(m_volumes[m_index].Name, m_volumes[m_index].Size, m_volumes[m_index].Hash); } return(true); }