Xojo Conferences
XDCMay2019MiamiUSA

Platforms to show: All Mac Windows Linux Cross-Platform

/MacCF/Darwin Network Interface Statistics
Function:
Required plugins for this example: MBS MacOSX Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /MacCF/Darwin Network Interface Statistics
This example is the version from Sun, 17th Mar 2012.
Project "Darwin Network Interface Statistics.rbp"
Class Window1 Inherits Window
Control StaticText1 Inherits Label
ControlInstance StaticText1 Inherits Label
End Control
Control StaticText2 Inherits Label
ControlInstance StaticText2 Inherits Label
End Control
Control iTotal Inherits Label
ControlInstance iTotal Inherits Label
End Control
Control iTotalBytes Inherits Label
ControlInstance iTotalBytes Inherits Label
End Control
Control iDelta Inherits Label
ControlInstance iDelta Inherits Label
End Control
Control iDeltaBytes Inherits Label
ControlInstance iDeltaBytes Inherits Label
End Control
Control StaticText4 Inherits Label
ControlInstance StaticText4 Inherits Label
End Control
Control oTotal Inherits Label
ControlInstance oTotal Inherits Label
End Control
Control oDelta Inherits Label
ControlInstance oDelta Inherits Label
End Control
Control oTotalBytes Inherits Label
ControlInstance oTotalBytes Inherits Label
End Control
Control oDeltaBytes Inherits Label
ControlInstance oDeltaBytes Inherits Label
End Control
Control Timer1 Inherits Timer
ControlInstance Timer1 Inherits Timer
EventHandler Sub Action() if stat.Update then ShowValues else me.Mode=0 // disable timer MsgBox "Failed to get statistic data!" end if End EventHandler
End Control
Control List Inherits ListBox
ControlInstance List Inherits ListBox
End Control
EventHandler Sub Open() first=true stat=new DarwinIFStatMBS if stat.Update then ShowValues end if End EventHandler
Sub ShowValues() dim InputBytes as UInt64 dim InputPackets as UInt64 dim OutputBytes as UInt64 dim OutputPackets as UInt64 dim d as DarwinIFStatInterfaceMBS dim i,c as integer c=stat.Count-1 for i=0 to c d=stat.Item(i) if d<>Nil then InputBytes=InputBytes+d.InputBytes OutputBytes=OutputBytes+d.OutputBytes InputPackets=InputPackets+d.InputPackets OutputPackets=OutputPackets+d.OutputPackets end if next oTotal.text=Format(OutputPackets,"-0") oTotalBytes.text=Format(OutputBytes,"-0") iTotal.text=Format(inputPackets,"-0") iTotalBytes.text=Format(inputBytes,"-0") if first then first=false // Show list of interfaces c=stat.Count-1 for i=0 to c d=stat.Item(i) if d<>Nil then List.AddRow d.Name List.cell(List.LastIndex,1)=hex(d.Type) end if next else oDelta.text=Format(OutputPackets-lastOutputPackets,"+0") oDeltaBytes.text=Format(OutputBytes-lastOutputBytes,"+0") iDelta.text=Format(inputPackets-LastInputPackets,"+0") iDeltaBytes.text=Format(inputBytes-lastinputBytes,"+0") end if LastInputBytes=InputBytes LastInputPackets=InputPackets LastOutputBytes=OutputBytes LastOutputPackets=OutputPackets End Sub
Property Protected LastInputBytes As UInt64
Property Protected LastInputPackets As UInt64
Property Protected LastOutputBytes As UInt64
Property Protected LastOutputPackets As UInt64
Property Protected first As boolean
Property Protected stat As darwinifStatmBS
End Class
MenuBar Menu
MenuItem UntitledMenu3 = ""
MenuItem UntitledMenu2 = "File"
MenuItem FileQuit = "Quit"
MenuItem UntitledMenu0 = "Edit"
MenuItem EditUndo = "Undo"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "Cut"
MenuItem EditCopy = "Copy"
MenuItem EditPaste = "Paste"
MenuItem EditClear = "Clear"
End MenuBar
Class App Inherits Application
End Class
End Project

See also:

Feedback, Comments & Corrections

The items on this page are in the following plugins: MBS MacCF Plugin.




Links
MBS Xojo blog