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; }
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); }
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); }