internal static IMobileUpdateProcessor CreateUpdateProcessor(Configuration configuration, User user, IFlagCacheManager flagCacheManager, StreamManager.EventSourceCreator source = null) { if (configuration.MobileUpdateProcessor != null) { return(configuration.MobileUpdateProcessor); } if (configuration.Offline) { Log.InfoFormat("Starting LaunchDarkly client in offline mode"); return(new NullUpdateProcessor()); } if (configuration.IsStreamingEnabled) { return(new MobileStreamingProcessor(configuration, flagCacheManager, user, source)); } else { var featureFlagRequestor = new FeatureFlagRequestor(configuration, user); return(new MobilePollingProcessor(featureFlagRequestor, flagCacheManager, user, configuration.PollingInterval)); } }
internal static IMobileUpdateProcessor CreateUpdateProcessor(Configuration configuration, User user, IFlagCacheManager flagCacheManager, StreamManager.EventSourceCreator source = null) { if (configuration.MobileUpdateProcessor != null) { return(configuration.MobileUpdateProcessor); } IMobileUpdateProcessor updateProcessor = null; if (configuration.Offline) { Log.InfoFormat("Was configured to be offline, starting service with NullUpdateProcessor"); return(new NullUpdateProcessor()); } if (configuration.IsStreamingEnabled) { updateProcessor = new MobileStreamingProcessor(configuration, flagCacheManager, user, source); } else { var featureFlagRequestor = new FeatureFlagRequestor(configuration, user); updateProcessor = new MobilePollingProcessor(featureFlagRequestor, flagCacheManager, user, configuration.PollingInterval); } return(updateProcessor); }
internal static Func <IMobileUpdateProcessor> CreateUpdateProcessorFactory(Configuration configuration, User user, IFlagCacheManager flagCacheManager, bool inBackground) { return(() => { if (configuration._updateProcessorFactory != null) { return configuration._updateProcessorFactory(configuration, flagCacheManager, user); } if (configuration.IsStreamingEnabled && !inBackground) { return new MobileStreamingProcessor(configuration, flagCacheManager, user, null); } else { var featureFlagRequestor = new FeatureFlagRequestor(configuration, user); return new MobilePollingProcessor(featureFlagRequestor, flagCacheManager, user, inBackground ? configuration.BackgroundPollingInterval : configuration.PollingInterval, inBackground ? configuration.BackgroundPollingInterval : TimeSpan.Zero); } }); }