PageRenderTime 24ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/source/samples/ObviousCode.Interlace.BitTunnel/BitTunnelClientExample/Controls/LoggingControl.cs

https://bitbucket.org/VahidN/interlace
C# | 136 lines | 114 code | 22 blank | 0 comment | 1 complexity | 06cb554162cdec45b742bb5f7185e389 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using ObviousCode.Interlace.BitTunnel.Connectivity;
  10. namespace BitTunnelClientExample.Controls
  11. {
  12. public partial class LoggingControl : UserControl, IClientTabControl
  13. {
  14. public LoggingControl()
  15. {
  16. InitializeComponent();
  17. }
  18. public LoggingControl(ClientInstance client) : this()
  19. {
  20. Client = client;
  21. client.FileListUpdateReceived += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileListModificationEventArgs>(client_FileListUpdateReceived);
  22. client.FileRequestReceived += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileRequestEventArgs>(client_FileRequestReceived);
  23. client.FileRequestResponseReceived += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileRequestResponseEventArgs>(client_FileRequestResponseReceived);
  24. client.FileTransferCompleted += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileTransferCompletedEventArgs>(client_FileTransferCompleted);
  25. client.FileTransferFailed += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileDescriptorEventArgs>(client_FileTransferFailed);
  26. client.FileTransferInitiated += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileTransferEventArgs>(client_FileTransferInitiated);
  27. client.FileTransferProgressed += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileTransferEventArgs>(client_FileTransferProgressed);
  28. client.FullFileListReceived += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.FileListEventArgs>(client_FullFileListReceived);
  29. client.ConnectionMade += new EventHandler(client_ConnectionMade);
  30. client.ConnectionTerminated += new EventHandler(client_ConnectionTerminated);
  31. client.LostConnection += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.ExceptionEventArgs>(client_LostConnection);
  32. client.MessageReceived += new EventHandler<ObviousCode.Interlace.BitTunnelLibrary.Events.MessageEventArgs>(client_MessageReceived);
  33. }
  34. void client_MessageReceived(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.MessageEventArgs e)
  35. {
  36. Log(string.Format("{0} Message received", e.Message.Key));
  37. }
  38. void client_LostConnection(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.ExceptionEventArgs e)
  39. {
  40. Log(string.Format("Connection Lost : {0}", e.ThrownException.Message));
  41. }
  42. void client_ConnectionTerminated(object sender, EventArgs e)
  43. {
  44. Log("Connection exited gracefully");
  45. }
  46. void client_ConnectionMade(object sender, EventArgs e)
  47. {
  48. Log("Connected to Server");
  49. }
  50. void client_FullFileListReceived(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.FileListEventArgs e)
  51. {
  52. Log("Server file list received");
  53. }
  54. void client_FileTransferProgressed(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.FileTransferEventArgs e)
  55. {
  56. Log(string.Format("File ({0}) chunk {1} of {2} received", e.FileChunk.Header.Hash, e.FileChunk.Header.ChunkIndex, e.FileChunk.Header.ChunkCount));
  57. }
  58. void client_FileTransferInitiated(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.FileTransferEventArgs e)
  59. {
  60. Log(string.Format("File ({0}) transfer initiated", e.FileChunk.Header.Hash));
  61. }
  62. void client_FileTransferFailed(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.FileDescriptorEventArgs e)
  63. {
  64. Log(string.Format("File {0} ({1}) transfer failed", e.File.FileName, e.File.Hash));
  65. }
  66. void client_FileTransferCompleted(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.FileTransferCompletedEventArgs e)
  67. {
  68. Log(string.Format("File ({0}) transfer completed", e.Hash));
  69. }
  70. void client_FileRequestResponseReceived(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.FileRequestResponseEventArgs e)
  71. {
  72. Log(string.Format("File {0} ({1}) request response received : {2}", e.File.FileName, e.File.Hash, e.Response));
  73. }
  74. void client_FileRequestReceived(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.FileRequestEventArgs e)
  75. {
  76. Log(string.Format("File {0} ({1}) request received", e.File.FileName, e.File.Hash));
  77. }
  78. void client_FileListUpdateReceived(object sender, ObviousCode.Interlace.BitTunnelLibrary.Events.FileListModificationEventArgs e)
  79. {
  80. Log("Server file update received");
  81. }
  82. private void Log(string text)
  83. {
  84. if (InvokeRequired)
  85. {
  86. Invoke((MethodInvoker)delegate
  87. {
  88. Log(text);
  89. });
  90. }
  91. else
  92. {
  93. _log.Text += string.Format("{0} {1} {2} {3} {4}",
  94. DateTime.Now.ToShortDateString(),
  95. DateTime.Now.ToLongTimeString(),
  96. " ",
  97. text,
  98. "\r\n");
  99. _log.SelectionStart = _log.Text.Length - 1;
  100. _log.ScrollToCaret();
  101. }
  102. }
  103. #region IClientControl Members
  104. public ClientInstance Client { get; set; }
  105. public string TabText
  106. {
  107. get
  108. {
  109. return "Logs";
  110. }
  111. }
  112. #endregion
  113. }
  114. }