public void DisplayText(NetworkEvent ne) { this.m_Image = null; DateTime time = new DateTime(ne.timeIndex); this.infoLabel.Text = ""; this.appendText("Sender: " + ne.source); this.appendText("Time: " + time.ToLongDateString() + " " + time.ToLongTimeString()); if (ne is NetworkChunkEvent) { NetworkChunkEvent nce = ne as NetworkChunkEvent; this.appendText("Category: Chunk"); this.appendText("Message Sequence: " + nce.chunk.MessageSequence); this.appendText("Chunk Sequence: " + nce.chunk.ChunkSequence); this.appendText("First Chunk Sequence of Message: " + nce.chunk.FirstChunkSequenceOfMessage); this.appendText("Number of Chunks: " + nce.chunk.NumberOfChunksInMessage); } else if (ne is NetworkMessageEvent) { NetworkMessageEvent nme = ne as NetworkMessageEvent; this.appendText("Category: Message"); this.displayMessageEventRecursive(nme.message); } else if (ne is NetworkNACKMessageEvent) { } else { //Unknown this.infoLabel.Text = "Unknown Type"; } this.doubleBufferPanel.Invalidate(); }
public NetworkPlayback(string filename) { ChunkAssembler assembler = new ChunkAssembler(); NetworkArchiver archiver = new NetworkArchiver(); archiver.OpenArchive(filename); while (archiver.HasMoreEvents()) { //Get the current event NetworkEvent ne = archiver.GetNextEvent(); if (ne != null) { //Add it to the chunkEvents (which contains everything) this.chunkEvents.Add(ne); if (ne is NetworkChunkEvent) { NetworkChunkEvent nce = (NetworkChunkEvent)ne; //Add it to the chunk assembler Message m = assembler.Add(nce.chunk); if (m != null) { //We have a complete message! NetworkMessageEvent nme = new NetworkMessageEvent(m, ne.timeIndex, ne.source); this.messageEvents.Add(nme); } } else if (ne is NetworkMessageEvent) { this.messageEvents.Add(((NetworkMessageEvent)ne).message); } else { //Skip } } } archiver.CloseArchive(); }