Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }