DynamoDS/Dynamo — pull request #2250 by Benglin (2014-08-28 09:32:33+00:00)
Title: Integrated "DynamoScheduler" into "DynamoModel" (disabled by default)

Background
-----
This pull request continues the scheduler work established in [a previous pull request](https://github.com/DynamoDS/Dynamo/pull/2202) by integrating ```DynamoScheduler``` as part of the ```DynamoModel```. ```DynamoScheduler``` can be enabled by using a preprocessor ```ENABLE_DYNAMO_SCHEDULER``` during build time.

Changes
-----
New code is confined within ```ENABLE_DYNAMO_SCHEDULER``` preprocessor, and is currently disabled.

The following methods are added to ```EngineController```:
- ```ComputeSyncData``` This method does roughly what the existing ```GenerateGraphSyncData``` method does -- to iterate through list of nodes in the workspace and generate their ```GraphSyncData```.

- ```UpdateGraphImmediate``` This method is meant to be called by ```UpdateGraphAsyncTask.ExecuteCore``` method to update the graph directly. It will be called on the context of ```ISchedulerThread```, passing the ```GraphSyncData``` that was generated from a prior call to ```ComputeSyncData```.

- ```GetBuildWarnings/GetRuntimeWarnings``` These methods are meant to retrieve build and runtime warnings from ```LiveRunnerService```.

Known issues
-----
1. Graphs with custom nodes will not work as of this pull request, as the [```CompileCustomNodeAsyncTask``` class](https://github.com/Benglin/Dynamo/blob/Concurrent/src/DynamoCore/Core/Threading/CompileCustomNodeAsyncTask.cs) still resides on [Concurrent branch](https://github.com/Benglin/Dynamo/tree/Concurrent).

2. Notifications are not currently sent out to the listeners of ```DynamoModel.OnEvaluationCompleted``` event. This causes preview bubbles and background geometries to be not generated (but the computation and actual geometries are generated internally). This will be hooked up in a subsequent pull request.

Note to Reviewers
-----
This PR is a continuation of the scheduler work from [previous pull requests](https://github.com/DynamoDS/Dynamo/pull/2202). It is a subset of what have gone into the ```Concurrent``` [branch](https://github.com/Benglin/Dynamo/compare/Concurrent), just to make reviewers' life easier.

![Image of the Octodex]
(https://octodex.github.com/images/collabocats.jpg)