OpenMetaverse.Messages.Linden.ViewerStatsMessage.Deserialize C# (CSharp) Method

Deserialize() public method

Deserialize the message
public Deserialize ( OSDMap map ) : void
map OSDMap An containing the data
return void
        public void Deserialize(OSDMap map)
        {
            SessionID = map["session_id"].AsUUID();

            OSDMap agentMap = (OSDMap)map["agent"];
            AgentsInView = agentMap["agents_in_view"].AsInteger();
            AgentFPS = (float)agentMap["fps"].AsReal();
            AgentLanguage = agentMap["language"].AsString();
            AgentMemoryUsed = (float)agentMap["mem_use"].AsReal();
            MetersTraveled = agentMap["meters_traveled"].AsInteger();
            AgentPing = (float)agentMap["ping"].AsReal();
            RegionsVisited = agentMap["regions_visited"].AsInteger();
            AgentRuntime = (float)agentMap["run_time"].AsReal();
            SimulatorFPS = (float)agentMap["sim_fps"].AsReal();
            AgentStartTime = Utils.UnixTimeToDateTime(agentMap["start_time"].AsUInteger());
            AgentVersion = agentMap["version"].AsString();

            OSDMap downloadsMap = (OSDMap)map["downloads"];
            object_kbytes = (float)downloadsMap["object_kbytes"].AsReal();
            texture_kbytes = (float)downloadsMap["texture_kbytes"].AsReal();
            world_kbytes = (float)downloadsMap["world_kbytes"].AsReal();

            OSDMap miscMap = (OSDMap)map["misc"];
            MiscVersion = (float)miscMap["Version"].AsReal();
            VertexBuffersEnabled = miscMap["Vertex Buffers Enabled"].AsBoolean();

            OSDMap statsMap = (OSDMap)map["stats"];
            OSDMap failuresMap = (OSDMap)statsMap["failures"];
            StatsDropped = failuresMap["dropped"].AsInteger();
            StatsFailedResends = failuresMap["failed_resends"].AsInteger();
            FailuresInvalid = failuresMap["invalid"].AsInteger();
            FailuresOffCircuit = failuresMap["off_circuit"].AsInteger();
            FailuresResent = failuresMap["resent"].AsInteger();
            FailuresSendPacket = failuresMap["send_packet"].AsInteger();

            OSDMap statsMiscMap = (OSDMap)statsMap["misc"];
            MiscInt1 = statsMiscMap["int_1"].AsInteger();
            MiscInt2 = statsMiscMap["int_2"].AsInteger();
            MiscString1 = statsMiscMap["string_1"].AsString();
            OSDMap netMap = (OSDMap)statsMap["net"];
            // in
            OSDMap netInMap = (OSDMap)netMap["in"];
            InCompressedPackets = netInMap["compressed_packets"].AsInteger();
            InKbytes = netInMap["kbytes"].AsInteger();
            InPackets = netInMap["packets"].AsInteger();
            InSavings = netInMap["savings"].AsInteger();
            // out
            OSDMap netOutMap = (OSDMap)netMap["out"];
            OutCompressedPackets = netOutMap["compressed_packets"].AsInteger();
            OutKbytes = netOutMap["kbytes"].AsInteger();
            OutPackets = netOutMap["packets"].AsInteger();
            OutSavings = netOutMap["savings"].AsInteger();

            //system
            OSDMap systemStatsMap = (OSDMap)map["system"];
            SystemCPU = systemStatsMap["cpu"].AsString();
            SystemGPU = systemStatsMap["gpu"].AsString();
            SystemGPUClass = systemStatsMap["gpu_class"].AsInteger();
            SystemGPUVendor = systemStatsMap["gpu_vendor"].AsString();
            SystemGPUVersion = systemStatsMap["gpu_version"].AsString();
            SystemOS = systemStatsMap["os"].AsString();
            SystemInstalledRam = systemStatsMap["ram"].AsInteger();
        }
    }

Usage Example

        public void ViewerStatsMessage()
        {
            ViewerStatsMessage s = new ViewerStatsMessage();

            s.AgentFPS = 45.5f;
            s.AgentsInView = 1;
            s.SystemCPU = "Intel 80286";
            s.StatsDropped = 2;
            s.StatsFailedResends = 3;
            s.SystemGPU = "Vesa VGA+";
            s.SystemGPUClass = 4;
            s.SystemGPUVendor = "China";
            s.SystemGPUVersion = String.Empty;
            s.InCompressedPackets = 5000;
            s.InKbytes = 6000;
            s.InPackets = 22000;
            s.InSavings = 19;
            s.MiscInt1 = 5;
            s.MiscInt2 = 6;
            s.FailuresInvalid = 20;
            s.AgentLanguage = "en";
            s.AgentMemoryUsed = 12878728;
            s.MetersTraveled = 9999123;
            s.object_kbytes = 70001;
            s.FailuresOffCircuit = 201;
            s.SystemOS = "Palm OS 3.1";
            s.OutCompressedPackets = 8000;
            s.OutKbytes = 9000999;
            s.OutPackets = 21000210;
            s.OutSavings = 181;
            s.AgentPing = 135579;
            s.SystemInstalledRam = 4000000;
            s.RegionsVisited = 4579;
            s.FailuresResent = 9;
            s.AgentRuntime = 360023;
            s.FailuresSendPacket = 565;
            s.SessionID = UUID.Random();
            s.SimulatorFPS = 454;
            s.AgentStartTime = new DateTime(1973, 1, 16, 5, 23, 33);
            s.MiscString1 = "Unused String";
            s.texture_kbytes = 9367498382;
            s.AgentVersion = "1";
            s.MiscVersion = 1;
            s.VertexBuffersEnabled = true;
            s.world_kbytes = 232344439;

            OSDMap map = s.Serialize();
            ViewerStatsMessage t = new ViewerStatsMessage();
            t.Deserialize(map);

            Assert.AreEqual(s.AgentFPS, t.AgentFPS);
            Assert.AreEqual(s.AgentsInView, t.AgentsInView);
            Assert.AreEqual(s.SystemCPU, t.SystemCPU);
            Assert.AreEqual(s.StatsDropped, t.StatsDropped);
            Assert.AreEqual(s.StatsFailedResends, t.StatsFailedResends);
            Assert.AreEqual(s.SystemGPU, t.SystemGPU);
            Assert.AreEqual(s.SystemGPUClass, t.SystemGPUClass);
            Assert.AreEqual(s.SystemGPUVendor, t.SystemGPUVendor);
            Assert.AreEqual(s.SystemGPUVersion, t.SystemGPUVersion);
            Assert.AreEqual(s.InCompressedPackets, t.InCompressedPackets);
            Assert.AreEqual(s.InKbytes, t.InKbytes);
            Assert.AreEqual(s.InPackets, t.InPackets);
            Assert.AreEqual(s.InSavings, t.InSavings);
            Assert.AreEqual(s.MiscInt1, t.MiscInt1);
            Assert.AreEqual(s.MiscInt2, t.MiscInt2);
            Assert.AreEqual(s.FailuresInvalid, t.FailuresInvalid);
            Assert.AreEqual(s.AgentLanguage, t.AgentLanguage);
            Assert.AreEqual(s.AgentMemoryUsed, t.AgentMemoryUsed);
            Assert.AreEqual(s.MetersTraveled, t.MetersTraveled);
            Assert.AreEqual(s.object_kbytes, t.object_kbytes);
            Assert.AreEqual(s.FailuresOffCircuit, t.FailuresOffCircuit);
            Assert.AreEqual(s.SystemOS, t.SystemOS);
            Assert.AreEqual(s.OutCompressedPackets, t.OutCompressedPackets);
            Assert.AreEqual(s.OutKbytes, t.OutKbytes);
            Assert.AreEqual(s.OutPackets, t.OutPackets);
            Assert.AreEqual(s.OutSavings, t.OutSavings);
            Assert.AreEqual(s.AgentPing, t.AgentPing);
            Assert.AreEqual(s.SystemInstalledRam, t.SystemInstalledRam);
            Assert.AreEqual(s.RegionsVisited, t.RegionsVisited);
            Assert.AreEqual(s.FailuresResent, t.FailuresResent);
            Assert.AreEqual(s.AgentRuntime, t.AgentRuntime);
            Assert.AreEqual(s.FailuresSendPacket, t.FailuresSendPacket);
            Assert.AreEqual(s.SessionID, t.SessionID);
            Assert.AreEqual(s.SimulatorFPS, t.SimulatorFPS);
            Assert.AreEqual(s.AgentStartTime, t.AgentStartTime);
            Assert.AreEqual(s.MiscString1, t.MiscString1);
            Assert.AreEqual(s.texture_kbytes, t.texture_kbytes);
            Assert.AreEqual(s.AgentVersion, t.AgentVersion);
            Assert.AreEqual(s.MiscVersion, t.MiscVersion);
            Assert.AreEqual(s.VertexBuffersEnabled, t.VertexBuffersEnabled);
            Assert.AreEqual(s.world_kbytes, t.world_kbytes);
        }
ViewerStatsMessage