Files
flutter_server_box/lib/data/model/server/server.dart
lollipopkit 2b52e8e6ee fix (#195) & opt.
- fix: debug provider color
- fix: can't write script through SFTP (#195)
- opt.: go next refresh only after current refresh task is done
2023-10-30 12:01:07 +08:00

47 lines
965 B
Dart

import 'package:dartssh2/dartssh2.dart';
import 'package:toolbox/data/model/server/server_private_info.dart';
import 'package:toolbox/data/model/server/server_status.dart';
import '../app/tag_pickable.dart';
class Server implements TagPickable {
ServerPrivateInfo spi;
ServerStatus status;
SSHClient? client;
ServerState state;
/// Whether is connectting, parsing and etc.
bool isBusy = false;
Server(this.spi, this.status, this.client, this.state);
@override
bool containsTag(String tag) {
return spi.tags?.contains(tag) ?? false;
}
@override
String get tagName => spi.id;
}
enum ServerState {
failed,
disconnected,
connecting,
/// Connected to server
connected,
/// Status parsing
loading,
/// Status parsing finished
finished;
bool get shouldConnect => this < ServerState.connecting;
bool get canViewDetails => this == ServerState.finished;
operator <(ServerState other) => index < other.index;
}