/// <summary> /// Send a get file properties request. Block until response has arrived. /// </summary> public bool GetFileProperties(string remoteFilePathAndName, out FileProperties properties) { _lastReceivedFileProperties = null; mreListFileProperties.Reset(); bool sendSuccess = FileTunnelClient.SendMessageCarrier(new MessageCarrier(MessageType.FilePropertiesRequest) { Payload = remoteFilePathAndName }); if (!sendSuccess) { properties = null; return(false); } mreListFileProperties.WaitOne(); if (_lastReceivedFileProperties != null) { properties = _lastReceivedFileProperties; return(true); } else { properties = null; return(false); } }
public bool WatchDirectory(Action <string> modified) { bool sendSuccess = FileTunnelClient.SendMessageCarrier(new MessageCarrier(MessageType.WatchDirectoryRequest)); if (sendSuccess) { WatcherFileModified = modified; return(true); } else { return(false); } }
/// <summary> /// Send a file download request. Block until file/response has arrived. /// </summary> public bool Download(string remoteFilePathAndName) { mreDownload.Reset(); _lastRequestedFile = Path.GetFileName(remoteFilePathAndName); bool sendSuccess = FileTunnelClient.SendMessageCarrier(new MessageCarrier(MessageType.FileRequest) { Payload = remoteFilePathAndName }); if (!sendSuccess) { return(false); } mreDownload.WaitOne(); return(_lastReceiveFileSuccess); }
/// <summary> /// Send a list directories request. Block until response has arrived. /// </summary> public bool ListDirectories(string remotePath, out List <string> remoteDirectories) { _lastReceivedDirectoriesList = null; mreListDirectories.Reset(); bool sendSuccess = FileTunnelClient.SendMessageCarrier(new MessageCarrier(MessageType.ListDirectoriesRequest) { Payload = remotePath }); if (!sendSuccess) { remoteDirectories = null; return(false); } mreListDirectories.WaitOne(); remoteDirectories = _lastReceivedDirectoriesList; return(sendSuccess); }