mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 15:24:35 +01:00
Convert to not nullable
This commit is contained in:
@@ -6,9 +6,10 @@ class Cpu2Status {
|
||||
Cpu2Status(this.pre, this.now);
|
||||
|
||||
double usedPercent({int coreIdx = 0}) {
|
||||
final used = (now[coreIdx].idle - pre[coreIdx].idle) /
|
||||
(now[coreIdx].total - pre[coreIdx].total);
|
||||
return used.isNaN ? 0 : used;
|
||||
final idleDelta = now[coreIdx].idle - pre[coreIdx].idle;
|
||||
final totalDelta = now[coreIdx].total - pre[coreIdx].total;
|
||||
final used = idleDelta / totalDelta;
|
||||
return used.isNaN ? 0 : 100 - used * 100;
|
||||
}
|
||||
|
||||
Cpu2Status update(List<CpuStatus> newStatus) {
|
||||
|
||||
@@ -28,18 +28,18 @@ class ServerStatus {
|
||||
}
|
||||
*/
|
||||
|
||||
Cpu2Status? cpu2Status;
|
||||
List<int?>? memList;
|
||||
String? sysVer;
|
||||
String? uptime;
|
||||
List<DiskInfo?>? disk;
|
||||
TcpStatus? tcp;
|
||||
late Cpu2Status cpu2Status;
|
||||
late List<int?> memList;
|
||||
late String sysVer;
|
||||
late String uptime;
|
||||
late List<DiskInfo?> disk;
|
||||
late TcpStatus tcp;
|
||||
|
||||
ServerStatus(
|
||||
{this.cpu2Status,
|
||||
this.cpu2Status,
|
||||
this.memList,
|
||||
this.sysVer,
|
||||
this.uptime,
|
||||
this.disk,
|
||||
this.tcp});
|
||||
this.tcp);
|
||||
}
|
||||
|
||||
@@ -28,9 +28,11 @@ class ServerProvider extends BusyProvider {
|
||||
Cpu2Status([emptyCpuStatus], [emptyCpuStatus]);
|
||||
|
||||
ServerStatus get emptyStatus => ServerStatus(
|
||||
cpu2Status: emptyCpu2Status,
|
||||
memList: [100, 0],
|
||||
disk: [
|
||||
emptyCpu2Status,
|
||||
[100, 0],
|
||||
'',
|
||||
'',
|
||||
[
|
||||
DiskInfo(
|
||||
mountLocation: '/',
|
||||
mountPath: '/',
|
||||
@@ -39,9 +41,7 @@ class ServerProvider extends BusyProvider {
|
||||
avail: '0',
|
||||
usedPercent: 0)
|
||||
],
|
||||
sysVer: '',
|
||||
uptime: '',
|
||||
tcp: TcpStatus(maxConn: 0, active: 0, passive: 0, fail: 0));
|
||||
TcpStatus(maxConn: 0, active: 0, passive: 0, fail: 0));
|
||||
|
||||
Future<void> loadLocalData() async {
|
||||
setBusyState(true);
|
||||
@@ -145,12 +145,12 @@ class ServerProvider extends BusyProvider {
|
||||
final tcp = await client.execute('cat /proc/net/snmp') ?? '';
|
||||
|
||||
return ServerStatus(
|
||||
cpu2Status: _getCPU(cpu, _servers[idx].status.cpu2Status!),
|
||||
memList: _getMem(mem),
|
||||
sysVer: sysVer.trim(),
|
||||
disk: _getDisk(disk),
|
||||
uptime: _getUpTime(upTime),
|
||||
tcp: _getTcp(tcp));
|
||||
_getCPU(cpu, _servers[idx].status.cpu2Status),
|
||||
_getMem(mem),
|
||||
sysVer.trim(),
|
||||
_getUpTime(upTime),
|
||||
_getDisk(disk),
|
||||
_getTcp(tcp));
|
||||
}
|
||||
|
||||
Cpu2Status _getCPU(String raw, Cpu2Status old) {
|
||||
|
||||
@@ -34,10 +34,15 @@ class _ServerDetailPageState extends State<ServerDetailPage> {
|
||||
}
|
||||
|
||||
Widget _buildCPUView(ServerStatus ss) {
|
||||
return Text(ss.cpu2Status!.toString());
|
||||
return ListView.builder(
|
||||
itemBuilder: (ctx, idx) {
|
||||
return Text('$idx ${ss.cpu2Status.usedPercent(coreIdx: idx)}');
|
||||
},
|
||||
itemCount: ss.cpu2Status.now.length,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildMemView(ServerStatus ss) {
|
||||
return Text(ss.memList!.length.toString());
|
||||
return Text(ss.memList.length.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ class _ServerPageState extends State<ServerPage>
|
||||
Widget _buildRealServerCard(
|
||||
ServerStatus ss, String serverName, ServerConnectionState cs) {
|
||||
final rootDisk =
|
||||
ss.disk!.firstWhere((element) => element!.mountLocation == '/');
|
||||
ss.disk.firstWhere((element) => element!.mountLocation == '/');
|
||||
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -123,7 +123,7 @@ class _ServerPageState extends State<ServerPage>
|
||||
style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 12),
|
||||
textScaleFactor: 1.0,
|
||||
),
|
||||
Text(getTopRightStr(cs, ss.uptime!),
|
||||
Text(getTopRightStr(cs, ss.uptime),
|
||||
textScaleFactor: 1.0,
|
||||
style: TextStyle(
|
||||
color: _theme.textTheme.bodyText1!.color!.withAlpha(100),
|
||||
@@ -136,11 +136,11 @@ class _ServerPageState extends State<ServerPage>
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
_buildPercentCircle(ss.cpu2Status!.usedPercent(), 'CPU'),
|
||||
_buildPercentCircle(ss.cpu2Status.usedPercent(), 'CPU'),
|
||||
_buildPercentCircle(
|
||||
ss.memList![1]! / ss.memList![0]! * 100 + 0.01, 'Mem'),
|
||||
_buildIOData('Net', 'Conn:\n' + ss.tcp!.maxConn!.toString(),
|
||||
'Fail:\n' + ss.tcp!.fail.toString()),
|
||||
ss.memList[1]! / ss.memList[0]! * 100 + 0.01, 'Mem'),
|
||||
_buildIOData('Net', 'Conn:\n' + ss.tcp.maxConn!.toString(),
|
||||
'Fail:\n' + ss.tcp.fail.toString()),
|
||||
_buildIOData('Disk', 'Total:\n' + rootDisk!.size!,
|
||||
'Used:\n' + rootDisk.usedPercent.toString() + '%')
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user