コード例 #1
0
ファイル: LLUDPClient.cs プロジェクト: govtmirror/opensim
        public void SendPacketStats()
        {
            double updateSec          = 0.0;
            int    newPacketsReceived = 0;
            int    newPacketsSent     = 0;
            int    newBytesReceived   = 0;
            int    newBytesSent       = 0;
            int    newErrorPackets    = 0;

            PacketStats callback = OnPacketStats;

            if (callback != null)
            {
                // Calculate the difference between the current values that have
                // been updated by the LLUDPServer and our current reported
                // totals to determine the change in the statistics
                newPacketsReceived = PacketsReceived -
                                     m_packetsReceivedReported;
                newPacketsSent   = PacketsSent - m_packetsSentReported;
                newBytesReceived = m_bytesReceived - m_bytesReceivedReported;
                newBytesSent     = m_bytesSent - m_bytesSentReported;
                newErrorPackets  = m_packetsUnreadable - m_packetsErrorReceived;

                // Find the amount of time between statistics updates
                m_statsUpdateStopwatch.Stop();
                updateSec = m_statsUpdateStopwatch.Elapsed.TotalMilliseconds /
                            1000.0;

                // Send the statistics through the LLClientView.PopulateStats,
                // which will forward them to SimStatsReporter.AddPacketStats
                // NOTE: The UDP Packets, Bytes, and Error reporting are rates
                // over time, since the time is not synchronous between the UDP
                // message parsing and statistics gathering, the rates are
                // calculated before reporting them
                // NOTE: Casting the integers to doubles to avoid integer
                // truncation during division
                callback((double)newPacketsReceived / updateSec,
                         (double)newPacketsSent / updateSec, UnackedBytes,
                         (double)newBytesReceived / updateSec,
                         (double)newBytesSent / updateSec,
                         (double)newErrorPackets / updateSec);

                // Update the currently reported statistics to include the
                // statistics that were just reported
                m_packetsReceivedReported += newPacketsReceived;
                m_packetsSentReported     += newPacketsSent;
                m_bytesReceivedReported   += newBytesReceived;
                m_bytesSentReported       += newBytesSent;
                m_packetsErrorReceived    += newErrorPackets;

                // Make sure the stopwatch is tracking the time again, starting
                // from 0
                m_statsUpdateStopwatch.Restart();
            }
        }
コード例 #2
0
ファイル: LLUDPClient.cs プロジェクト: kow/Aurora-Sim
        public void SendPacketStats()
        {
            PacketStats callback = OnPacketStats;
            if (callback != null)
            {
                int newPacketsReceived = PacketsReceived - m_packetsReceivedReported;
                int newPacketsSent = PacketsSent - m_packetsSentReported;

                callback(newPacketsReceived, newPacketsSent, UnackedBytes);

                m_packetsReceivedReported += newPacketsReceived;
                m_packetsSentReported += newPacketsSent;
            }
        }
コード例 #3
0
ファイル: LLPacketHandler.cs プロジェクト: boodie/Opensim2
        // Push out pachet counts for the sim status reporter
        //
        private void SendPacketStats()
        {
            PacketStats handlerPacketStats = OnPacketStats;

            if (handlerPacketStats != null)
            {
                handlerPacketStats(
                    m_PacketsReceived - m_PacketsReceivedReported,
                    m_PacketsSent - m_PacketsSentReported,
                    m_UnackedBytes);

                m_PacketsReceivedReported = m_PacketsReceived;
                m_PacketsSentReported     = m_PacketsSent;
            }
        }