mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 23:34:24 +01:00
#74 probably fix
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:hive_flutter/hive_flutter.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:toolbox/data/model/server/server_status.dart';
|
||||
|
||||
part 'net_view.g.dart';
|
||||
@@ -6,15 +7,26 @@ part 'net_view.g.dart';
|
||||
@HiveType(typeId: 5)
|
||||
enum NetViewType {
|
||||
@HiveField(0)
|
||||
count,
|
||||
conn,
|
||||
@HiveField(1)
|
||||
speed,
|
||||
@HiveField(2)
|
||||
size;
|
||||
traffic;
|
||||
|
||||
String l10n(S s) {
|
||||
switch (this) {
|
||||
case NetViewType.conn:
|
||||
return s.conn;
|
||||
case NetViewType.traffic:
|
||||
return s.traffic;
|
||||
case NetViewType.speed:
|
||||
return s.speed;
|
||||
}
|
||||
}
|
||||
|
||||
NetViewData build(ServerStatus ss) {
|
||||
switch (this) {
|
||||
case NetViewType.count:
|
||||
case NetViewType.conn:
|
||||
return NetViewData(
|
||||
'Conn:\n${ss.tcp.maxConn}',
|
||||
'Fail:\n${ss.tcp.fail}',
|
||||
@@ -24,7 +36,7 @@ enum NetViewType {
|
||||
'In:\n${ss.netSpeed.speedIn(all: true)}',
|
||||
'Out:\n${ss.netSpeed.speedOut(all: true)}',
|
||||
);
|
||||
case NetViewType.size:
|
||||
case NetViewType.traffic:
|
||||
return NetViewData(
|
||||
'In:\n${ss.netSpeed.sizeIn(all: true)}',
|
||||
'Out:\n${ss.netSpeed.sizeOut(all: true)}',
|
||||
|
||||
@@ -14,26 +14,26 @@ class NetViewTypeAdapter extends TypeAdapter<NetViewType> {
|
||||
NetViewType read(BinaryReader reader) {
|
||||
switch (reader.readByte()) {
|
||||
case 0:
|
||||
return NetViewType.count;
|
||||
return NetViewType.conn;
|
||||
case 1:
|
||||
return NetViewType.speed;
|
||||
case 2:
|
||||
return NetViewType.size;
|
||||
return NetViewType.traffic;
|
||||
default:
|
||||
return NetViewType.count;
|
||||
return NetViewType.conn;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, NetViewType obj) {
|
||||
switch (obj) {
|
||||
case NetViewType.count:
|
||||
case NetViewType.conn:
|
||||
writer.writeByte(0);
|
||||
break;
|
||||
case NetViewType.speed:
|
||||
writer.writeByte(1);
|
||||
break;
|
||||
case NetViewType.size:
|
||||
case NetViewType.traffic:
|
||||
writer.writeByte(2);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,15 @@ class Cpus {
|
||||
void update(List<OneTimeCpuStatus> newStatus) {
|
||||
_pre = _now;
|
||||
_now = newStatus;
|
||||
// 类似 [NetSpeed.update] 的处理
|
||||
// 虽然CPU热插拔情况较少...
|
||||
if (_pre.length != _now.length) {
|
||||
if (_pre.length > _now.length) {
|
||||
_pre = _pre.sublist(0, _now.length);
|
||||
} else {
|
||||
_pre.addAll(_now.sublist(_pre.length, _now.length));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int get coresCount => _now.length;
|
||||
|
||||
@@ -24,6 +24,18 @@ class NetSpeed {
|
||||
void update(List<NetSpeedPart> newOne) {
|
||||
_old = _now;
|
||||
_now = newOne;
|
||||
// 当长度不同,说明有网络接口改变
|
||||
//
|
||||
// 应当跟随改变:
|
||||
// 旧长度 > 新长度:将旧的数据截断
|
||||
// 旧长度 < 新长度:将旧的数据补齐
|
||||
if (_old.length != _now.length) {
|
||||
if (_old.length > _now.length) {
|
||||
_old = _old.sublist(0, _now.length);
|
||||
} else {
|
||||
_old.addAll(_now.sublist(_old.length, _now.length));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BigInt get timeDiff => _now[0].time - _old[0].time;
|
||||
|
||||
Reference in New Issue
Block a user