/// <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); }
//------------------------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; }
private void SendFileFromQueue() { FileTransferStruct ft = (FileTransferStruct)this.sendFileTransfersQueue.Dequeue(); base.SendFile(ft.LocalFileName, ft.RemoteFileName, ft.Type); }
private void GetFileFromQueue(object state) { FileTransferStruct ftStruct = _getFileTransfersQueue.Dequeue(); base.GetFile(ftStruct.RemoteFileName, ftStruct.LocalFileName, ftStruct.Type); }