public void PopulateStats(int inPackets, int outPackets, int unAckedBytes)
        {
            NetworkStats handlerNetworkStatsUpdate = OnNetworkStatsUpdate;

            if (handlerNetworkStatsUpdate != null)
            {
                handlerNetworkStatsUpdate(inPackets, outPackets, unAckedBytes);
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        LinkedInService service = new LinkedInService(base.Authorization);

        try
        {
            NetworkStats networkStats = service.GetNetworkStatistics();

            console.Text += Utilities.SerializeToXml <NetworkStats>(networkStats);
        }
        catch (LinkedInException lie)
        {
            console.Text += lie.Message;
        }
    }
示例#3
0
        public NetworkStats GetNetworkStats(int?connectionId)
        {
            byte errorAsByte;

            var networkStats = new NetworkStats
            {
                RecentOutgoingBandwidthInBytes     = bandwidthAverager.OutgoingBandwidthInBytes,
                IncomingPacketCountForAllHosts     = NetworkTransport.GetIncomingPacketCountForAllHosts(),
                IncomingPacketDropCountForAllHosts = NetworkTransport.GetIncomingPacketDropCountForAllHosts(),
                NetworkTimestamp         = NetworkTransport.GetNetworkTimestamp(),
                OutgoingFullBytesCount   = NetworkTransport.GetOutgoingFullBytesCount(),
                OutgoingMessageCount     = NetworkTransport.GetOutgoingMessageCount(),
                OutgoingPacketCount      = NetworkTransport.GetOutgoingPacketCount(),
                OutgoingSystemBytesCount = NetworkTransport.GetOutgoingSystemBytesCount(),
                OutgoingUserBytesCount   = NetworkTransport.GetOutgoingUserBytesCount(),
            };

            if (socketId.HasValue)
            {
                networkStats.IncomingMessageQueueSize        = NetworkTransport.GetIncomingMessageQueueSize(socketId.Value, out errorAsByte);
                networkStats.OutgoingFullBytesCountForHost   = NetworkTransport.GetOutgoingFullBytesCountForHost(socketId.Value, out errorAsByte);
                networkStats.OutgoingMessageCountForHost     = NetworkTransport.GetOutgoingMessageCountForHost(socketId.Value, out errorAsByte);
                networkStats.OutgoingMessageQueueSize        = NetworkTransport.GetOutgoingMessageQueueSize(socketId.Value, out errorAsByte);
                networkStats.OutgoingPacketCountForHost      = NetworkTransport.GetOutgoingPacketCountForHost(socketId.Value, out errorAsByte);
                networkStats.OutgoingSystemBytesCountForHost = NetworkTransport.GetOutgoingSystemBytesCountForHost(socketId.Value, out errorAsByte);
                networkStats.OutgoingUserBytesCountForHost   = NetworkTransport.GetOutgoingUserBytesCountForHost(socketId.Value, out errorAsByte);

                if (connectionId.HasValue)
                {
                    networkStats.AckBufferCount                        = NetworkTransport.GetAckBufferCount(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.CurrentRTT                            = NetworkTransport.GetCurrentRTT(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.IncomingPacketCount                   = NetworkTransport.GetIncomingPacketCount(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.IncomingPacketLossCount               = NetworkTransport.GetIncomingPacketLossCount(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.MaxAllowedBandwidth                   = NetworkTransport.GetMaxAllowedBandwidth(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingFullBytesCountForConnection   = NetworkTransport.GetOutgoingFullBytesCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingMessageCountForConnection     = NetworkTransport.GetOutgoingMessageCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingPacketCountForConnection      = NetworkTransport.GetOutgoingPacketCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingPacketNetworkLossPercent      = NetworkTransport.GetOutgoingPacketNetworkLossPercent(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingPacketOverflowLossPercent     = NetworkTransport.GetOutgoingPacketOverflowLossPercent(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingSystemBytesCountForConnection = NetworkTransport.GetOutgoingSystemBytesCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingUserBytesCountForConnection   = NetworkTransport.GetOutgoingUserBytesCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                }
            }

            return(networkStats);
        }
示例#4
0
        private void btnStartAll_Click(object sender, EventArgs e)
        {
            var st = new NetworkStats();

            st.NewEvent += this.OnNewPacket;

            //this.counter = new SpecificAddressCounter(IPAddress.Parse("89.108.91.180"));
            this.counter = new AllTrafficCounter();
            st.AddCounter(this.counter);

            st.Start();
            this.session = st;

            //********
            var events = NetworkStats.TransportLayerStats;

            events.NewEvent += this.OnNewPacket;

            this.counter2 = new AllTrafficCounter();
            //this.counter2 = new SpecificAddressCounter(IPAddress.Parse("89.108.91.180"));
            events.AddCounter(this.counter2);
            events.Start();
            this.session2 = events;
        }
示例#5
0
        public List <AppProcess> GetAppProcessesByTime(string time = "year")
        {
            try {
                #region AppStatistics
                PackageManager packageManager = context.PackageManager;
                AppOpsManager  appOps         = (AppOpsManager)context.GetSystemService(Context.AppOpsService);

                var mode = appOps.CheckOpNoThrow(AppOpsManager.OpstrGetUsageStats, Android.OS.Process.MyUid(), context.PackageName);

                if (mode == AppOpsManager.ModeAllowed)
                {
                    UsageStatsManager mUsageStatsManager = (UsageStatsManager)context.GetSystemService(Context.UsageStatsService);

                    NetworkStatsManager networkStatsManager = (NetworkStatsManager)context.GetSystemService(Context.NetworkStatsService);

                    Calendar calendar  = Calendar.Instance;
                    long     endMillis = calendar.TimeInMillis;
                    long     startMillis;
                    if (time == "day")
                    {
                        calendar.Add(Calendar.DayOfWeekInMonth, -1);
                    }
                    else if (time == "month")
                    {
                        calendar.Add(Calendar.Month, -1);
                    }
                    else if (time == "week")
                    {
                        calendar.Add(Calendar.WeekOfMonth, -1);
                    }
                    else
                    {
                        calendar.Add(Calendar.Year, -1);
                    }
                    startMillis = calendar.TimeInMillis;

                    IDictionary <String, UsageStats> lUsageStatsMap = mUsageStatsManager.QueryAndAggregateUsageStats(startMillis, endMillis);

                    foreach (var usageStats in lUsageStatsMap)
                    {
                        long     totalTimeInMillis  = 0;
                        long     totalTimeInSeconds = 0;
                        string   packageName        = "";
                        string   appName            = "";
                        long     receivedWifi       = 0;
                        long     sentWifi           = 0;
                        long     receivedMobile     = 0;
                        long     sentMobile         = 0;
                        DateTime lastUsage          = new DateTime();

                        packageName        = usageStats.Key;
                        totalTimeInMillis  = usageStats.Value.TotalTimeInForeground;
                        totalTimeInSeconds = totalTimeInMillis / 1000 / 60;
                        appName            = AppNameByPackageName(packageName);

                        ApplicationInfo info = packageManager.GetApplicationInfo(packageName, 0);
                        if (info != null)
                        {
                            int          uid = info.Uid;
                            NetworkStats networkStatsWifi = networkStatsManager.QueryDetailsForUid(ConnectivityType.Wifi, null, startMillis, endMillis, uid);

                            NetworkStats.Bucket bucketWifi = new NetworkStats.Bucket();
                            while (networkStatsWifi.HasNextBucket)
                            {
                                networkStatsWifi.GetNextBucket(bucketWifi);
                                receivedWifi += bucketWifi.RxBytes;
                                sentWifi     += bucketWifi.TxBytes;
                            }
                            NetworkStats        networkStatsMobile = networkStatsManager.QueryDetailsForUid(ConnectivityType.Mobile, null, startMillis, endMillis, uid);
                            NetworkStats.Bucket bucketMobile       = new NetworkStats.Bucket();
                            while (networkStatsMobile.HasNextBucket)
                            {
                                networkStatsMobile.GetNextBucket(bucketMobile);
                                receivedMobile += bucketMobile.RxBytes;
                                sentMobile     += bucketMobile.TxBytes;
                            }
                        }

                        appProcesses.Add(new AppProcess {
                            PackageName = packageName, TimeOfAppUsageInSeconds = totalTimeInSeconds, AppName = appName, NetworkUsageTotal = receivedWifi + sentWifi + receivedMobile + sentMobile, NetworkUsageSend = sentWifi + sentMobile, NetworkUsageReceived = receivedWifi + receivedMobile
                        });
                    }
                }
                else
                {
                    // When needed permission
                    var activity = (MainActivity)Forms.Context;
                    activity.StartActivityForResult(new Intent(Settings.ActionUsageAccessSettings), MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS);
                }
            } catch (Exception ex) {
                throw new Exception(ex.Message);
            }
            #endregion
            return(appProcesses);
        }
 public ToolbarView()
 {
     DataContext = new NetworkStats();
     InitializeComponent();
 }