public DevicePacketCodec() { _encodingBuilder = Device.Encoding.CreateBuilder(new[] { Data.Encoding.CreateBuilder(_defaultDataPacketEncodingBuilders), Command.Encoding.CreateBuilder(_defaultCommandPacketEncodingBuilders) }); }
public DevicePacketCodec(IEnumerable <PacketEncodingBuilder> PacketEncodingBuilderList) { var packetEncodingBuilderList = PacketEncodingBuilderList.ToList(); _defaultCommandPacketEncodingBuilders.AddRange(packetEncodingBuilderList.Where(o => o.Build().GetType().BaseType?.GetGenericTypeDefinition() == typeof(FunctionPacketEncoding <>))); _defaultDataPacketEncodingBuilders.AddRange(packetEncodingBuilderList.Where(o => o.Build().GetType().BaseType?.GetGenericTypeDefinition() == typeof(AncestorPacketEncoding))); _encodingBuilder = Device.Encoding.CreateBuilder(new[] { Data.Encoding.CreateBuilder(_defaultDataPacketEncodingBuilders), Command.Encoding.CreateBuilder(_defaultCommandPacketEncodingBuilders) }); }
public PacketCodec(IEnumerable <PacketEncodingBuilder> PacketEncodingBuilderList) { _ancestorPacketEncodings = new Dictionary <Type, AncestorPacketEncoding>(); AncestorPacketEncodings = new ReadOnlyDictionary <Type, AncestorPacketEncoding>(_ancestorPacketEncodings); _defaultCommandPacketEncodingBuilders.AddRange(PacketEncodingBuilderList.Where(o => o.Build().GetType().BaseType.GetGenericTypeDefinition() == typeof(FunctionPacketEncoding <>))); _defaultDataPacketEncodingBuilders.AddRange(PacketEncodingBuilderList.Where(o => o.Build().GetType().BaseType.GetGenericTypeDefinition() == typeof(AncestorPacketEncoding))); EncodingBuilder = Packet.Encoding.CreateBuilder(new[] { Data.Encoding.CreateBuilder(_defaultDataPacketEncodingBuilders), Command.Encoding.CreateBuilder(_defaultCommandPacketEncodingBuilders) }); encoding = EncodingBuilder.Build(); var PacketEncoding = ((DescendantPacketEncoding <Packet>)encoding.FindDecoratedEncoding <DescendantPacketEncoding <Packet> >()); var DataEncoding = ((DescendantPacketEncoding <Data>)PacketEncoding.EncodingDictionary[PacketEncoding.IdDictionary[typeof(Data)]].FindDecoratedEncoding <DescendantPacketEncoding <Data> >()); foreach (var item in DataEncoding.IdDictionary) { _ancestorPacketEncodings.Add(item.Key, (AncestorPacketEncoding)DataEncoding.EncodingDictionary[item.Value]); } }
public static PacketEncodingBuilder CreateBuilder() => PacketEncodingBuilder.CreateDefaultBuilder().WithAncestorGeneric <string>("GLL", typeof(Gll)).AddDecorate(o => new Encoding(null));
public static PacketEncodingBuilder CreateBuilder() => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new Encoding(o));
public static PacketEncodingBuilder CreateBuilder(IEnumerable <EncodingDecorator> encodings) => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new Encoding(o, encodings));
public static PacketEncodingBuilder CreateBuilder(IEnumerable <PacketEncodingBuilder> encodingBuilders) => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new Encoding(o, encodingBuilders.Select(builder => builder.Build()).ToList()));
public static PacketEncodingBuilder CreateBuilder() => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new AncestorPacketEncoding(o, Id, PacketType)).AddDecorate(item => new Encoding(item));
public static PacketEncodingBuilder CreateBuilder(CommandDelegate command) => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new Encoding(o, command));
public static PacketEncodingBuilder CreateBuilder(IEnumerable <EncodingDecorator> encodings) => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new HeaderPacketEncoding(o, Header)).AddDecorate(o => new DescendantPacketEncoding <Packet>(o, encodings));
public static PacketEncodingBuilder CreateBuilder(IEnumerable <PacketEncodingBuilder> encodingBuileders) => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new HeaderPacketEncoding(o, Header)).AddDecorate(o => new DescendantPacketEncoding <Packet>(o, encodingBuileders.Select(o => o.Build()).ToList()));
public static PacketEncodingBuilder CreateBuilder() => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new HeaderPacketEncoding(o, Header)).AddDecorate(o => new DescendantPacketEncoding <Packet>(o));
public static PacketEncodingBuilder CreateBuilder(IEnumerable <EncodingDecorator> encodings) => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new AncestorPacketEncoding(o, Id, PacketType)).AddDecorate(o => new DescendantPacketEncoding <Data>(o, encodings));
public static PacketEncodingBuilder CreateBuilder(IEnumerable <PacketEncodingBuilder> encodingBuileders) => PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new AncestorPacketEncoding(o, Id, PacketType)).AddDecorate(o => new DescendantPacketEncoding <Data>(o, encodingBuileders.Select(o => o.Build()).ToList()));
public static PacketEncodingBuilder CreateBuilder() => PacketEncodingBuilder.CreateDefaultBuilder() .WithHeader(new [] { BitConverter.GetBytes('$')[0] }) .WithStringProperty(2) .AddDecorate(o => new Encoding());