public ClusterController(ClientConfiguration clientConfig)
     : this(clientConfig,
         pool =>
         {
             Log.Debug(m => m("Creating DefaultIOStrategy"));
             return new DefaultIOStrategy(pool);
         },
     (config, endpoint) =>
     {
         IConnectionPool connectionPool;
         if (config.UseSsl)
         {
             connectionPool = new ConnectionPool<SslConnection>(config, endpoint);
         }
         else
         {
             connectionPool = new ConnectionPool<Connection>(config, endpoint);
         }
         connectionPool.Initialize();
         return connectionPool;
     },
     SaslFactory.GetFactory3(),
     clientConfig.Converter(),
     clientConfig.Transcoder())
 {
 }
 public ClusterController(ClientConfiguration clientConfig)
     : this(clientConfig,
     clientConfig.IOServiceCreator,
     clientConfig.ConnectionPoolCreator,
     clientConfig.CreateSaslMechanism,
     clientConfig.Converter(),
     clientConfig.Transcoder())
 {
 }
        /// <summary>
        /// Gets a Func for creating <see cref="ITypeTranscoder"/> transcoders.
        /// </summary>
        /// <param name="config">The current <see cref="ClientConfiguration"/>.</param>
        /// <param name="typeName">The name of the type implementing <see cref="ITypeTranscoder"/>.</param>
        /// <returns>A <see cref="Func{ITypeTranscoder}"/> for creating <see cref="ITypeTranscoder"/>s.</returns>
        public static Func<ITypeTranscoder> GetTranscoder(ClientConfiguration config, string typeName)
        {
            var parameters = new object[]
            {
                config.Converter(),
                config.Serializer()
            };

            var type = Type.GetType(typeName, true);
            return () => (ITypeTranscoder)Activator.CreateInstance(type, parameters);
        }
 public ClusterController(ClientConfiguration clientConfig, Func<IConnectionPool, IOStrategy> ioStrategyFactory)
     : this(clientConfig,
     ioStrategyFactory,
     (config, endpoint) =>
     {
         IConnectionPool connectionPool;
         if (config.UseSsl)
         {
             connectionPool = new ConnectionPool<SslConnection>(config, endpoint);
         }
         else
         {
             connectionPool = new ConnectionPool<Connection>(config, endpoint);
         }
         connectionPool.Initialize();
         return connectionPool;
     }, SaslFactory.GetFactory3(),
     clientConfig.Converter(),
     clientConfig.Transcoder())
 {
 }
 public void When_Custom_Converter_Configured_In_AppConfig_It_Is_Returned()
 {
     var section = (CouchbaseClientSection)ConfigurationManager.GetSection("couchbaseClients/couchbase_2");
     var config = new ClientConfiguration(section);
     Assert.IsInstanceOf<FakeConverter>(config.Converter());
 }
 /// <summary>
 /// Gets a Func for creating <see cref="ITypeTranscoder"/> transcoders.
 /// </summary>
 /// <param name="config">The current <see cref="ClientConfiguration"/>.</param>
 /// <returns>A <see cref="Func{ITypeTranscoder}"/> for creating <see cref="ITypeTranscoder"/>s.</returns>
 public static Func<ITypeTranscoder> GetTranscoder(ClientConfiguration config)
 {
     return () => new DefaultTranscoder(config.Converter(), config.Serializer());
 }