Example #1
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="field">Parent field.</param>
 /// <param name="lowerBound">Lower bound of values the string corresponds to.</param>
 /// <param name="upperBound">Upper bound of values the string corresponds to.</param>
 /// <param name="stringValue">Human readable string.</param>
 public TSharkStringRange(TSharkField field, long lowerBound, long upperBound, string stringValue)
     : base(field)
 {
     this.LowerBound  = lowerBound;
     this.UpperBound  = upperBound;
     this.StringValue = stringValue;
 }
Example #2
0
        /// <summary>
        /// Adds a field to the schema.
        /// </summary>
        /// <param name="longName">Field long name.</param>
        /// <param name="shortName">Field short name.</param>
        /// <param name="ftenumType">Field type (e.g. FT_INT32, FT_STRING, etc)</param>
        /// <param name="protocolShortName">Parent protocol's short name.</param>
        /// <param name="description">Description of the field.</param>
        /// <param name="displayBase">Display base of the field (e.g. BASE_DEC, BASE_HEX, BASE_DEC).</param>
        /// <param name="bitmask">Bitmask of the field.</param>
        public void AddField(string longName, string shortName, string ftenumType, string protocolShortName, string description, string displayBase, string bitmask)
        {
            TSharkProtocol protocol = GetProtocol(protocolShortName);

            Type        type = TranslateFtenum(ftenumType);
            TSharkField existing;

            if (Fields.TryGetValue(shortName, out existing))
            {
                existing.Merge(protocol, longName, shortName, description, displayBase, bitmask, type);
            }
            else
            {
                Fields[shortName] = new TSharkField(protocol, longName, shortName, description, displayBase, bitmask, type);
            }
        }
Example #3
0
        /// <summary>
        /// Adds a string to the schema.
        /// </summary>
        /// <param name="fieldShortName">Parent field short name.</param>
        /// <param name="trueString">Human readable string corresponding to a value of true.</param>
        /// <param name="falseString">Human readable string corresponding to a value of false.</param>
        public void AddTrueFalseString(string fieldShortName, string trueString, string falseString)
        {
            TSharkField field = GetField(fieldShortName);

            string key = string.Concat(fieldShortName, "(t/f)");

            TSharkString existing;

            if (Strings.TryGetValue(key, out existing))
            {
                TSharkStringTrueFalse existingStringTrueFalse = (TSharkStringTrueFalse)existing;
                existingStringTrueFalse.Merge(trueString, falseString);
            }
            else
            {
                Strings[key] = new TSharkStringTrueFalse(field, trueString, falseString);
            }
        }
Example #4
0
        /// <summary>
        /// Adds a string to the schema.
        /// </summary>
        /// <param name="fieldShortName">Parent field short name.</param>
        /// <param name="value">Value the string corresponds to.</param>
        /// <param name="valueString">Human readable string.</param>
        public void AddValueString(string fieldShortName, long value, string valueString)
        {
            TSharkField field = GetField(fieldShortName);

            string key = string.Concat(fieldShortName, "(", value, ")");

            TSharkString existing;

            if (Strings.TryGetValue(key, out existing))
            {
                TSharkStringValue existingStringValue = (TSharkStringValue)existing;
                existingStringValue.Merge(valueString);
            }
            else
            {
                Strings[key] = new TSharkStringValue(field, value, valueString);
            }
        }
Example #5
0
        /// <summary>
        /// Adds a string to the schema.
        /// </summary>
        /// <param name="fieldShortName">Parent field short name.</param>
        /// <param name="lowerBound">Lower bound for values the string corresponds to.</param>
        /// <param name="upperBound">Upper bound for values the string corresponds to.</param>
        /// <param name="rangeString">Human readable string.</param>
        public void AddRangeString(string fieldShortName, long lowerBound, long upperBound, string rangeString)
        {
            TSharkField field = GetField(fieldShortName);

            string key = string.Concat(fieldShortName, "(", lowerBound, "-", upperBound, ")");

            TSharkString existing;

            if (Strings.TryGetValue(key, out existing))
            {
                TSharkStringRange existingStringRange = (TSharkStringRange)existing;
                existingStringRange.Merge(rangeString);
            }
            else
            {
                Strings[key] = new TSharkStringRange(field, lowerBound, upperBound, rangeString);
            }
        }
Example #6
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="field">Parent field.</param>
 /// <param name="trueStringValue">The true string value.</param>
 /// <param name="falseStringValue">The false string value.</param>
 public TSharkStringTrueFalse(TSharkField field, string trueStringValue, string falseStringValue)
     : base(field)
 {
     this.TrueStringValue  = trueStringValue;
     this.FalseStringValue = falseStringValue;
 }
Example #7
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="field">Parent field.</param>
 /// <param name="value">Value the string corresponds to.</param>
 /// <param name="stringValue">Human readable string.</param>
 public TSharkStringValue(TSharkField field, long value, string stringValue)
     : base(field)
 {
     this.Value       = value;
     this.StringValue = stringValue;
 }
Example #8
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="field">Parent field.</param>
        public TSharkString(TSharkField field)
        {
            this.Field = field;

            field.Strings.Add(this);
        }
Example #9
0
        /// <summary>
        /// Parses an unsigned integer value, storing it in the smallest available unsigned integer type.
        /// </summary>
        /// <remarks>
        /// This method is called internally by GetTypedValue.
        /// </remarks>
        /// <param name="show">Value to parse.</param>
        /// <param name="typedType">Receives the parsed type.</param>
        /// <param name="typedValue">Receives the parsed value.</param>
        /// <param name="field">The field descriptor.</param>
        private static void ParseUnsigned(string show, ref Type typedType, ref object typedValue, TSharkField field)
        {
            if (field.DisplayBase.Equals("BASE_NONE"))
            {
                typedType  = typeof(string);
                typedValue = show;
                return;
            }

            // oct values seem to be stored in decimal form...?

            ulong v;

            if (field.DisplayBase.StartsWith("BASE_HEX"))
            {
                v = BitConverter.ToUInt64(TSharkTypeParser.Reverse(TSharkTypeParser.ParseHexBytes(show, 8)), 0);
            }

            /*else if (field.DisplayBase.StartsWith("BASE_OCT"))
             * {
             *  v = BitConverter.ToUInt64(TSharkTypeParser.Reverse(TSharkTypeParser.ParseOctBytes(show, 8)), 0);
             * }*/
            else //if (field.DisplayBase.StartsWith("BASE_DEC"))
            {
                v = ulong.Parse(show);
            }

            if (v >= byte.MinValue && v <= byte.MaxValue)
            {
                typedType  = typeof(byte);
                typedValue = (byte)v;
            }
            else if (v >= ushort.MinValue && v <= ushort.MaxValue)
            {
                typedType  = typeof(ushort);
                typedValue = (ushort)v;
            }
            else if (v >= uint.MinValue && v <= uint.MaxValue)
            {
                typedType  = typeof(uint);
                typedValue = (uint)v;
            }
            else //if (v >= ulong.MinValue && v <= ulong.MaxValue)
            {
                typedType  = typeof(ulong);
                typedValue = (ulong)v;
            }
        }
Example #10
0
        /// <summary>
        /// Parses an unsigned integer value, storing it in the smallest available unsigned integer type.
        /// </summary>
        /// <remarks>
        /// This method is called internally by GetTypedValue.
        /// </remarks>
        /// <param name="show">Value to parse.</param>
        /// <param name="typedType">Receives the parsed type.</param>
        /// <param name="typedValue">Receives the parsed value.</param>
        /// <param name="field">The field descriptor.</param>
        private static void ParseUnsigned(string show, ref Type typedType, ref object typedValue, TSharkField field)
        {
            if (field.DisplayBase.Equals("BASE_NONE"))
            {
                typedType = typeof(string);
                typedValue = show;
                return;
            }

            // oct values seem to be stored in decimal form...?

            ulong v;
            if (field.DisplayBase.StartsWith("BASE_HEX"))
            {
                v = BitConverter.ToUInt64(TSharkTypeParser.Reverse(TSharkTypeParser.ParseHexBytes(show, 8)), 0);
            }
            /*else if (field.DisplayBase.StartsWith("BASE_OCT"))
            {
                v = BitConverter.ToUInt64(TSharkTypeParser.Reverse(TSharkTypeParser.ParseOctBytes(show, 8)), 0);
            }*/
            else //if (field.DisplayBase.StartsWith("BASE_DEC"))
            {
                v = ulong.Parse(show);
            }

            if (v >= byte.MinValue && v <= byte.MaxValue)
            {
                typedType = typeof(byte);
                typedValue = (byte)v;
            }
            else if (v >= ushort.MinValue && v <= ushort.MaxValue)
            {
                typedType = typeof(ushort);
                typedValue = (ushort)v;
            }
            else if (v >= uint.MinValue && v <= uint.MaxValue)
            {
                typedType = typeof(uint);
                typedValue = (uint)v;
            }
            else //if (v >= ulong.MinValue && v <= ulong.MaxValue)
            {
                typedType = typeof(ulong);
                typedValue = (ulong)v;
            }
        }
Example #11
0
        /// <summary>
        /// Adds a field to the schema.
        /// </summary>
        /// <param name="longName">Field long name.</param>
        /// <param name="shortName">Field short name.</param>
        /// <param name="ftenumType">Field type (e.g. FT_INT32, FT_STRING, etc)</param>
        /// <param name="protocolShortName">Parent protocol's short name.</param>
        /// <param name="description">Description of the field.</param>
        /// <param name="displayBase">Display base of the field (e.g. BASE_DEC, BASE_HEX, BASE_DEC).</param>
        /// <param name="bitmask">Bitmask of the field.</param>
        public void AddField(string longName, string shortName, string ftenumType, string protocolShortName, string description, string displayBase, string bitmask)
        {
            TSharkProtocol protocol = GetProtocol(protocolShortName);

            Type type = TranslateFtenum(ftenumType);
            TSharkField existing;
            if (Fields.TryGetValue(shortName, out existing))
            {
                existing.Merge(protocol, longName, shortName, description, displayBase, bitmask, type);
            }
            else
            {
                Fields[shortName] = new TSharkField(protocol, longName, shortName, description, displayBase, bitmask, type);
            }
        }
Example #12
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="field">Parent field.</param>
 /// <param name="value">Value the string corresponds to.</param>
 /// <param name="stringValue">Human readable string.</param>
 public TSharkStringValue(TSharkField field, long value, string stringValue)
     : base(field)
 {
     this.Value = value;
     this.StringValue = stringValue;
 }
Example #13
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="field">Parent field.</param>
 /// <param name="trueStringValue">The true string value.</param>
 /// <param name="falseStringValue">The false string value.</param>
 public TSharkStringTrueFalse(TSharkField field, string trueStringValue, string falseStringValue)
     : base(field)
 {
     this.TrueStringValue = trueStringValue;
     this.FalseStringValue = falseStringValue;
 }
Example #14
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="field">Parent field.</param>
 /// <param name="lowerBound">Lower bound of values the string corresponds to.</param>
 /// <param name="upperBound">Upper bound of values the string corresponds to.</param>
 /// <param name="stringValue">Human readable string.</param>
 public TSharkStringRange(TSharkField field, long lowerBound, long upperBound, string stringValue)
     : base(field)
 {
     this.LowerBound = lowerBound;
     this.UpperBound = upperBound;
     this.StringValue = stringValue;
 }
Example #15
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="field">Parent field.</param>
        public TSharkString(TSharkField field)
        {
            this.Field = field;

            field.Strings.Add(this);
        }