public int CompareTo(Object obj) { TCPEvent otherEvent = obj as TCPEvent; return(timestamp.CompareTo(otherEvent.timestamp)); }
private void messageTbl_RowChanged(object sender, DataRowChangeEventArgs e) { if (e.Action == DataRowAction.Add) { e.Row.BeginEdit(); e.Row["Sender"] = String.Format("{0} [pid={1}, tid={2}]", e.Row["ProcessName"], e.Row["ProcessId"], e.Row["ThreadId"]); int index = (int) e.Row["Index"]; DateTime timestamp = (DateTime) e.Row["Timestamp"]; UInt32 resourceId = (UInt32) e.Row["ResourceId"]; PacketDirection direction = (PacketDirection)((UInt32)e.Row["Direction"]); byte[] data = (byte[]) e.Row["Data"]; string suffix = (data.Length > 1) ? "s" : ""; IPEndpoint localEndpoint = new IPEndpoint((string) e.Row["LocalAddress"], (UInt16) e.Row["LocalPort"]); IPEndpoint remoteEndpoint = new IPEndpoint((string)e.Row["PeerAddress"], (UInt16)e.Row["PeerPort"]); if ((MessageType) ((UInt32) e.Row["MsgType"]) == MessageType.MESSAGE_TYPE_MESSAGE) { MessageContext context = (MessageContext) ((UInt32) e.Row["MsgContext"]); string s = ""; switch (context) { case MessageContext.MESSAGE_CTX_ACTIVESYNC_DEVICE: s = "DeviceLabel = "; break; case MessageContext.MESSAGE_CTX_ACTIVESYNC_STATUS: s = "StatusLabel = "; break; case MessageContext.MESSAGE_CTX_ACTIVESYNC_SUBSTATUS: s = "SubStatusLabel = "; break; case MessageContext.MESSAGE_CTX_ACTIVESYNC_WZ_STATUS: s = "WizardStatusLabel = "; break; case MessageContext.MESSAGE_CTX_SOCKET_CONNECTING: case MessageContext.MESSAGE_CTX_SOCKET_CONNECTED: case MessageContext.MESSAGE_CTX_SOCKET_DISCONNECTED: case MessageContext.MESSAGE_CTX_SOCKET_RESET: case MessageContext.MESSAGE_CTX_SOCKET_LISTENING: SocketEventType evType; switch (context) { case MessageContext.MESSAGE_CTX_SOCKET_CONNECTING: evType = SocketEventType.CONNECTING; break; case MessageContext.MESSAGE_CTX_SOCKET_CONNECTED: if (direction == PacketDirection.PACKET_DIRECTION_INCOMING) evType = SocketEventType.CONNECTED_INBOUND; else evType = SocketEventType.CONNECTED_OUTBOUND; break; case MessageContext.MESSAGE_CTX_SOCKET_DISCONNECTED: evType = SocketEventType.DISCONNECTED; break; case MessageContext.MESSAGE_CTX_SOCKET_RESET: evType = SocketEventType.RESET; break; case MessageContext.MESSAGE_CTX_SOCKET_LISTENING: evType = SocketEventType.LISTENING; break; default: evType = SocketEventType.UNKNOWN; break; } TCPEvent ev = new TCPEvent(timestamp, resourceId, evType, localEndpoint, remoteEndpoint); tmpEventList.Add(ev); break; } if (s != "") e.Row["Description"] = String.Format("{0}\"{1}\"", s, e.Row["Message"]); else e.Row["Description"] = e.Row["Message"]; } else { string msgPrefix = ""; if (localEndpoint.Address.Length > 0) { msgPrefix = String.Format("{0}: ", localEndpoint); } string msgSuffix = ""; if (remoteEndpoint.Address.Length > 0) { msgSuffix = String.Format(" {0} {1}", (direction == PacketDirection.PACKET_DIRECTION_INCOMING) ? "from" : "to", remoteEndpoint); } if (msgPrefix.Length > 0 && msgSuffix.Length > 0) { if (direction == PacketDirection.PACKET_DIRECTION_INCOMING) { e.Row["Description"] = String.Format("{0}Received {1} byte{2}{3}", msgPrefix, data.Length, suffix, msgSuffix); } else { e.Row["Description"] = String.Format("{0}Sent {1} byte{2}{3}", msgPrefix, data.Length, suffix, msgSuffix); } } else { e.Row["Description"] = e.Row["Message"]; } IPPacket pkt = new IPPacket(index, timestamp, resourceId, direction, localEndpoint, remoteEndpoint, data); tmpPacketList.Add(pkt); } e.Row["BgColor"] = GetColorForASState(e.Row); e.Row.EndEdit(); } }
public void AddEvent(TCPEvent ev) { events.Add(ev); }