Exemple #1
0
 public DevicePacketCodec()
 {
     _encodingBuilder = Device.Encoding.CreateBuilder(new[] {
         Data.Encoding.CreateBuilder(_defaultDataPacketEncodingBuilders),
         Command.Encoding.CreateBuilder(_defaultCommandPacketEncodingBuilders)
     });
 }
Exemple #2
0
        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)
            });
        }
Exemple #3
0
        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]);
            }
        }
Exemple #4
0
 public static PacketEncodingBuilder CreateBuilder() =>
 PacketEncodingBuilder.CreateDefaultBuilder().WithAncestorGeneric <string>("GLL", typeof(Gll)).AddDecorate(o => new Encoding(null));
Exemple #5
0
 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()));
Exemple #8
0
 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));
Exemple #10
0
 public static PacketEncodingBuilder CreateBuilder(IEnumerable <EncodingDecorator> encodings) =>
 PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new HeaderPacketEncoding(o, Header)).AddDecorate(o => new DescendantPacketEncoding <Packet>(o, encodings));
Exemple #11
0
 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()));
Exemple #12
0
 public static PacketEncodingBuilder CreateBuilder() =>
 PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new HeaderPacketEncoding(o, Header)).AddDecorate(o => new DescendantPacketEncoding <Packet>(o));
Exemple #13
0
 public static PacketEncodingBuilder CreateBuilder(IEnumerable <EncodingDecorator> encodings) =>
 PacketEncodingBuilder.CreateDefaultBuilder().AddDecorate(o => new AncestorPacketEncoding(o, Id, PacketType)).AddDecorate(o => new DescendantPacketEncoding <Data>(o, encodings));
Exemple #14
0
 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()));
Exemple #15
0
 public static PacketEncodingBuilder CreateBuilder() =>
 PacketEncodingBuilder.CreateDefaultBuilder()
 .WithHeader(new [] { BitConverter.GetBytes('$')[0] })
 .WithStringProperty(2)
 .AddDecorate(o => new Encoding());