private void BuildTreatmentLog(ConfigurationOptions config) { impressionsCache = new InMemoryImpressionsCache(new BlockingQueue <KeyImpression>(TreatmentLogSize)); treatmentLog = new SelfUpdatingTreatmentLog(treatmentSdkApiClient, TreatmentLogRefreshRate, impressionsCache); impressionListener = new AsynchronousImpressionListener(); ((AsynchronousImpressionListener)impressionListener).AddListener(treatmentLog); if (config.ImpressionListener != null) { ((AsynchronousImpressionListener)impressionListener).AddListener(config.ImpressionListener); } }
public ImpressionsManager(IImpressionsLog impressionsLog, IImpressionListener customerImpressionListener, IImpressionsCounter impressionsCounter, bool addPreviousTime, ImpressionsMode impressionsMode, IImpressionsObserver impressionsObserver = null) { _impressionsLog = impressionsLog; _customerImpressionListener = customerImpressionListener; _impressionsCounter = impressionsCounter; _addPreviousTime = addPreviousTime; _optimized = impressionsMode == ImpressionsMode.Optimized && addPreviousTime; _impressionsObserver = impressionsObserver; }
public ImpressionsManager(IImpressionsLog impressionsLog, IImpressionListener customerImpressionListener, IImpressionsCounter impressionsCounter, bool addPreviousTime, ImpressionsMode impressionsMode, ITelemetryRuntimeProducer telemetryRuntimeProducer, ITasksManager taskManager, IImpressionsObserver impressionsObserver = null) { _impressionsLog = impressionsLog; _customerImpressionListener = customerImpressionListener; _impressionsCounter = impressionsCounter; _addPreviousTime = addPreviousTime; _optimized = impressionsMode == ImpressionsMode.Optimized && addPreviousTime; _impressionsObserver = impressionsObserver; _telemetryRuntimeProducer = telemetryRuntimeProducer; _taskManager = taskManager; }
public JSONFileClient(string splitsFilePath, string segmentsFilePath, ISegmentCache segmentCacheInstance = null, ISplitCache splitCacheInstance = null, IImpressionListener treatmentLogInstance = null, bool isLabelsEnabled = true) { segmentCache = segmentCacheInstance ?? new InMemorySegmentCache(new ConcurrentDictionary <string, Segment>()); var segmentFetcher = new JSONFileSegmentFetcher(segmentsFilePath, segmentCache); var splitParser = new InMemorySplitParser(segmentFetcher, segmentCache); var splitChangeFetcher = new JSONFileSplitChangeFetcher(splitsFilePath); var splitChangesResult = splitChangeFetcher.Fetch(-1); var parsedSplits = new ConcurrentDictionary <string, ParsedSplit>(); foreach (Split split in splitChangesResult.splits) { parsedSplits.TryAdd(split.name, splitParser.Parse(split)); } splitCache = splitCacheInstance ?? new InMemorySplitCache(new ConcurrentDictionary <string, ParsedSplit>(parsedSplits)); impressionListener = treatmentLogInstance; splitter = new Splitter(); LabelsEnabled = isLabelsEnabled; manager = new SplitManager(splitCache); }
protected abstract ConfigurationOptions GetConfigurationOptions(string url = null, int?eventsPushRate = null, int?eventsQueueSize = null, int?featuresRefreshRate = null, bool?ipAddressesEnabled = null, IImpressionListener impressionListener = null);
public void AddListener(IImpressionListener worker) { workers.Add(worker); }
protected override ConfigurationOptions GetConfigurationOptions(string url = null, int?eventsPushRate = null, int?eventsQueueSize = null, int?featuresRefreshRate = null, bool?ipAddressesEnabled = null, IImpressionListener impressionListener = null) { return(new ConfigurationOptions { Endpoint = url, EventsEndpoint = url, TelemetryServiceURL = url, ReadTimeout = 20000, ConnectionTimeout = 20000, ImpressionListener = impressionListener, FeaturesRefreshRate = featuresRefreshRate ?? 1, SegmentsRefreshRate = 1, ImpressionsRefreshRate = 1, EventsPushRate = eventsPushRate ?? 1, EventsQueueSize = eventsQueueSize, IPAddressesEnabled = ipAddressesEnabled, StreamingEnabled = false, }); }
protected override ConfigurationOptions GetConfigurationOptions(string url = null, int?eventsPushRate = null, int?eventsQueueSize = null, int?featuresRefreshRate = null, bool?ipAddressesEnabled = null, IImpressionListener impressionListener = null) { var cacheConfig = new CacheAdapterConfigurationOptions { Host = Host, Port = Port, Password = Password, Database = Database }; return(new ConfigurationOptions { ImpressionListener = impressionListener, FeaturesRefreshRate = featuresRefreshRate ?? 1, SegmentsRefreshRate = 1, ImpressionsRefreshRate = 1, EventsPushRate = eventsPushRate ?? 1, IPAddressesEnabled = ipAddressesEnabled, CacheAdapterConfig = cacheConfig, Mode = Mode.Consumer }); }