Esempio n. 1
0
        public float ToSingle()
        {
            ValueHandleType valueHandleType = this.type;

            if (valueHandleType == ValueHandleType.Single)
            {
                return(this.GetSingle());
            }
            if (valueHandleType == ValueHandleType.Double)
            {
                double value = GetDouble();
                if ((value >= Single.MinValue && value <= Single.MaxValue) || double.IsInfinity(value) || double.IsNaN(value))
                {
                    return((Single)value);
                }
            }
            if (valueHandleType == ValueHandleType.Zero)
            {
                return(0.0f);
            }
            if (valueHandleType == ValueHandleType.One)
            {
                return(1f);
            }
            if (valueHandleType == ValueHandleType.Int8)
            {
                return(this.GetInt8());
            }
            if (valueHandleType == ValueHandleType.Int16)
            {
                return(this.GetInt16());
            }
            if (valueHandleType == ValueHandleType.UTF8)
            {
                return(XmlConverter.ToSingle(this.bufferReader.Buffer, this.offset, this.length));
            }

            return(XmlConverter.ToSingle(this.GetString()));
        }
Esempio n. 2
0
        public long ToLong()
        {
            ValueHandleType valueHandleType = this.type;

            if (valueHandleType == ValueHandleType.Zero)
            {
                return(0L);
            }
            if (valueHandleType == ValueHandleType.One)
            {
                return(1L);
            }
            if (valueHandleType == ValueHandleType.Int8)
            {
                return(this.GetInt8());
            }
            if (valueHandleType == ValueHandleType.Int16)
            {
                return(this.GetInt16());
            }
            if (valueHandleType == ValueHandleType.Int32)
            {
                return(this.GetInt32());
            }
            if (valueHandleType == ValueHandleType.Int64)
            {
                return(this.GetInt64());
            }
            if (valueHandleType == ValueHandleType.UInt64)
            {
                return((long)this.GetUInt64());
            }
            if (valueHandleType == ValueHandleType.UTF8)
            {
                return(XmlConverter.ToInt64(this.bufferReader.Buffer, this.offset, this.length));
            }

            return(XmlConverter.ToInt64(this.GetString()));
        }
Esempio n. 3
0
        public byte[] GetString(out int iOffset, out int iLength)
        {
            switch (type)
            {
            case StringHandleType.UTF8:
                iOffset = this.offset;
                iLength = this.length;
                return(bufferReader.Buffer);

            case StringHandleType.ConstString:
                byte[] constBytes = XmlConverter.ToBytes(ConstStrings[key]);
                iOffset = 0;
                iLength = constBytes.Length;
                return(constBytes);

            default:
                byte[] bytes = XmlConverter.ToBytes(bufferReader.GetEscapedString(this.offset, this.length));
                iOffset = 0;
                iLength = bytes.Length;
                return(bytes);
            }
        }
Esempio n. 4
0
        public bool IsWhitespace()
        {
            switch (this.type)
            {
            case ValueHandleType.True:
            case ValueHandleType.False:
            case ValueHandleType.Zero:
            case ValueHandleType.One:
                return(false);

            case ValueHandleType.UTF8:
                throw new NotSupportedException();

            case ValueHandleType.EscapedUTF8:
                throw new NotSupportedException();

            case ValueHandleType.Dictionary:
                throw new NotSupportedException();

            case ValueHandleType.Char:
                int @char = this.GetChar();
                if (@char > ushort.MaxValue)
                {
                    return(false);
                }

                return(XmlConverter.IsWhitespace((char)@char));

            case ValueHandleType.Unicode:
                throw new NotSupportedException();

            case ValueHandleType.ConstString:
                return(ValueHandle.constStrings[this.offset].Length == 0);

            default:
                return(this.length == 0);
            }
        }
Esempio n. 5
0
 public string GetUnicodeString(int iOffset, int iLength)
 {
     return(XmlConverter.ToStringUnicode(this.buffer, iOffset, iLength));
 }
Esempio n. 6
0
        public string GetString()
        {
            ValueHandleType valueHandleType = this.type;

            if (valueHandleType == ValueHandleType.UTF8)
            {
                return(this.GetCharsText());
            }

            switch (valueHandleType)
            {
            case ValueHandleType.Empty:
                return(string.Empty);

            case ValueHandleType.True:
                return("true");

            case ValueHandleType.False:
                return("false");

            case ValueHandleType.Zero:
                return("0");

            case ValueHandleType.One:
                return("1");

            case ValueHandleType.Int8:
            case ValueHandleType.Int16:
            case ValueHandleType.Int32:
                return(XmlConverter.ToString(this.ToInt()));

            case ValueHandleType.Int64:
                return(XmlConverter.ToString(this.GetInt64()));

            case ValueHandleType.UInt64:
                return(XmlConverter.ToString(this.GetUInt64()));

            case ValueHandleType.Single:
                return(XmlConverter.ToString(this.GetSingle()));

            case ValueHandleType.Double:
                return(XmlConverter.ToString(this.GetDouble()));

            case ValueHandleType.Decimal:
                return(XmlConverter.ToString(this.GetDecimal()));

            case ValueHandleType.DateTime:
                return(XmlConverter.ToString(this.ToDateTime()));

            case ValueHandleType.TimeSpan:
                return(XmlConverter.ToString(this.ToTimeSpan()));

            case ValueHandleType.Guid:
                return(XmlConverter.ToString(this.ToGuid()));

            case ValueHandleType.UniqueId:
                return(XmlConverter.ToString(this.ToUniqueId()));

            case ValueHandleType.UTF8:
                return(this.GetCharsText());

            case ValueHandleType.EscapedUTF8:
                return(this.GetEscapedCharsText());

            case ValueHandleType.Base64:
                throw new NotSupportedException();

            case ValueHandleType.List:
                throw new NotSupportedException();

            //return XmlConverter.ToString(this.ToList());
            case ValueHandleType.Char:
                return(this.GetCharText());

            case ValueHandleType.Unicode:
                return(this.GetUnicodeCharsText());

            case ValueHandleType.ConstString:
                return(ValueHandle.constStrings[this.offset]);

            default:
                throw new InvalidOperationException();
            }
        }