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())); }
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())); }
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); } }
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); } }
public string GetUnicodeString(int iOffset, int iLength) { return(XmlConverter.ToStringUnicode(this.buffer, iOffset, iLength)); }
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(); } }