public static List <Declaration> GetChunkDeclarations() { if (OnDemandProcessingManager.m_ChunkDeclarations == null) { List <Declaration> list = new List <Declaration>(21); list.Add(ScopeInstance.GetDeclaration()); list.Add(ReportInstance.GetDeclaration()); list.Add(DataSetInstance.GetDeclaration()); list.Add(DataRegionInstance.GetDeclaration()); list.Add(DataRegionMemberInstance.GetDeclaration()); list.Add(DataCellInstance.GetDeclaration()); list.Add(DataAggregateObjResult.GetDeclaration()); list.Add(SubReportInstance.GetDeclaration()); list.Add(GroupTreePartition.GetDeclaration()); list.Add(ReportSnapshot.GetDeclaration()); list.Add(ParametersImplWrapper.GetDeclaration()); list.Add(ParameterImplWrapper.GetDeclaration()); list.Add(SubReportInfo.GetDeclaration()); list.Add(ParameterInfo.GetNewDeclaration()); list.Add(ParameterInfoCollection.GetDeclaration()); list.Add(ParameterBase.GetNewDeclaration()); list.Add(ValidValue.GetNewDeclaration()); list.Add(FieldInfo.GetDeclaration()); list.Add(TreePartitionManager.GetDeclaration()); list.Add(LookupObjResult.GetDeclaration()); list.Add(DataCellInstanceList.GetDeclaration()); return(list); } return(OnDemandProcessingManager.m_ChunkDeclarations); }
internal static List <Declaration> GetChunkDeclarations() { if (m_ChunkDeclarations == null) { return(new List <Declaration>(21) { ScopeInstance.GetDeclaration(), ReportInstance.GetDeclaration(), DataSetInstance.GetDeclaration(), DataRegionInstance.GetDeclaration(), DataRegionMemberInstance.GetDeclaration(), DataCellInstance.GetDeclaration(), DataAggregateObjResult.GetDeclaration(), SubReportInstance.GetDeclaration(), GroupTreePartition.GetDeclaration(), ReportSnapshot.GetDeclaration(), ParametersImplWrapper.GetDeclaration(), ParameterImplWrapper.GetDeclaration(), SubReportInfo.GetDeclaration(), ParameterInfo.GetNewDeclaration(), ParameterInfoCollection.GetDeclaration(), ParameterBase.GetNewDeclaration(), ValidValue.GetNewDeclaration(), FieldInfo.GetDeclaration(), TreePartitionManager.GetDeclaration(), LookupObjResult.GetDeclaration(), DataCellInstanceList.GetDeclaration() }); } return(m_ChunkDeclarations); }
internal static void DeserializeGroupTree(Report report, IChunkFactory chunkFactory, GlobalIDOwnerCollection globalIDOwnerCollection, IConfiguration configuration, ref OnDemandMetadata odpMetadata) { bool prohibitSerializableValues = configuration?.ProhibitSerializableValues ?? false; EnsureGroupTreeStorageSetup(odpMetadata, chunkFactory, globalIDOwnerCollection, openExisting: true, ReportProcessingCompatibilityVersion.GetCompatibilityVersion(configuration), prohibitSerializableValues); GroupTreePartition groupTreePartition = (GroupTreePartition)odpMetadata.GroupTreeScalabilityCache.Storage.Retrieve(odpMetadata.GroupTreeRootOffset); Global.Tracer.Assert(groupTreePartition.TopLevelScopeInstances[0].GetObjectType() == ObjectType.ReportInstanceReference, "GroupTree root partition did not contain a ReportInstance"); odpMetadata.ReportInstance = (groupTreePartition.TopLevelScopeInstances[0] as IReference <ReportInstance>); odpMetadata.Report = report; odpMetadata.ReportSnapshot.Report = report; }
public void SerializeSnapshot() { Global.Tracer.Assert(null != this.m_odpContext, "OnDemandProcessingContext is unavailable"); OnDemandMetadata odpMetadata = this.m_odpContext.OdpMetadata; if (odpMetadata.SnapshotHasChanged) { try { IReference <ReportInstance> reportInstance = odpMetadata.ReportInstance; Global.Tracer.Assert(reportInstance != null, "Missing GroupTreeRoot"); if (odpMetadata.IsInitialProcessingRequest) { reportInstance.UnPinValue(); } if (odpMetadata.GroupTreeHasChanged || odpMetadata.IsInitialProcessingRequest) { GroupTreeScalabilityCache groupTreeScalabilityCache = this.m_odpContext.OdpMetadata.GroupTreeScalabilityCache; groupTreeScalabilityCache.Flush(); if (odpMetadata.IsInitialProcessingRequest) { GroupTreePartition groupTreePartition = new GroupTreePartition(); groupTreePartition.AddTopLevelScopeInstance((IReference <ScopeInstance>)reportInstance); long groupTreeRootOffset = groupTreeScalabilityCache.Storage.Allocate(groupTreePartition); groupTreeScalabilityCache.Storage.Flush(); odpMetadata.GroupTreeRootOffset = groupTreeRootOffset; } } if (odpMetadata.LookupInfoHasChanged) { LookupScalabilityCache lookupScalabilityCache = this.m_odpContext.OdpMetadata.LookupScalabilityCache; lookupScalabilityCache.Flush(); } OnDemandProcessingManager.SerializeMetadata(this.m_odpContext.ChunkFactory, this.m_odpContext.OdpMetadata, this.m_odpContext.GetActiveCompatibilityVersion(), this.m_odpContext.ProhibitSerializableValues); OnDemandProcessingManager.SerializeSortFilterEventInfo(this.m_odpContext); } finally { if (odpMetadata != null) { odpMetadata.DisposePersistedTreeScalability(); } } } }
public bool TryCreateObject(ObjectType objectType, out IPersistable persistObj) { switch (objectType) { case ObjectType.DataCellInstance: persistObj = new DataCellInstance(); break; case ObjectType.DataAggregateObjResult: persistObj = new DataAggregateObjResult(); break; case ObjectType.DataRegionMemberInstance: persistObj = new DataRegionMemberInstance(); break; case ObjectType.DataRegionInstance: persistObj = new DataRegionInstance(); break; case ObjectType.DataSetInstance: persistObj = new DataSetInstance(); break; case ObjectType.ReportInstance: persistObj = new ReportInstance(); break; case ObjectType.OnDemandMetadata: persistObj = new OnDemandMetadata(); break; case ObjectType.GroupTreePartition: persistObj = new GroupTreePartition(); break; case ObjectType.IntermediateFormatVersion: persistObj = new IntermediateFormatVersion(); break; case ObjectType.ReportSnapshot: persistObj = new ReportSnapshot(); break; case ObjectType.SubReportInstance: persistObj = new SubReportInstance(); break; case ObjectType.Parameters: persistObj = new ParametersImplWrapper(); break; case ObjectType.Parameter: persistObj = new ParameterImplWrapper(); break; case ObjectType.SubReportInfo: persistObj = new SubReportInfo(); break; case ObjectType.CommonSubReportInfo: persistObj = new CommonSubReportInfo(); break; case ObjectType.ParameterInfo: persistObj = new ParameterInfo(); break; case ObjectType.ParameterInfoCollection: persistObj = new ParameterInfoCollection(); break; case ObjectType.ParametersLayout: persistObj = new ParametersGridLayout(); break; case ObjectType.ParameterGridLayoutCellDefinition: persistObj = new ParameterGridLayoutCellDefinition(); break; case ObjectType.ValidValue: persistObj = new ValidValue(); break; case ObjectType.FieldInfo: persistObj = new FieldInfo(); break; case ObjectType.ImageInfo: persistObj = new ImageInfo(); break; case ObjectType.TreePartitionManager: persistObj = new TreePartitionManager(); break; case ObjectType.LookupObjResult: persistObj = new LookupObjResult(); break; case ObjectType.ShapefileInfo: persistObj = new ShapefileInfo(); break; case ObjectType.UpdatedVariableValues: persistObj = new UpdatedVariableValues(); break; case ObjectType.DataCellInstanceList: persistObj = new DataCellInstanceList(); break; default: persistObj = null; return(false); } return(true); }