Example #1
0
        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);
        }
Example #2
0
 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);
 }
Example #3
0
        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;
                }
            }
        }