Microsoft.Protocols.TestSuites.Common.PropertyRow.Parse C# (CSharp) Method

Parse() public method

Parse bytes in context into a PropertyRowNode
public Parse ( Context context ) : void
context Context The value of Context
return void
        public override void Parse(Context context)
        {
            // Clear PropertyValues to store parsing result
            this.propertyValues.Clear();

            // Flag indicates the Type of PropertyRow
            this.flag = context.PropertyBytes[context.CurIndex++];

            foreach (Property prop in context.Properties)
            {
                if (context.IsEnd())
                {
                    throw new ParseException("End prematurely");
                }
                
                PropertyValue valueNode = null;

                if (this.flag == 0)
                {
                    // StandardPropertyRow
                    if (prop.Type == PropertyType.PtypUnspecified)
                    {
                        valueNode = new TypedPropertyValue();
                    }
                    else
                    {
                        valueNode = new PropertyValue();
                    }
                }
                else
                {
                    // FlaggedPropertyRow
                    if (prop.Type == PropertyType.PtypUnspecified)
                    {
                        valueNode = new FlaggedPropertyValueWithType();
                    }
                    else
                    {
                        valueNode = new FlaggedPropertyValue();
                    }
                }

                context.CurProperty = new Property((PropertyType)prop.Type);
                valueNode.Parse(context);
                this.propertyValues.Add(valueNode);
            }
        }
    }

Usage Example

Example #1
0
        /// <summary>
        /// Parse bytes in context into a PropertyRowSetNode
        /// </summary>
        /// <param name="context">The value of Context</param>
        public override void Parse(Context context)
        {
            // No PropertyRowNode to parse
            if (this.count <= 0)
            {
                return;
            }

            // Clear PropretyRows list to store parsing result
            context.PropertyRows.Clear();

            // Parse PropertyRow one by one
            for (int i = 0; i < this.count; i++)
            {
                if (context.IsEnd())
                {
                    throw new ParseException("End prematurely");
                }

                PropertyRow propertyRow = new PropertyRow();
                propertyRow.Parse(context);
                context.PropertyRows.Add(propertyRow);
            }

            // Assign parsing result to PropertyRows
            this.propertyRows = context.PropertyRows;
        }
All Usage Examples Of Microsoft.Protocols.TestSuites.Common.PropertyRow::Parse