add initialize in isolate
This commit is contained in:
parent
00289ddbde
commit
8e0f79e28e
2 changed files with 18 additions and 5 deletions
|
|
@ -3,15 +3,18 @@ import 'package:dart_framework/subtitle/parser_smi.dart';
|
||||||
import 'package:dart_framework/subtitle/parser_srt.dart';
|
import 'package:dart_framework/subtitle/parser_srt.dart';
|
||||||
import 'package:dart_framework/utils/os_startup.dart';
|
import 'package:dart_framework/utils/os_startup.dart';
|
||||||
import 'package:dart_framework/utils/system_util.dart';
|
import 'package:dart_framework/utils/system_util.dart';
|
||||||
import 'package:path/path.dart' as path;
|
|
||||||
|
|
||||||
import 'package:dart_framework/core/application.dart';
|
import 'package:dart_framework/core/application.dart';
|
||||||
import 'package:dart_framework/charset.dart';
|
import 'package:dart_framework/charset.dart';
|
||||||
|
import 'package:dart_framework/platform/isolate_manager.dart' as isolate;
|
||||||
|
|
||||||
|
import 'package:path/path.dart' as path;
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
Application('dartframework', 'com.toki-labs.dartframework', () async {
|
Application('dartframework', 'com.toki-labs.dartframework', () async {
|
||||||
print(await OSStartup.unregistStartup(appIdendifier));
|
print(await OSStartup.unregistStartup(appIdendifier));
|
||||||
|
|
||||||
|
isolate.test();
|
||||||
|
|
||||||
// print(await OSStartup.isRegistedStartup(appIdendifier));
|
// print(await OSStartup.isRegistedStartup(appIdendifier));
|
||||||
|
|
||||||
// print(await OSStartup.registStartup(
|
// print(await OSStartup.registStartup(
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import 'dart:async';
|
||||||
|
|
||||||
import 'package:dart_framework/data/isolate_data.dart';
|
import 'package:dart_framework/data/isolate_data.dart';
|
||||||
import 'package:dart_framework/platform/process.dart';
|
import 'package:dart_framework/platform/process.dart';
|
||||||
|
import 'package:dart_framework/utils/system_util.dart' as system;
|
||||||
|
|
||||||
/// ********************** Test ************************* ///
|
/// ********************** Test ************************* ///
|
||||||
void test() {
|
void test() {
|
||||||
|
|
@ -34,6 +35,8 @@ void test() {
|
||||||
class IsolateTemplate extends IsolateBase {
|
class IsolateTemplate extends IsolateBase {
|
||||||
@override
|
@override
|
||||||
void onReady(Object? initData) async {
|
void onReady(Object? initData) async {
|
||||||
|
print(
|
||||||
|
'[IsolateTemplate] appName: ${system.appName}, appID: ${system.appIdendifier}');
|
||||||
print('[IsolateTemplate] onReady - initData: $initData');
|
print('[IsolateTemplate] onReady - initData: $initData');
|
||||||
addEventListener('test1', onTest1Handler, executeOnce: true);
|
addEventListener('test1', onTest1Handler, executeOnce: true);
|
||||||
addEventListener('test2', onTest2Handler);
|
addEventListener('test2', onTest2Handler);
|
||||||
|
|
@ -66,7 +69,10 @@ class _IsolateConstructData {
|
||||||
late int id;
|
late int id;
|
||||||
late SendPort mainIsoSender;
|
late SendPort mainIsoSender;
|
||||||
late Object? initData;
|
late Object? initData;
|
||||||
_IsolateConstructData(this.id, this.mainIsoSender, this.initData);
|
late String appName;
|
||||||
|
late String appID;
|
||||||
|
_IsolateConstructData(
|
||||||
|
this.id, this.mainIsoSender, this.appName, this.appID, this.initData);
|
||||||
}
|
}
|
||||||
|
|
||||||
class IsolateHandler {
|
class IsolateHandler {
|
||||||
|
|
@ -180,8 +186,10 @@ class IsolateManager {
|
||||||
inst.isoListener = message as SendPort;
|
inst.isoListener = message as SendPort;
|
||||||
isolateEventListener(IsolateEvent.ready, id);
|
isolateEventListener(IsolateEvent.ready, id);
|
||||||
});
|
});
|
||||||
await Isolate.spawn(inst.initialize,
|
await Isolate.spawn(
|
||||||
_IsolateConstructData(id, isoListener.sendPort, initData));
|
inst.initialize,
|
||||||
|
_IsolateConstructData(id, isoListener.sendPort, system.appName,
|
||||||
|
system.appIdendifier, initData));
|
||||||
await for (IsoMessege message in isoListener) {
|
await for (IsoMessege message in isoListener) {
|
||||||
if (message.type == _IsolateInnerEvent.exit) {
|
if (message.type == _IsolateInnerEvent.exit) {
|
||||||
isolateEventListener(IsolateEvent.exit, null);
|
isolateEventListener(IsolateEvent.exit, null);
|
||||||
|
|
@ -254,6 +262,8 @@ class IsolateBase {
|
||||||
id = initData.id;
|
id = initData.id;
|
||||||
_mainIsoListener = ReceivePort();
|
_mainIsoListener = ReceivePort();
|
||||||
_mainIsoSender = initData.mainIsoSender;
|
_mainIsoSender = initData.mainIsoSender;
|
||||||
|
system.initialize(initData.appName, initData.appID);
|
||||||
|
|
||||||
send(IsoMessege(_IsolateInnerEvent.ready, data: _mainIsoListener.sendPort));
|
send(IsoMessege(_IsolateInnerEvent.ready, data: _mainIsoListener.sendPort));
|
||||||
onReady(initData.initData);
|
onReady(initData.initData);
|
||||||
await for (IsoMessege message in _mainIsoListener) {
|
await for (IsoMessege message in _mainIsoListener) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue