private void GroupFilters() { if (Filters == null) { if (_oldVersion == 0) { return; } _invokeFilters = null; _processFilters = null; ActionExecteFilter = null; _oldVersion = 0; return; } if (Filters.Version == _oldVersion) { return; } //todo: add lock _processFilters = new VersionedList <IProcessFilter>(); _invokeFilters = new VersionedList <IServiceInvokeFilter>(); ActionExecteFilter = new VersionedList <IActionExecteFilter>(); foreach (var item in Filters) { if (item is IProcessFilter) { _processFilters.Add(item as IProcessFilter); } else if (item is IServiceInvokeFilter) { _invokeFilters.Add(item as IServiceInvokeFilter); } else if (item is IActionExecteFilter) { ActionExecteFilter.Add(item as IActionExecteFilter); } } _oldVersion = Filters.Version; }
/// <summary> /// Construct a node set. Remember to dispose it. /// <seealso cref="Dispose"/> /// </summary> public NodeSet() { m_NodeDefinitions.Add(s_InvalidDefinitionSlot); var defaultTraits = LLTraitsHandle.Create(); // stuff that needs the first slot to be invalid defaultTraits.Resolve() = new LowLevelNodeTraits(); m_Traits.Add(defaultTraits); m_ForwardingTable.Allocate(); m_ArraySizes.Allocate(); m_ManagedAllocators.Add(new ManagedMemoryAllocator()); // (we don't need a zeroth invalid index for nodes, because they are versioned) RendererModel = RenderExecutionModel.MaximallyParallel; m_RenderGraph = new RenderGraph(this); NodeSetID = ++s_NodeSetCounter; m_Batches = new VersionedList <InputBatch>(Allocator.Persistent, NodeSetID); m_GraphValues = new VersionedList <DataOutputValue>(Allocator.Persistent, NodeSetID); }
private void GroupFilters() { if (Filters == null) { if (_oldVersion == 0) return; _invokeFilters = null; _processFilters = null; ActionExecteFilter = null; _oldVersion = 0; return; } if (Filters.Version == _oldVersion) return; //todo: add lock _processFilters = new VersionedList<IProcessFilter>(); _invokeFilters = new VersionedList<IServiceInvokeFilter>(); ActionExecteFilter = new VersionedList<IActionExecteFilter>(); foreach (var item in Filters) { if (item is IProcessFilter) { _processFilters.Add(item as IProcessFilter); } else if (item is IServiceInvokeFilter) { _invokeFilters.Add(item as IServiceInvokeFilter); } else if (item is IActionExecteFilter) { ActionExecteFilter.Add(item as IActionExecteFilter); } } _oldVersion = Filters.Version; }