public object Convert(object value, object converterParameter, BinarySerializationContext ctx) { var sector = (uint) value; var iso = ctx.FindAncestor<Iso9660>(); var sectorSize = iso.PrimaryVolumeDescriptor.SectorSize; return sector*sectorSize; }
public object Convert(object value, object converterParameter, BinarySerializationContext ctx) { var sector = (uint)value; var iso = ctx.FindAncestor <Iso9660>(); var sectorSize = iso.PrimaryVolumeDescriptor.SectorSize; return(sector * sectorSize); }
public void Deserialize(Stream Stream, Endianness Endianness, BinarySerializationContext Context) { while (true) { var Byte = (byte)Stream.ReadByte(); if (Byte == 0) { return; } var LabelType = GetLabelType(Byte); switch (LabelType) { case LabelType.Normal: { var LabelLength = GetLabelLength(Byte); GetLabel(Stream, LabelLength); continue; } case LabelType.Compressed: { var Pointer = GetPointer(Byte, Stream.ReadByte()); var Message = Context.FindAncestor <Message>(); var QLabel = Message.Questions .Select(Question => Question.Domain) .Where(Domain => Domain.Labels.Any(Label => Label.Offset == Pointer)) .SelectMany(Domain => Domain.Labels) .Where(Label => Label.Offset >= Pointer); Labels.AddRange(QLabel); return; } case LabelType.Extended: case LabelType.Unallocated: default: throw new NotImplementedException(Enum.GetName(typeof(LabelType), LabelType)); } } }