1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System.Globalization;
- using System.Runtime.InteropServices;
- namespace WinSCP
- {
- [Guid("772FACCC-0786-42E1-B1C8-F08D13C9CD07")]
- [ClassInterface(Constants.ClassInterface)]
- [ComVisible(true)]
- public sealed class TransferEventArgs : FileOperationEventArgs
- {
- public ProgressSide Side { get; internal set; }
- public string Destination { get; private set; }
- public long Length { get; private set; }
- public TouchEventArgs Touch { get; internal set; }
- public ChmodEventArgs Chmod { get; internal set; }
- public RemovalEventArgs Removal { get; internal set; }
- internal const string UploadTag = "upload";
- internal const string DownloadTag = "download";
- internal const string MkDirTag = "mkdir";
- internal TransferEventArgs()
- {
- }
- internal static TransferEventArgs Read(ProgressSide side, CustomLogReader areader)
- {
- TransferEventArgs args = new TransferEventArgs() { Side = side };
- using (ElementLogReader reader = new ElementLogReader(areader))
- {
- while (reader.Read(0))
- {
- if (reader.GetEmptyElementValue("filename", out string value))
- {
- args.FileName = value;
- }
- else if (reader.GetEmptyElementValue("destination", out value))
- {
- args.Destination = value;
- }
- else if (reader.GetEmptyElementValue("size", out value))
- {
- args.Length = long.Parse(value, CultureInfo.InvariantCulture);
- }
- else if (SessionRemoteException.IsResult(reader))
- {
- args.Error = SessionRemoteException.ReadResult(reader);
- }
- }
- }
- return args;
- }
- }
- }
|