internal int GetChunkNameModifierForParamValues(ParametersImpl parameterValues, bool addEntry, ref bool?isShared, out ParametersImpl fullParameterValues) { if (parameterValues == null) { parameterValues = new ParametersImpl(); } if (m_parameterValuesToInfoIndexMap == null) { m_instanceParameterValues = new List <ParametersImplWrapper>(); m_parameterValuesToInfoIndexMap = new Dictionary <ParametersImplWrapper, int>(ParametersImplValuesComparer.Instance); } ParametersImplWrapper parametersImplWrapper = new ParametersImplWrapper(parameterValues); if (m_parameterValuesToInfoIndexMap.TryGetValue(parametersImplWrapper, out int value)) { fullParameterValues = m_instanceParameterValues[value].WrappedParametersImpl; if (!isShared.HasValue) { isShared = true; } } else { isShared = false; fullParameterValues = parameterValues; if (addEntry) { value = m_instanceParameterValues.Count; m_instanceParameterValues.Add(parametersImplWrapper); m_parameterValuesToInfoIndexMap.Add(parametersImplWrapper, value); } } return(value); }
internal bool ValuesAreEqual(ParametersImplWrapper obj) { ParameterImpl[] collection = m_opdParameters.Collection; ParameterImpl[] collection2 = obj.WrappedParametersImpl.Collection; if (collection == null) { if (collection2 == null) { return(true); } return(false); } if (collection2 == null) { return(false); } if (collection.Length != collection2.Length) { return(false); } for (int i = 0; i < collection.Length; i++) { if (!collection[i].ValuesAreEqual(collection2[i])) { return(false); } } return(true); }
public override void Deserialize(IntermediateFormatReader reader) { reader.RegisterDeclaration(m_Declaration); while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.SubReport: m_subReportDef = reader.ReadGlobalReference <SubReport>(); break; case MemberName.Parameters: { ParametersImplWrapper parametersImplWrapper = (ParametersImplWrapper)reader.ReadRIFObject(); if (parametersImplWrapper != null) { m_parameters = parametersImplWrapper.WrappedParametersImpl; } break; } case MemberName.ReportInstance: m_reportInstance = (IReference <ReportInstance>)reader.ReadRIFObject(); break; case MemberName.DataSetUniqueName: m_instanceUniqueName = reader.ReadString(); break; case MemberName.ThreadCulture: m_threadCulture = reader.ReadCultureInfo(); break; case MemberName.Status: m_status = (SubReport.Status)reader.ReadEnum(); break; case MemberName.ProcessedWithError: m_processedWithError = reader.ReadBoolean(); break; case MemberName.IsInstanceShared: { object obj2 = reader.ReadVariant(); if (obj2 != null) { m_isInstanceShared = (bool)obj2; } break; } case MemberName.DataChunkNameModifier: { object obj = reader.ReadVariant(); if (obj != null) { m_dataChunkNameModifier = (int)obj; } break; } default: Global.Tracer.Assert(condition: false); break; } } }