IMyCatValue IMyCatValue.ReadValue(MyCatPacket packet, long length, bool nullVal) { if (nullVal) { return(new MyCatTimeSpan(true)); } if (length >= 0) { string value = packet.ReadString(length); ParseMyCat(value); return(this); } long bufLength = packet.ReadByte(); int negate = 0; if (bufLength > 0) { negate = packet.ReadByte(); } isNull = false; if (bufLength == 0) { isNull = true; } else if (bufLength == 5) { mValue = new TimeSpan(packet.ReadInteger(4), 0, 0, 0); } else if (bufLength == 8) { mValue = new TimeSpan(packet.ReadInteger(4), packet.ReadByte(), packet.ReadByte(), packet.ReadByte()); } else { mValue = new TimeSpan(packet.ReadInteger(4), packet.ReadByte(), packet.ReadByte(), packet.ReadByte(), packet.ReadInteger(4) / 1000000); } if (negate == 1) { mValue = mValue.Negate(); } return(this); }
IMyCatValue IMyCatValue.ReadValue(MyCatPacket packet, long length, bool nullVal) { if (nullVal) { return(new MyCatUInt16(true)); } if (length == -1) { return(new MyCatUInt16((ushort)packet.ReadInteger(2))); } else { return(new MyCatUInt16(UInt16.Parse(packet.ReadString(length)))); } }
IMyCatValue IMyCatValue.ReadValue(MyCatPacket packet, long length, bool nullVal) { if (nullVal) { return(new MyCatUInt32((this as IMyCatValue).MyCatDbType, true)); } if (length == -1) { return(new MyCatUInt32((this as IMyCatValue).MyCatDbType, (uint)packet.ReadInteger(4))); } else { return(new MyCatUInt32((this as IMyCatValue).MyCatDbType, UInt32.Parse(packet.ReadString(length), NumberStyles.Any, CultureInfo.InvariantCulture))); } }
IMyCatValue IMyCatValue.ReadValue(MyCatPacket packet, long length, bool nullVal) { if (nullVal) { return(new MyCatDateTime(type, true)); } if (length >= 0) { string value = packet.ReadString(length); return(ParseMyCat(value)); } long bufLength = packet.ReadByte(); int year = 0, month = 0, day = 0; int hour = 0, minute = 0, second = 0, microsecond = 0; if (bufLength >= 4) { year = packet.ReadInteger(2); month = packet.ReadByte(); day = packet.ReadByte(); } if (bufLength > 4) { hour = packet.ReadByte(); minute = packet.ReadByte(); second = packet.ReadByte(); } if (bufLength > 7) { microsecond = packet.Read3ByteInt(); packet.ReadByte(); } return(new MyCatDateTime(type, year, month, day, hour, minute, second, microsecond)); }