public HobknobClient Create(string etcdHost, int etcdPort, string applicationName, TimeSpan cacheUpdateInterval)
        {
            var etcdKeysPath = string.Format("http://{0}:{1}/v2/keys/", etcdHost, etcdPort);

            var etcdClient = new EtcdClient(new Uri(etcdKeysPath));
            var featureToggleProvider = new FeatureToggleProvider(etcdClient, applicationName);
            var featureToggleCache = new FeatureToggleCache(featureToggleProvider, cacheUpdateInterval);
            var hobknobClient = new HobknobClient(featureToggleCache, applicationName);

            featureToggleCache.Initialize();

            return hobknobClient;
        }
Пример #2
0
        public HobknobClient Create(string etcdHost, int etcdPort, string applicationName, TimeSpan cacheUpdateInterval)
        {
            var etcdKeysPath = string.Format("http://{0}:{1}/v2/keys/", etcdHost, etcdPort);

            var etcdClient            = new EtcdClient(new Uri(etcdKeysPath));
            var featureToggleProvider = new FeatureToggleProvider(etcdClient, applicationName);
            var featureToggleCache    = new FeatureToggleCache(featureToggleProvider, cacheUpdateInterval);
            var hobknobClient         = new HobknobClient(featureToggleCache, applicationName);

            featureToggleCache.Initialize();

            return(hobknobClient);
        }
Пример #3
0
        public IHobknobClient Create(string etcdHost, int etcdPort, string applicationName, TimeSpan cacheUpdateInterval, EventHandler <CacheUpdateFailedArgs> cacheUpdateFailed)
        {
            var etcdKeysPath = string.Format("http://{0}:{1}/v2/keys/", etcdHost, etcdPort);

            var etcdClient            = new EtcdClient(new Uri(etcdKeysPath));
            var featureToggleProvider = new FeatureToggleProvider(etcdClient, applicationName);
            var featureToggleCache    = new FeatureToggleCache(featureToggleProvider, cacheUpdateInterval);
            var hobknobClient         = new HobknobClient(featureToggleCache, applicationName);

            if (cacheUpdateFailed == null)
            {
                throw new ArgumentNullException("cacheUpdateFailed", "Cached update handler is empty");
            }
            featureToggleCache.CacheUpdateFailed += cacheUpdateFailed;

            featureToggleCache.Initialize();

            return(hobknobClient);
        }
 public FeatureToggleProvider(EtcdClient etcdClient, string applicationName)
 {
     _etcdClient              = etcdClient;
     _applicationKeyPrefix    = string.Format("v1/toggles/{0}", applicationName);
     _applicationDirectoryKey = new Uri(_applicationKeyPrefix, UriKind.Relative);
 }
 public FeatureToggleProvider(EtcdClient etcdClient, string applicationName)
 {
     _etcdClient = etcdClient;
     _applicationDirectoryKey = new Uri(string.Format("v1/toggles/{0}", applicationName), UriKind.Relative);
 }