public initialize(mainThread:WorkerServer, complete:ICallback, error:ICallback, progress:ICallback, initData:IInitData):void {

		const services = new ServiceCollection();

		const extensionService = new WorkerExtensionService();
		const contextService = new BaseWorkspaceContextService(initData.contextService.workspace, initData.contextService.configuration, initData.contextService.options);
		this.threadService = new WorkerThreadService(mainThread.getRemoteCom());
		this.threadService.setInstantiationService(new InstantiationService(new ServiceCollection([IThreadService, this.threadService])));
		const resourceService = new ResourceService();
		const markerService = new SecondaryMarkerService(this.threadService);
		const modeService = new ModeServiceImpl(this.threadService, extensionService);
		const requestService = new BaseRequestService(contextService, NullTelemetryService);

		services.set(IExtensionService, extensionService);
		services.set(IThreadService, this.threadService);
		services.set(IModeService, modeService);
		services.set(IWorkspaceContextService, contextService);
		services.set(IEventService, new EventService());
		services.set(IResourceService, resourceService);
		services.set(IMarkerService, markerService);
		services.set(IRequestService, requestService);

		const instantiationService = new InstantiationService(services);
		this.threadService.setInstantiationService(instantiationService);

		// Instantiate thread actors
		this.threadService.getRemotable(ModeServiceWorkerHelper);
		this.threadService.getRemotable(ModelServiceWorkerHelper);

		complete(undefined);
	}
示例#2
0
		servicePromise.then((_) => {

			var instantiationService = InstantiationService.create(_services);
			this.threadService.setInstantiationService(instantiationService);

			// Instantiate thread actors
			this.threadService.getRemotable(ModeServiceWorkerHelper);
			this.threadService.getRemotable(ModelServiceWorkerHelper);

			// Set to modes registry (ensure the synchronized object is constructed)
			modesRegistryPromise.complete();

			complete(undefined);
		});
示例#3
0
	public initialize(mainThread:WorkerServer, complete:ICallback, error:ICallback, progress:ICallback, initData:IInitData):void {

		var extensionService = new WorkerPluginService();

		var contextService = new BaseWorkspaceContextService(initData.contextService.workspace, initData.contextService.configuration, initData.contextService.options);

		this.threadService = new WorkerThreadService(mainThread.getRemoteCom());
		this.threadService.setInstantiationService(createInstantiationService({ threadService: this.threadService }));

		var telemetryServiceInstance = new WorkerTelemetryService(this.threadService);

		var resourceService = new ResourceService();
		var markerService = new SecondaryMarkerService(this.threadService);

		var modeService = new ModeServiceImpl(this.threadService, extensionService);

		var requestService = new BaseRequestService(contextService, telemetryServiceInstance);

		var _services : any = {
			threadService: this.threadService,
			extensionService: extensionService,
			modeService: modeService,
			contextService: contextService,
			eventService: new EventService(),
			resourceService: resourceService,
			markerService: markerService,
			telemetryService: telemetryServiceInstance,
			requestService: requestService
		};

		var instantiationService = createInstantiationService(_services);
		this.threadService.setInstantiationService(instantiationService);

		// Instantiate thread actors
		this.threadService.getRemotable(ModeServiceWorkerHelper);
		this.threadService.getRemotable(ModelServiceWorkerHelper);

		complete(undefined);
	}
示例#4
0
	public initialize(mainThread:WorkerServer, complete:ICallback, error:ICallback, progress:ICallback, initData:IInitData):void {

		var pluginService = new WorkerPluginService();

		var contextService = new BaseWorkspaceContextService(initData.contextService.workspace, initData.contextService.configuration, initData.contextService.options);

		this.threadService = new WorkerThreadService(initData.threadService, mainThread.getRemoteCom(), (messageName: string, payload: any) => {
			return mainThread.request(messageName, payload);
		});
		this.threadService.setInstantiationService(InstantiationService.create({ threadService: this.threadService }));

		var telemetryServiceInstance = new WorkerTelemetryService(this.threadService);

		var resourceService = new ResourceService();
		var markerService = new MarkerService(this.threadService);

		var modeService = new ModeServiceImpl(this.threadService, pluginService);

		var modesRegistryPromise = new PromiseSource();

		var requestService = new BaseRequestService(contextService, telemetryServiceInstance);

		var _services : any = {
			threadService: this.threadService,
			pluginService: pluginService,
			modeService: modeService,
			contextService: contextService,
			eventService: new EventService(),
			resourceService: resourceService,
			markerService: markerService,
			telemetryService: telemetryServiceInstance,
			requestService: requestService
		};

		var servicePromise = TPromise.as(null);

		servicePromise.then((_) => {

			var instantiationService = InstantiationService.create(_services);
			this.threadService.setInstantiationService(instantiationService);

			// Instantiate thread actors
			this.threadService.getRemotable(ModeServiceWorkerHelper);
			this.threadService.getRemotable(ModelServiceWorkerHelper);

			// Set to modes registry (ensure the synchronized object is constructed)
			modesRegistryPromise.complete();

			complete(undefined);
		});
	}
示例#5
0
	public request(mainThread:WorkerServer, complete:ICallback, error:ICallback, progress:ICallback, data:any):void {
		this.threadService.dispatch(data).then(complete, error, progress);
	}