public char ReadChar() { InitializeReading(); try { long startingPos = this.byteBuffer.Position; try { int type = this.dataIn.ReadByte(); if (type == PrimitiveMap.CHAR_TYPE) { return(this.dataIn.ReadChar()); } else if (type == PrimitiveMap.NULL) { this.byteBuffer.Seek(startingPos, SeekOrigin.Begin); throw new NMSException("Cannot convert Null type to a char"); } else { this.byteBuffer.Seek(startingPos, SeekOrigin.Begin); throw new MessageFormatException("Value is not a Char type."); } } catch (FormatException e) { this.byteBuffer.Seek(startingPos, SeekOrigin.Begin); throw NMSExceptionSupport.CreateMessageFormatException(e); } } catch (EndOfStreamException e) { throw NMSExceptionSupport.CreateMessageEOFException(e); } catch (IOException e) { throw NMSExceptionSupport.CreateMessageFormatException(e); } }
public Object ReadObject() { InitializeReading(); long startingPos = this.byteBuffer.Position; try { int type = this.dataIn.ReadByte(); if (type == PrimitiveMap.BIG_STRING_TYPE) { return(this.dataIn.ReadString32()); } else if (type == PrimitiveMap.STRING_TYPE) { return(this.dataIn.ReadString16()); } else if (type == PrimitiveMap.LONG_TYPE) { return(this.dataIn.ReadInt64()); } else if (type == PrimitiveMap.INTEGER_TYPE) { return(this.dataIn.ReadInt32()); } else if (type == PrimitiveMap.SHORT_TYPE) { return(this.dataIn.ReadInt16()); } else if (type == PrimitiveMap.FLOAT_TYPE) { return(this.dataIn.ReadSingle()); } else if (type == PrimitiveMap.DOUBLE_TYPE) { return(this.dataIn.ReadDouble()); } else if (type == PrimitiveMap.CHAR_TYPE) { return(this.dataIn.ReadChar()); } else if (type == PrimitiveMap.BYTE_TYPE) { return(this.dataIn.ReadByte()); } else if (type == PrimitiveMap.BOOLEAN_TYPE) { return(this.dataIn.ReadBoolean()); } else if (type == PrimitiveMap.BYTE_ARRAY_TYPE) { int length = this.dataIn.ReadInt32(); byte[] data = new byte[length]; this.dataIn.Read(data, 0, length); return(data); } else if (type == PrimitiveMap.NULL) { return(null); } else { this.byteBuffer.Seek(startingPos, SeekOrigin.Begin); throw new MessageFormatException("Value is not a known type."); } } catch (FormatException e) { this.byteBuffer.Seek(startingPos, SeekOrigin.Begin); throw NMSExceptionSupport.CreateMessageFormatException(e); } catch (EndOfStreamException e) { throw NMSExceptionSupport.CreateMessageEOFException(e); } catch (IOException e) { throw NMSExceptionSupport.CreateMessageFormatException(e); } }
public string ReadString() { InitializeReading(); long startingPos = this.byteBuffer.Position; try { int type = this.dataIn.ReadByte(); switch (type) { case PrimitiveMap.BIG_STRING_TYPE: return(this.dataIn.ReadString32()); case PrimitiveMap.STRING_TYPE: return(this.dataIn.ReadString16()); case PrimitiveMap.LONG_TYPE: return(this.dataIn.ReadInt64().ToString()); case PrimitiveMap.INTEGER_TYPE: return(this.dataIn.ReadInt32().ToString()); case PrimitiveMap.SHORT_TYPE: return(this.dataIn.ReadInt16().ToString()); case PrimitiveMap.FLOAT_TYPE: return(this.dataIn.ReadSingle().ToString()); case PrimitiveMap.DOUBLE_TYPE: return(this.dataIn.ReadDouble().ToString()); case PrimitiveMap.CHAR_TYPE: return(this.dataIn.ReadChar().ToString()); case PrimitiveMap.BYTE_TYPE: return(this.dataIn.ReadByte().ToString()); case PrimitiveMap.BOOLEAN_TYPE: return(this.dataIn.ReadBoolean().ToString()); case PrimitiveMap.NULL: return(null); default: this.byteBuffer.Seek(startingPos, SeekOrigin.Begin); throw new MessageFormatException("Value is not a known type."); } } catch (FormatException e) { this.byteBuffer.Seek(startingPos, SeekOrigin.Begin); throw NMSExceptionSupport.CreateMessageFormatException(e); } catch (EndOfStreamException e) { throw NMSExceptionSupport.CreateMessageEOFException(e); } catch (IOException e) { throw NMSExceptionSupport.CreateMessageFormatException(e); } }