/// <summary>
		/// Retrieves a remote file
		/// </summary>
		/// <param name="remoteFileName">The remote filename</param>
		/// <param name="localFileName">The local filename</param>
		/// <param name="type">The transfer type</param>
		public override void GetFile(string remoteFileName, string localFileName, FTPFileTransferType type)
		{
			var ftStruct = new FileTransferStruct
			               	{
			               		LocalFileName = localFileName,
			               		RemoteFileName = remoteFileName,
			               		Type = type
			               	};

			_getFileTransfersQueue.Enqueue(ftStruct);

			ThreadPool.QueueUserWorkItem(GetFileFromQueue);
		}
示例#2
0
        /// <summary>
        /// Retrieves a remote file
        /// </summary>
        /// <param name="remoteFileName">The remote filename</param>
        /// <param name="localFileName">The local filename</param>
        /// <param name="type">The transfer type</param>
        public override void GetFile(string remoteFileName, string localFileName, FTPFileTransferType type)
        {
            var ftStruct = new FileTransferStruct
            {
                LocalFileName  = localFileName,
                RemoteFileName = remoteFileName,
                Type           = type
            };

            _getFileTransfersQueue.Enqueue(ftStruct);

            ThreadPool.QueueUserWorkItem(GetFileFromQueue);
        }
示例#3
0
        //------------------------Private methods: -------------------------------------------------
        private Thread CreateGetFileThread(string remoteFileName, string localFileName, FTPFileTransferType type)
        {
            FileTransferStruct ft = new FileTransferStruct();

            ft.LocalFileName  = localFileName;
            ft.RemoteFileName = remoteFileName;
            ft.Type           = type;
            this.getFileTransfersQueue.Enqueue(ft);

            Thread thread = new Thread(new ThreadStart(GetFileFromQueue));

            thread.Name = "GetFileFromQueue " + remoteFileName + ", " + localFileName + ", " + type.ToString();;
            return(thread);
        }
        private Thread create_send_file_thread(string localFileName, string remoteFileName, FTPFileTransferType type)
        {
            var ft = new FileTransferStruct {LocalFileName = localFileName, RemoteFileName = remoteFileName, Type = type};
            this.sendFileTransfersQueue.Enqueue(ft);

            var thread = new Thread(new ThreadStart(SendFileFromQueue))
                             {
                                 Name = "GetFileFromQueue " + localFileName + ", " + remoteFileName + ", " + type.ToString()
                             };
            ;
            return thread;
        }
        private Thread create_get_file_thread(string remoteFileName, string localFileName, FTPFileTransferType type)
        {
            FileTransferStruct ft = new FileTransferStruct();
            ft.LocalFileName = localFileName;
            ft.RemoteFileName = remoteFileName;
            ft.Type = type;
            this.getFileTransfersQueue.Enqueue(ft);

            Thread thread = new Thread(new ThreadStart(get_file_from_queue));
            thread.Name = "GetFileFromQueue " + remoteFileName + ", " + localFileName + ", " + type.ToString();;
            return thread;
        }
示例#6
0
        private void SendFileFromQueue()
        {
            FileTransferStruct ft = (FileTransferStruct)this.sendFileTransfersQueue.Dequeue();

            base.SendFile(ft.LocalFileName, ft.RemoteFileName, ft.Type);
        }
示例#7
0
        private void GetFileFromQueue(object state)
        {
            FileTransferStruct ftStruct = _getFileTransfersQueue.Dequeue();

            base.GetFile(ftStruct.RemoteFileName, ftStruct.LocalFileName, ftStruct.Type);
        }