2023-08-19 22:27:23 +03:30
|
|
|
import 'package:fpdart/fpdart.dart';
|
2023-09-10 20:25:04 +03:30
|
|
|
import 'package:hiddify/domain/connectivity/connectivity.dart';
|
2023-08-19 22:27:23 +03:30
|
|
|
import 'package:hiddify/domain/core_service_failure.dart';
|
2023-09-01 15:00:41 +03:30
|
|
|
import 'package:hiddify/domain/singbox/config_options.dart';
|
2023-08-28 13:15:57 +03:30
|
|
|
import 'package:hiddify/domain/singbox/core_status.dart';
|
2023-08-29 19:32:31 +03:30
|
|
|
import 'package:hiddify/domain/singbox/outbounds.dart';
|
2023-08-19 22:27:23 +03:30
|
|
|
|
|
|
|
|
abstract interface class SingboxFacade {
|
|
|
|
|
TaskEither<CoreServiceFailure, Unit> setup();
|
|
|
|
|
|
2023-09-22 23:52:20 +03:30
|
|
|
TaskEither<CoreServiceFailure, Unit> parseConfig(
|
|
|
|
|
String path,
|
|
|
|
|
String tempPath,
|
|
|
|
|
bool debug,
|
|
|
|
|
);
|
2023-08-19 22:27:23 +03:30
|
|
|
|
2023-09-01 15:00:41 +03:30
|
|
|
TaskEither<CoreServiceFailure, Unit> changeConfigOptions(
|
|
|
|
|
ConfigOptions options,
|
|
|
|
|
);
|
|
|
|
|
|
2023-11-12 12:52:54 +03:30
|
|
|
TaskEither<CoreServiceFailure, String> generateConfig(
|
|
|
|
|
String fileName,
|
|
|
|
|
);
|
|
|
|
|
|
2023-10-26 15:16:25 +03:30
|
|
|
TaskEither<CoreServiceFailure, Unit> start(
|
|
|
|
|
String fileName,
|
|
|
|
|
bool disableMemoryLimit,
|
|
|
|
|
);
|
2023-08-19 22:27:23 +03:30
|
|
|
|
|
|
|
|
TaskEither<CoreServiceFailure, Unit> stop();
|
|
|
|
|
|
2023-10-26 15:16:25 +03:30
|
|
|
TaskEither<CoreServiceFailure, Unit> restart(
|
|
|
|
|
String fileName,
|
|
|
|
|
bool disableMemoryLimit,
|
|
|
|
|
);
|
2023-09-10 20:25:04 +03:30
|
|
|
|
2023-08-29 19:32:31 +03:30
|
|
|
Stream<Either<CoreServiceFailure, List<OutboundGroup>>> watchOutbounds();
|
|
|
|
|
|
|
|
|
|
TaskEither<CoreServiceFailure, Unit> selectOutbound(
|
|
|
|
|
String groupTag,
|
|
|
|
|
String outboundTag,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
TaskEither<CoreServiceFailure, Unit> urlTest(String groupTag);
|
|
|
|
|
|
2023-09-10 20:25:04 +03:30
|
|
|
Stream<ConnectionStatus> watchConnectionStatus();
|
|
|
|
|
|
2023-08-28 13:15:57 +03:30
|
|
|
Stream<Either<CoreServiceFailure, CoreStatus>> watchCoreStatus();
|
|
|
|
|
|
2023-10-24 11:26:57 +02:00
|
|
|
Stream<Either<CoreServiceFailure, List<String>>> watchLogs();
|
|
|
|
|
|
|
|
|
|
TaskEither<CoreServiceFailure, Unit> clearLogs();
|
2023-08-19 22:27:23 +03:30
|
|
|
}
|