public ETTask <List <ComponentWithId> > GetJson(string collectionName, string json, long skip, long limit) { ETTaskCompletionSource <List <ComponentWithId> > tcs = new ETTaskCompletionSource <List <ComponentWithId> >(); PipelineStageDefinition <ComponentWithId, ComponentWithId> _match = PipelineStageDefinitionBuilder.Match <ComponentWithId>(json); PipelineStageDefinition <ComponentWithId, ComponentWithId> _skip = PipelineStageDefinitionBuilder.Skip <ComponentWithId>((int)skip); PipelineStageDefinition <ComponentWithId, ComponentWithId> _limit = PipelineStageDefinitionBuilder.Limit <ComponentWithId>((int)limit); PipelineDefinition <ComponentWithId, ComponentWithId> pipeline = new PipelineStagePipelineDefinition <ComponentWithId, ComponentWithId>( new PipelineStageDefinition <ComponentWithId, ComponentWithId>[] { _match, _skip, _limit }); DBQueryPipelineTask dbQueryPipelineTask = ComponentFactory.Create <DBQueryPipelineTask, string, PipelineDefinition <ComponentWithId, ComponentWithId>, ETTaskCompletionSource <List <ComponentWithId> > > (collectionName, pipeline, tcs); this.tasks[(int)((ulong)dbQueryPipelineTask.Id % taskCount)].Add(dbQueryPipelineTask); return(tcs.Task); }
public override void Awake(DBQueryPipelineTask self, string collectionName, PipelineDefinition <ComponentWithId, ComponentWithId> pipeline, ETTaskCompletionSource <List <ComponentWithId> > tcs) { self.CollectionName = collectionName; self.pipeline = pipeline; self.Tcs = tcs; }