Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
    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);
        }
    }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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" + "/秒";
            }));
        }
Ejemplo n.º 5
0
 private void OnTransferClientProgressChanged(object sender, TransferQueue queue)
 {
     if (InvokeRequired)
     {
         Invoke(new TransferEventHandler(OnTransferClientProgressChanged), sender, queue);
     }
     progressSet(queue);
 }
Ejemplo n.º 6
0
 private void buttonOK_Click(object sender, EventArgs e)
 {
     this.Return = this.GetTransferOption();
     if (!this.Return.IsValid)
     {
         this.Return = null;
     }
 }
Ejemplo n.º 7
0
 public virtual void Download(TransferQueue transferQueue, string downloadPath = null)
 {
     if (!IsUserOnline())
     {
         return;
     }
     SaveForOffline();
 }
Ejemplo n.º 8
0
 //// imported code
 private void OnTransferClientStopped(object sender, TransferQueue queue)
 {
     if (InvokeRequired)
     {
         Invoke(new TransferEventHandler(OnTransferClientStopped), sender, queue);
         return;
     }
 }
Ejemplo n.º 9
0
 private void TransferClient_ProgressChanged(object sender, TransferQueue queue)
 {
     if (!this.Dispatcher.CheckAccess())
     {
         this.Dispatcher.Invoke(new TransferEventHandler(this.TransferClient_ProgressChanged), sender, queue);
         return;
     }
 }
Ejemplo n.º 10
0
 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 + "%";
 }
Ejemplo n.º 11
0
 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);
     }
 }
Ejemplo n.º 12
0
 //// imported code
 private void OnTransferClientStopped(object sender, TransferQueue queue)
 {
     if (InvokeRequired)
     {
         Invoke(new TransferEventHandler(OnTransferClientStopped), sender, queue);
         return;
     }
     lstTransfers.Items[queue.ID.ToString()].Remove();
 }
Ejemplo n.º 13
0
        private void ViewConnectionsChangedEvent()
        {
            int connections = View.QueueSize;

            _preferences.setProperty("queue.connections.limit", connections);
            TransferQueue queue = TransferQueueFactory.get();

            queue.resize(connections);
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
 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);
     }
 }
Ejemplo n.º 17
0
    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 + "%";
    }
Ejemplo n.º 18
0
    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();
            }
        }
    }
Ejemplo n.º 19
0
 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);
     }
 }
Ejemplo n.º 20
0
        public void OnTransferClientQueued(object sender, TransferQueue queue)
        {
            if (InvokeRequired)
            {
                Invoke(new TransferEventHandler(OnTransferClientQueued), sender, queue);
                return;
            }


            fileName = queue.FileName;
            filePath = inPath + "\\" + fileName;
        }
Ejemplo n.º 21
0
 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 = "/";
 }
Ejemplo n.º 22
0
        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();
        }
Ejemplo n.º 23
0
 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;
 }
Ejemplo n.º 24
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]);
            }
        }
Ejemplo n.º 25
0
        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);
        }
Ejemplo n.º 26
0
        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");
        }
Ejemplo n.º 27
0
        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);
            }
        }
Ejemplo n.º 28
0
        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);
        }
Ejemplo n.º 29
0
        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();
        }
Ejemplo n.º 30
0
        /// <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);
        }