Exemplo n.º 1
0
        /// <summary>
        /// Returns an encoder instance based on the transcoding name (e.g json, bson).
        /// </summary>
        /// <param name="name">The transcoding name.</param>
        /// <returns></returns>
        /// <exception cref="System.Collections.Generic.KeyNotFoundException">Could not locate an encoder for '{name}'.</exception>
        public IResonanceEncoder GetEncoder(string name)
        {
            lock (_initLock)
            {
                IResonanceEncoder encoder = null;

                if (_encoders.TryGetValue(name, out encoder))
                {
                    return(encoder);
                }

                Dictionary <String, IResonanceEncoder> encoders = new Dictionary <string, IResonanceEncoder>();

                foreach (var type in AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()).Where(x => x.GetCustomAttribute <ResonanceTranscodingAttribute>() != null && typeof(ResonanceEncoder).IsAssignableFrom(x)))
                {
                    encoders.Add(type.GetCustomAttribute <ResonanceTranscodingAttribute>().Name, Activator.CreateInstance(type) as IResonanceEncoder);
                }

                foreach (var d in encoders)
                {
                    _encoders[d.Key] = d.Value;
                }

                if (encoders.TryGetValue(name, out encoder))
                {
                    return(encoder);
                }

                throw new KeyNotFoundException($"Could not locate an encoder for '{name}'.");
            }
        }
Exemplo n.º 2
0
        public static void Read_Write_Test(ResonanceTest test, IResonanceAdapter adapter1, IResonanceAdapter adapter2, IResonanceEncoder encoder, IResonanceDecoder decoder, bool enableCryptography, int count, int maxOutliersPercentage)
        {
            IResonanceTransporter t1 = ResonanceTransporter.Builder
                                       .Create()
                                       .WithAdapter(adapter1)
                                       .WithTranscoding(encoder, decoder)
                                       .NoKeepAlive()
                                       .Build();

            IResonanceTransporter t2 = ResonanceTransporter.Builder
                                       .Create()
                                       .WithAdapter(adapter2)
                                       .WithTranscoding(encoder, decoder)
                                       .NoKeepAlive()
                                       .Build();

            Read_Write_Test(test, t1, t2, enableCryptography, count, maxOutliersPercentage);
        }
Exemplo n.º 3
0
 public static void Read_Write_Test(ResonanceTest test, IResonanceEncoder encoder, IResonanceDecoder decoder, bool enableCryptography, int count, int maxOutliersPercentage)
 {
     Read_Write_Test(test, new InMemoryAdapter("TST"), new InMemoryAdapter("TST"), encoder, decoder, enableCryptography, count, maxOutliersPercentage);
 }