public ObjectBuilderCallBackHandler( Tasks.ITaskRunner taskRunner, ObjectBuildingInfo <TAddress> objectBuilderInfo, IEnumerable <Tuple <ObjectBuilders.IDependency <TAddress>, IObjectBuildingInfo <TAddress> > > dependencies) { if (taskRunner == null) { throw new ArgumentNullException(nameof(taskRunner)); } if (dependencies == null) { dependencies = new Tuple <ObjectBuilders.IDependency <TAddress>, IObjectBuildingInfo <TAddress> > [0]; } this.TaskRunner = taskRunner; this.Dependencies = new List <Tuple <ObjectBuilders.IDependency <TAddress>, IObjectBuildingInfo <TAddress> > >(dependencies); this.ObjectBuilderInfo = objectBuilderInfo; this._outstandingDependencies = this.Dependencies.Count; if (_outstandingDependencies == 0) { this.RunBuilder(); } }
/// <summary> /// Creates a new instance of the <see cref="ObjectContext{TAddress}"/> with the given parameters /// </summary> /// <param name="parentContext">Optional parent context</param> /// <param name="objectBuilderProvider">The object builder provider to use for this context</param> /// <param name="taskRunner">The task runner for jobs for this context</param> public ObjectContext(IObjectContext <TAddress> parentContext, ObjectBuilders.IObjectBuilderProvider <TAddress> objectBuilderProvider, Tasks.ITaskRunner taskRunner) { if (objectBuilderProvider == null) { throw new ArgumentNullException(nameof(objectBuilderProvider)); } if (taskRunner == null) { throw new ArgumentNullException(nameof(taskRunner)); } this.ParentContext = parentContext; this.ObjectBuilderProvider = objectBuilderProvider; this.TaskRunner = taskRunner; }