Esempio n. 1
0
 /// <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));
            }
        }
Esempio n. 8
0
 /// <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);
 }
Esempio n. 9
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;
 }