public Download(Peer __peer, RingInfo __ringInfo, ResourceHeader __header, UICallBack __UIHandler) { peer = __peer; ringInfo = __ringInfo; header = __header; //REVISIT: make sure there is enough room for meta data. Also if very large you want to split up into a list of //buffers or circular buffer where the buffer is written to temp file at milestones. buffer = new byte[header.size]; bytesRead = 0; UIHandler = __UIHandler; }
public bool Download(Peer peer, RingInfo ringInfo, ResourceHeader resourceHeader, UICallBack UIHndlr) { Download download = new Download(peer, ringInfo, resourceHeader, UIHndlr); int downloadIndex = Add(download); if (downloadIndex < 0) { Queue(download); return false; } Download_Internal(download); return true; }
private void searchResultDoubleClickHandler(object Sender, System.EventArgs e) { int selectIndex = this.queryHitsGrid.CurrentRowIndex; DataRow dr = queryResultsTable.Rows[selectIndex]; Peer peer = (Peer)dr[5]; RingInfo ringInfo = (RingInfo)dr[6]; ResourceHeader header = (ResourceHeader)dr[7]; ProgressBar downloadBar = new ProgressBar(); dr[4] = downloadBar; downloadBar.Maximum = (int)header.size; Rectangle cellBound = queryHitsGrid.GetCellBounds(selectIndex, 4); downloadBar.Bounds = cellBound; downloadBar.Location = new Point(cellBound.X, cellBound.Y); downloadBar.Name = "downloadProgressBar"; downloadBar.Size = new Size(cellBound.Width, cellBound.Height); downloadBar.Visible = true; UpdateUIHandler downloadProgressBarUpdate = new UpdateUIHandler(updateDownloadProgressBar); UICallBack progressBarUpdate = new UICallBack(downloadProgressBarUpdate, downloadBar); client.RetreiveResource(peer, ringInfo, header, progressBarUpdate); //MessageBox.Show("downloading " + header.name + "..."); }
public void RetreiveResource(Peer peer, RingInfo ringInfo, ResourceHeader resourceHeader, UICallBack UIHndlr) { downloadManager.Download(peer, ringInfo, resourceHeader, UIHndlr); }