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);
        }
示例#2
0
        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 MobileStreamingProcessor(IMobileConfiguration configuration,
                                          IFlagCacheManager cacheManager,
                                          User user,
                                          StreamManager.EventSourceCreator eventSourceCreator)
        {
            this._configuration = configuration;
            this._cacheManager  = cacheManager;
            this._user          = user;

            StreamProperties streamProperties;

            if (_configuration.UseReport)
            {
                streamProperties = MakeStreamPropertiesForREPORT();
            }
            else
            {
                streamProperties = MakeStreamPropertiesForGET();
            }

            _streamManager = new StreamManager(this,
                                               streamProperties,
                                               _configuration,
                                               MobileClientEnvironment.Instance,
                                               eventSourceCreator);
        }
示例#4
0
 internal StreamProcessor(Configuration config, IFeatureRequestor featureRequestor,
                          IFeatureStore featureStore, StreamManager.EventSourceCreator eventSourceCreator)
 {
     _streamManager = new StreamManager(this,
                                        MakeStreamProperties(config),
                                        config,
                                        ServerSideClientEnvironment.Instance,
                                        eventSourceCreator);
     _config           = config;
     _featureRequestor = featureRequestor;
     _featureStore     = featureStore;
 }
        internal MobileStreamingProcessor(Configuration configuration,
                                          IFlagCacheManager cacheManager,
                                          User user,
                                          StreamManager.EventSourceCreator eventSourceCreator)
        {
            this._configuration = configuration;
            this._cacheManager  = cacheManager;
            this._user          = user;

            var streamProperties = _configuration.UseReport ? MakeStreamPropertiesForReport() : MakeStreamPropertiesForGet();

            _streamManager = new StreamManager(this,
                                               streamProperties,
                                               _configuration.StreamManagerConfiguration,
                                               MobileClientEnvironment.Instance,
                                               eventSourceCreator);
        }