/// <summary> /// Add a <see cref="MTransfer"/> to the corresponding transfers list if it is not already included. /// </summary> /// <param name="megaTransfers"><see cref="TransferQueue"/> which contains the transfers list(s).</param> /// <param name="transfer"><see cref="MTransfer"/> to be added to the corresponding transfer list.</param> /// <returns>The <see cref="TransferObjectModel"/> corresponding to the <see cref="MTransfer"/>.</returns> public static TransferObjectModel AddTransferToList(TransferQueue megaTransfers, MTransfer transfer) { // Folder transfers are not included into the transfers list. if (transfer == null || transfer.isFolderTransfer()) { return(null); } // Search if the transfer already exists into the transfers list. var megaTransfer = SearchTransfer(megaTransfers.SelectAll(), transfer); if (megaTransfer != null) { return(megaTransfer); } // If doesn't exist create a new one and add it to the transfers list megaTransfer = CreateTransferObjectModel(transfer); if (megaTransfer != null) { megaTransfers.Add(megaTransfer); } return(megaTransfer); }
void transferClient_Queued(object sender, TransferQueue queue) { if (InvokeRequired) { Invoke(new TransferEventHandler(transferClient_Queued), sender, queue); return; } //Create the LVI for the new transfer. ListViewItem i = new ListViewItem(); i.Text = queue.ID.ToString(); i.SubItems.Add(queue.Filename); //If the type equals download, it will use the string of "Download", if not, it'll use "Upload" i.SubItems.Add(queue.Type == QueueType.Download ? "Download" : "Upload"); i.SubItems.Add("0%"); i.Tag = queue; //Set the tag to queue so we can grab is easily. i.Name = queue.ID.ToString(); //Set the name of the item to the ID of our transfer for easy access. lstTransfers.Items.Add(i); //Add the item i.EnsureVisible(); //If the type is download, let the uploader know we're ready. if (queue.Type == QueueType.Download) { transferClient.StartTransfer(queue); } }
public void TransferQueueOneTakeTimeout() { TransferQueue <int> tranferQueue = new TransferQueue <int>(); int msg1 = 0, msg2 = 0; bool transfered = false, taken1 = false, taken2 = true; Thread t1 = new Thread(() => { transfered = tranferQueue.Transfer(22, 50); }); Thread t2 = new Thread(() => { taken1 = tranferQueue.Take(50, out msg1); }); Thread t3 = new Thread(() => { taken2 = tranferQueue.Take(50, out msg2); }); t1.Start(); t2.Start(); Thread.Sleep(10); t3.Start(); t1.Join(); t2.Join(); t3.Join(); Assert.IsTrue(taken1); Assert.IsFalse(taken2); Assert.IsTrue(transfered); Assert.AreEqual(22, msg1); Assert.AreEqual(default(int), msg2); }
void CurrentTransferQueue_QueueProgressUpdated(object sender, EventArgs e) { TransferQueue tq = sender as TransferQueue; if (tq == null || tq.CurrentFtpClient == null) { return; } aaaSoft.Net.Ftp.FtpClient ftpClient = tq.CurrentFtpClient; Double progressDouble = ftpClient.TransferProgress; Int32 progressInt32 = Convert.ToInt32(progressDouble * (pbTransferProgress.Maximum - pbTransferProgress.Minimum) + pbTransferProgress.Minimum); if (progressInt32 < pbTransferProgress.Minimum) { progressInt32 = pbTransferProgress.Minimum; } if (progressInt32 > pbTransferProgress.Maximum) { progressInt32 = pbTransferProgress.Maximum; } this.BeginInvoke(new ThreadHelper.UnnamedDelegate(delegate() { pbTransferProgress.Value = progressInt32; lblTransferUsedTime.Text = String.Format("耗时:{0}", ftpClient.TransferUsedTime.ToString().Substring(0, 8)); lblTransferProgressText.Text = String.Format("{0}%", progressInt32); lblTransferLeftTime.Text = storageUnitStringConverting.GetString(ftpClient.ImmediateTransferSpeed, 2, false) + "B" + "/秒"; })); }
private void OnTransferClientProgressChanged(object sender, TransferQueue queue) { if (InvokeRequired) { Invoke(new TransferEventHandler(OnTransferClientProgressChanged), sender, queue); } progressSet(queue); }
private void buttonOK_Click(object sender, EventArgs e) { this.Return = this.GetTransferOption(); if (!this.Return.IsValid) { this.Return = null; } }
public virtual void Download(TransferQueue transferQueue, string downloadPath = null) { if (!IsUserOnline()) { return; } SaveForOffline(); }
//// imported code private void OnTransferClientStopped(object sender, TransferQueue queue) { if (InvokeRequired) { Invoke(new TransferEventHandler(OnTransferClientStopped), sender, queue); return; } }
private void TransferClient_ProgressChanged(object sender, TransferQueue queue) { if (!this.Dispatcher.CheckAccess()) { this.Dispatcher.Invoke(new TransferEventHandler(this.TransferClient_ProgressChanged), sender, queue); return; } }
private void TransferClient_progressChanged(object sender, TransferQueue queue) { if (InvokeRequired) { Invoke(new TransferEventHandler(TransferClient_progressChanged), sender, queue); return; } lstTransfers.Items[queue.ID.ToString()].SubItems[3].Text = queue.Progress + "%"; }
private void TransferClient_Queued(object sender, TransferQueue queue) { Global.GlobalSigh.TransferUpdate(queue.ID.ToString(), queue.FileName, queue.Type == QueueType.Download ? "Download":"Upload", "0%"); Global.GlobalSigh.LisOfQueue.Add(queue); if (queue.Type == QueueType.Download) { transferClient.StartTransfer(queue); } }
//// imported code private void OnTransferClientStopped(object sender, TransferQueue queue) { if (InvokeRequired) { Invoke(new TransferEventHandler(OnTransferClientStopped), sender, queue); return; } lstTransfers.Items[queue.ID.ToString()].Remove(); }
private void ViewConnectionsChangedEvent() { int connections = View.QueueSize; _preferences.setProperty("queue.connections.limit", connections); TransferQueue queue = TransferQueueFactory.get(); queue.resize(connections); }
private void TransferClient_Stopped(object sender, TransferQueue queue) { if (!this.Dispatcher.CheckAccess()) { this.Dispatcher.Invoke(new TransferEventHandler(this.TransferClient_Stopped), sender, queue); return; } this.fileTransfers.Remove(queue); }
void transferClient_Stopped(object sender, TransferQueue queue) { if (InvokeRequired) { Invoke(new TransferEventHandler(transferClient_Stopped), sender, queue); return; } //Remove the stopped transfer from view. lstTransfers.Items[queue.ID.ToString()].Remove(); }
private void TransferClient_Queued(object sender, TransferQueue queue) { QueueInfoList.Add(queue.ID.ToString(), new QueueInformation { FileName = queue.FileName, Type = queue.Type == QueueType.Download ? "Download" : "Upload", Progress = 0 }); QueueList.Add(queue); if (queue.Type == QueueType.Download) { transferClient.StartTransfer(queue); } }
void transferClient_ProgressChanged(object sender, TransferQueue queue) { if (InvokeRequired) { Invoke(new TransferEventHandler(transferClient_ProgressChanged), sender, queue); return; } //Set the progress cell to our current progress. lstTransfers.Items[queue.ID.ToString()].SubItems[3].Text = queue.Progress + "%"; }
private void btnClearComplete_Click(object sender, EventArgs e) { foreach (ListViewItem i in lstTransfers.Items) { TransferQueue queue = (TransferQueue)i.Tag; if (queue.Progress == 100 || !queue.Running) { i.Remove(); } } }
private void btnPauseTransfer_Click(object sender, EventArgs e) { if (transferClient == null) { return; } foreach (ListViewItem i in lstTransfers.SelectedItems) { TransferQueue queue = (TransferQueue)i.Tag; queue.Client.PauseTransfer(queue); } }
public void OnTransferClientQueued(object sender, TransferQueue queue) { if (InvokeRequired) { Invoke(new TransferEventHandler(OnTransferClientQueued), sender, queue); return; } fileName = queue.FileName; filePath = inPath + "\\" + fileName; }
public MainForm() { InitializeComponent(); LogHelper.LogPushed += new LogHelper.LogEventHandler(LogHelper_LogPushed); CurrentTransferQueue = new TransferQueue(); CurrentTransferQueue.QueueAdded += new TransferQueue.QueueEventHandler(CurrentTransferQueue_QueueAdded); CurrentTransferQueue.QueueRemoved += new TransferQueue.QueueEventHandler(CurrentTransferQueue_QueueRemoved); CurrentTransferQueue.QueueStarted += new TransferQueue.QueueEventHandler(CurrentTransferQueue_QueueStarted); CurrentTransferQueue.QueueCompleted += new TransferQueue.QueueEventHandler(CurrentTransferQueue_QueueCompleted); CurrentTransferQueue.QueueStoped += new TransferQueue.QueueEventHandler(CurrentTransferQueue_QueueStoped); CurrentTransferQueue.QueueProgressUpdated += new EventHandler(CurrentTransferQueue_QueueProgressUpdated); CurrentFolderPath = "/"; }
private void TransferClient_Stopped(object sender, TransferQueue queue) { var keyValuePair = Transfers.Single(i => i.Value.Id == queue.Id.ToString()); keyValuePair.Value.State = TransferState.Stopped; if (transferClient == null) { return; } ProgressOverall = transferClient.GetOverallProgress(); }
private void btnStopTransfer_Click(object sender, EventArgs e) { if (transferClient == null) { return; } foreach (ListViewItem i in lstTransfers.SelectedItems) { TransferQueue queue = (TransferQueue)i.Tag; queue.Client.StopTransfer(queue); i.Remove(); } progressOverall.Value = 0; }
public void SuccessfulPutAndTake() { TransferQueue <int> transferQueue = new TransferQueue <int>(); int numberOfThreads = 4; int timeout = 50; int message = 35; Thread[] threads = new Thread[numberOfThreads]; for (int i = 0; i < numberOfThreads / 2; i++) { threads[i] = new Thread(() => transferQueue.Put(message)); } int[] msgs = new int[2]; int idx = default; for (int i = 2; i < numberOfThreads; i++) { threads[i] = new Thread(() => { try { Thread.Sleep(10); msgs[idx++] = transferQueue.Take(timeout); } catch (ThreadInterruptedException e) { Console.WriteLine("Error : take exception"); Console.WriteLine(e.StackTrace); } }); } threads[0].Start(); //put message Thread.Sleep(1); threads[2].Start(); // take message Thread.Sleep(1); threads[3].Start(); // take message - blocking Thread.Sleep(1); threads[1].Start(); // put message Thread.Sleep(1); for (int i = 0; i < numberOfThreads; i++) { threads[i].Join(); } for (int i = 2; i < numberOfThreads; i++) { Assert.AreEqual(message, msgs[i - 2]); } }
public void SuccessfulTransferAndTake() { TransferQueue <int> transferQueue = new TransferQueue <int>(); int numberOfThreads = 4; int timeout = 50; int message = 35; Thread[] threads = new Thread[numberOfThreads]; for (int i = 0; i < numberOfThreads / 2; i++) { threads[i] = new Thread(() => { try { transferQueue.Transfer(message, timeout); } catch (ThreadInterruptedException e) { Console.WriteLine("ERROR : transfer exception"); Console.WriteLine(e.StackTrace); } }); } int msg = default; for (int i = 2; i < numberOfThreads; i++) { threads[i] = new Thread(() => { try { Thread.Sleep(10); msg = transferQueue.Take(timeout); } catch (ThreadInterruptedException e) { Console.WriteLine("ERROR : take exception"); Console.WriteLine(e.StackTrace); } }); } for (int i = 0; i < numberOfThreads; i++) { threads[i].Start(); } for (int i = 0; i < numberOfThreads; i++) { threads[i].Join(); } Assert.AreEqual(message, msg); }
public void Enqueue() { TransferQueue <string> queue = new TransferQueue <string>(3); queue.Enqueue("ELM0"); Assert.AreEqual(queue.Peek(), "ELM0"); queue.Enqueue("ELM1"); Assert.AreEqual(queue.Peek(), "ELM0"); queue.Enqueue("ELM2"); Assert.Throws <InvalidOperationException>(delegate() { queue.Enqueue("ELM3"); }); Assert.AreEqual(queue.Peek(), "ELM0"); }
private void TransferClient_Queued(object sender, TransferQueue queue) { if (!this.Dispatcher.CheckAccess()) { this.Dispatcher.Invoke(new TransferEventHandler(this.TransferClient_Queued), sender, queue); return; } this.fileTransfers.Add(queue); if (queue.Type == QueueType.Download) { this.fileClient.StartTransfer(queue); } }
public void QueueFull() { TransferQueue <string> queue = new TransferQueue <string>(3); queue.QueueFull += new TransferQueue <string> .QueueFullEventHandler(queue_QueueFull); queue.Enqueue("ELM0"); queue.Enqueue("ELM1"); queue.Enqueue("ELM2"); // the queue is empty? Assert.Throws <InvalidOperationException>(delegate() { queue.Peek(); }); // the queue has been cleaned? queue.Enqueue("ELM3"); Assert.AreEqual(queue.Count, 1); }
private _TransferQueueManager() { transferPacketList = new List <TransferPacket>(); loginData = Settings.MasterLogin; //initialize new Sftp connection client = new Sftp(); client.Timeout = -1; client.ReconnectionMaxRetries = Settings.MaxTransferErrorCount; client.ReconnectionFailureDelay = 5000; queue = new TransferQueue(3); queue.ReuseRemoteConnection = true; queue.ItemProcessed += Queue_ItemProcessed; queue.Start(); }
/// <summary> /// While this test case is not for documentation rules, we use this /// to verify the bug where multiline interpolated string results in incorrect line numbers. /// </summary> private static void TestCaseForIssue105Part1() { int value; var singleLineDummyString = $@"Some Text"; // Declare dummy string. var dummyString = string.Format( $@" Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque {0} penatibus et magnis dis parturient montes, nascetur ridiculus mus. ", value); // Do something with the dummy string. TransferQueue.Enqueue(dummyString); }