/// <summary> /// Writes the specified value. /// </summary> /// <param name="value">The value.</param> private void Write(MgArgumentPacket value) { m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len); m_stream.Write(BitConverter.GetBytes((UInt32)value.ArgumentType), 0, UInt32Len); if (value.ArgumentType == MgArgumentType.String) { m_stream.Write(BitConverter.GetBytes((UInt32)value.Length), 0, UInt32Len); } }
/// <summary> /// Reads the class id. /// </summary> /// <returns></returns> public int ReadClassId() { MgArgumentPacket p = ReadArgumentPacket(); if (p.ArgumentType != MgArgumentType.ClassId) { throw new InvalidCastException(string.Format(Strings.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "ClassId")); //NOXLATE } return(BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0)); }
/// <summary> /// Reads the double. /// </summary> /// <returns></returns> public double ReadDouble() { MgArgumentPacket p = ReadArgumentPacket(); if (p.ArgumentType != MgArgumentType.Double) { throw new InvalidCastException(string.Format(Strings.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Double")); //NOXLATE } return(BitConverter.ToDouble(ReadStream(MgBinarySerializer.DoubleLen), 0)); }
/// <summary> /// Reads the byte. /// </summary> /// <returns></returns> public byte ReadByte() { MgArgumentPacket p = ReadArgumentPacket(); if (p.ArgumentType != MgArgumentType.INT8) { throw new InvalidCastException(string.Format(Strings.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Int8")); //NOXLATE } return((byte)m_stream.ReadByte()); }
/// <summary> /// Reads the int16. /// </summary> /// <returns></returns> public short ReadInt16() { MgArgumentPacket p = ReadArgumentPacket(); if (p.ArgumentType != MgArgumentType.INT16) { throw new InvalidCastException(string.Format(Strings.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Int16")); //NOXLATE } return(BitConverter.ToInt16(ReadStream(MgBinarySerializer.UInt16Len), 0)); }
/* * private MgStreamHeader ReadStreamHeader() * { * MgStreamHeader h = new MgStreamHeader(); * m_stream.Read(m_buf, 0, MgBinarySerializer.UInt32Len); * h.StreamStart = (MgStreamHeaderValues)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); * h.StreamVersion = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); * h.StreamDataHdr = (MgStreamHeaderValues)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); * return h; * }*/ private MgArgumentPacket ReadArgumentPacket() { MgArgumentPacket p = new MgArgumentPacket(); p.PacketHeader = (MgPacketHeader)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); p.ArgumentType = (MgArgumentType)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); if (p.ArgumentType == MgArgumentType.String) { p.Length = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); } return(p); }
/// <summary> /// Reads the string. /// </summary> /// <returns></returns> public string ReadString() { MgArgumentPacket p = ReadArgumentPacket(); if (p.ArgumentType != MgArgumentType.String) { throw new InvalidCastException(string.Format(Strings.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "string")); //NOXLATE } if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2)) { return(ReadInternalString()); } else { byte[] buf = ReadStreamRepeat((int)p.Length); string b = System.Text.Encoding.UTF8.GetString(buf); //Chop of C zero terminator... Why store it, when the length is also present? return(b.Substring(0, b.Length - 1)); } }
/// <summary> /// Writes the specified value. /// </summary> /// <param name="value">The value.</param> private void Write(MgArgumentPacket value) { m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len); m_stream.Write(BitConverter.GetBytes((UInt32)value.ArgumentType), 0, UInt32Len); if (value.ArgumentType == MgArgumentType.String) m_stream.Write(BitConverter.GetBytes((UInt32)value.Length), 0, UInt32Len); }
/* private MgStreamHeader ReadStreamHeader() { MgStreamHeader h = new MgStreamHeader(); m_stream.Read(m_buf, 0, MgBinarySerializer.UInt32Len); h.StreamStart = (MgStreamHeaderValues)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); h.StreamVersion = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); h.StreamDataHdr = (MgStreamHeaderValues)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); return h; }*/ private MgArgumentPacket ReadArgumentPacket() { MgArgumentPacket p = new MgArgumentPacket(); p.PacketHeader = (MgPacketHeader)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); p.ArgumentType = (MgArgumentType)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); if (p.ArgumentType == MgArgumentType.String) p.Length = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0); return p; }