IDisposable IMemberHierarchy.AddMemberInstance(DataRegionMemberInstance instance, int indexInCollection, IScalabilityCache cache, out int instanceIndex) { List <ScalableList <DataRegionMemberInstance> > list = instance.MemberDef.IsColumn ? m_columnMembers : m_rowMembers; bool flag = false; if (list == null) { flag = true; list = new List <ScalableList <DataRegionMemberInstance> >(); if (instance.MemberDef.IsColumn) { m_columnMembers = list; } else { m_rowMembers = list; } } ListUtils.AdjustLength(list, indexInCollection); ScalableList <DataRegionMemberInstance> scalableList = list[indexInCollection]; if (flag || scalableList == null) { scalableList = (list[indexInCollection] = new ScalableList <DataRegionMemberInstance>(0, cache, 100, 5)); } instanceIndex = scalableList.Count; return(scalableList.AddAndPin(instance)); }
internal virtual void AddChildScope(IReference <ScopeInstance> childRef, int indexInCollection) { switch (childRef.Value().ObjectType) { case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.DataRegionInstance: if (m_dataRegionInstances == null) { m_dataRegionInstances = new List <IReference <DataRegionInstance> >(); } ListUtils.AdjustLength(m_dataRegionInstances, indexInCollection); Global.Tracer.Assert(m_dataRegionInstances[indexInCollection] == null, "(null == m_dataRegionInstances[indexInCollection])"); m_dataRegionInstances[indexInCollection] = (childRef as IReference <DataRegionInstance>); break; case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.SubReportInstance: if (m_subReportInstances == null) { m_subReportInstances = new List <IReference <SubReportInstance> >(); } ListUtils.AdjustLength(m_subReportInstances, indexInCollection); Global.Tracer.Assert(m_subReportInstances[indexInCollection] == null, "(null == m_subReportInstances[indexInCollection])"); m_subReportInstances[indexInCollection] = (childRef as IReference <SubReportInstance>); break; default: Global.Tracer.Assert(condition: false, childRef.Value().ToString()); break; } }
private void AddDataRegion(RuntimeDataTablixObj dataRegion, AspNetCore.ReportingServices.ReportIntermediateFormat.DataRegion dataRegionDef) { RuntimeDataTablixObjReference runtimeDataTablixObjReference = (RuntimeDataTablixObjReference)dataRegion.SelfReference; runtimeDataTablixObjReference.UnPinValue(); int indexInCollection = dataRegionDef.IndexInCollection; ListUtils.AdjustLength(this.m_dataRegionObjs, indexInCollection); this.m_dataRegionObjs[indexInCollection] = runtimeDataTablixObjReference; }
internal static IDisposable AddCellInstance(ScalableList <DataCellInstanceList> cells, int columnMemberSequenceId, int cellIndexInCollection, DataCellInstance cellInstance, IScalabilityCache cache) { ScopeInstance.AdjustLength(cells, columnMemberSequenceId); DataCellInstanceList item; IDisposable andPin = cells.GetAndPin(columnMemberSequenceId, out item); if (item == null) { item = (cells[columnMemberSequenceId] = new DataCellInstanceList()); } ListUtils.AdjustLength(item, cellIndexInCollection); item[cellIndexInCollection] = cellInstance; return(andPin); }
public static IDisposable AddCellInstance(ScalableList <DataCellInstanceList> cells, int columnMemberSequenceId, int cellIndexInCollection, DataCellInstance cellInstance, IScalabilityCache cache) { ScopeInstance.AdjustLength(cells, columnMemberSequenceId); DataCellInstanceList dataCellInstanceList = default(DataCellInstanceList); IDisposable andPin = cells.GetAndPin(columnMemberSequenceId, out dataCellInstanceList); if (dataCellInstanceList == null) { dataCellInstanceList = (cells[columnMemberSequenceId] = new DataCellInstanceList()); } ListUtils.AdjustLength(dataCellInstanceList, cellIndexInCollection); ((List <DataCellInstance>)dataCellInstanceList)[cellIndexInCollection] = cellInstance; return(andPin); }
IDisposable IMemberHierarchy.AddMemberInstance(DataRegionMemberInstance instance, int indexInCollection, IScalabilityCache cache, out int instanceIndex) { bool flag = false; if (m_children == null) { m_children = new List <ScalableList <DataRegionMemberInstance> >(); flag = true; } ListUtils.AdjustLength(m_children, indexInCollection); ScalableList <DataRegionMemberInstance> scalableList = m_children[indexInCollection]; if (flag || scalableList == null) { scalableList = new ScalableList <DataRegionMemberInstance>(0, cache, 100, 5); m_children[indexInCollection] = scalableList; } instanceIndex = scalableList.Count; return(scalableList.AddAndPin(instance)); }
public virtual void Serialize(IntermediateFormatWriter writer) { writer.RegisterDeclaration(m_Declaration); while (writer.NextMember()) { switch (writer.CurrentMember.MemberName) { case MemberName.FirstRowIndex: writer.Write(m_firstRowOffset); break; case MemberName.DataRegionInstances: { if (m_serializationDataRegionIndexInCollection < 0 || m_dataRegionInstances == null) { writer.Write(m_dataRegionInstances); break; } List <IReference <DataRegionInstance> > list = new List <IReference <DataRegionInstance> >(m_dataRegionInstances.Count); ListUtils.AdjustLength(list, m_dataRegionInstances.Count - 1); list[m_serializationDataRegionIndexInCollection] = m_dataRegionInstances[m_serializationDataRegionIndexInCollection]; writer.Write(list); break; } case MemberName.SubReportInstances: writer.Write(m_subReportInstances); break; case MemberName.AggregateValues: writer.Write(m_aggregateValues); break; default: Global.Tracer.Assert(condition: false); break; } } }