JJ_MKVMaker/lib/core/wifi_share_net.dart

22 lines
945 B
Dart

/// 약속: Wi-Fi 공유가 기기에서 받는 것 - 열 주소 ([addresses]: 사설망 먼저, 없으면 빈 목록) · Windows 설정 · 제어판 열기 ([launch]).
/// 앱은 [RealWifiShareNet] (이 기기 그대로) 를 쓰고, 시험은 생성자로 다른 것을 넘긴다 (예: 127.0.0.1 에만 열기 - 시험 PC 의 방화벽 창 · 바깥 노출 없이)
library;
import 'dart:io';
import 'wifi_share.dart' show WifiShare;
abstract interface class WifiShareNet {
Future<List<String>> addresses({bool tailscale = true});
Future<void> launch(String exe, List<String> args);
}
/// 이 기기 그대로
class RealWifiShareNet implements WifiShareNet {
const RealWifiShareNet();
@override
Future<List<String>> addresses({bool tailscale = true}) => WifiShare.localAddresses(tailscale: tailscale);
@override
Future<void> launch(String exe, List<String> args) => Process.start(exe, args, mode: ProcessStartMode.detached);
}