26 lines
883 B
Dart
26 lines
883 B
Dart
|
library angular2.src.platform.worker_app;
|
||
|
|
||
|
import 'package:angular2/src/core/zone/ng_zone.dart';
|
||
|
import 'package:angular2/src/platform/server/webworker_adapter.dart';
|
||
|
import 'package:angular2/src/platform/worker_app_common.dart';
|
||
|
import 'package:angular2/src/web_workers/shared/isolate_message_bus.dart';
|
||
|
import 'dart:isolate';
|
||
|
|
||
|
setupIsolate(SendPort replyTo) {
|
||
|
return (NgZone zone) {
|
||
|
WebWorkerDomAdapter.makeCurrent();
|
||
|
|
||
|
ReceivePort rPort = new ReceivePort();
|
||
|
var sink = new WebWorkerMessageBusSink(replyTo, rPort);
|
||
|
var source = new IsolateMessageBusSource(rPort);
|
||
|
IsolateMessageBus bus = new IsolateMessageBus(sink, source);
|
||
|
return genericWorkerAppProviders(bus, zone);
|
||
|
};
|
||
|
}
|
||
|
|
||
|
class WebWorkerMessageBusSink extends IsolateMessageBusSink {
|
||
|
WebWorkerMessageBusSink(SendPort sPort, ReceivePort rPort) : super(sPort) {
|
||
|
sPort.send(rPort.sendPort);
|
||
|
}
|
||
|
}
|