Esempio n. 1
0
        LdClient(Configuration configuration, User user)
        {
            Config = configuration;

            connectionLock = new SemaphoreSlim(1, 1);

            persister           = Factory.CreatePersister(configuration);
            deviceInfo          = Factory.CreateDeviceInfo(configuration);
            flagListenerManager = Factory.CreateFeatureFlagListenerManager(configuration);

            // If you pass in a null user or user with a null key, one will be assigned to them.
            if (user == null || user.Key == null)
            {
                User = UserWithUniqueKey(user);
            }
            else
            {
                User = user;
            }

            flagCacheManager  = Factory.CreateFlagCacheManager(configuration, persister, flagListenerManager, User);
            connectionManager = Factory.CreateConnectionManager(configuration);
            updateProcessor   = Factory.CreateUpdateProcessor(configuration, User, flagCacheManager);
            eventProcessor    = Factory.CreateEventProcessor(configuration);

            SetupConnectionManager();
        }
Esempio n. 2
0
 internal static IFlagCacheManager CreateFlagCacheManager(Configuration configuration,
                                                          ISimplePersistance persister,
                                                          IFlagListenerUpdater updater,
                                                          User user)
 {
     if (configuration.FlagCacheManager != null)
     {
         return(configuration.FlagCacheManager);
     }
     else
     {
         var inMemoryCache = new UserFlagInMemoryCache();
         var deviceCache   = new UserFlagDeviceCache(persister);
         return(new FlagCacheManager(inMemoryCache, deviceCache, updater, user));
     }
 }
Esempio n. 3
0
        LdClient(Configuration configuration, User user)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            Config = configuration;

            connectionLock = new SemaphoreSlim(1, 1);

            persister           = Factory.CreatePersister(configuration);
            deviceInfo          = Factory.CreateDeviceInfo(configuration);
            flagListenerManager = Factory.CreateFeatureFlagListenerManager(configuration);
            platformAdapter     = Factory.CreatePlatformAdapter(configuration);

            // If you pass in a user with a null or blank key, one will be assigned to them.
            if (String.IsNullOrEmpty(user.Key))
            {
                User = UserWithUniqueKey(user);
            }
            else
            {
                User = user;
            }

            flagCacheManager  = Factory.CreateFlagCacheManager(configuration, persister, flagListenerManager, User);
            connectionManager = Factory.CreateConnectionManager(configuration);
            updateProcessor   = Factory.CreateUpdateProcessor(configuration, User, flagCacheManager);
            eventProcessor    = Factory.CreateEventProcessor(configuration);

            eventProcessor.SendEvent(eventFactory.NewIdentifyEvent(User));

            SetupConnectionManager();
        }
 public UserFlagDeviceCache(ISimplePersistance persister)
 {
     this.persister = persister;
 }
Esempio n. 5
0
 /// <summary>
 /// Sets the ISimplePersistance instance, used internally for stubbing mock instances.
 /// </summary>
 /// <param name="configuration">Configuration.</param>
 /// <param name="persister">Persister.</param>
 /// <returns>the same <c>Configuration</c> instance</returns>
 public static Configuration WithPersister(this Configuration configuration, ISimplePersistance persister)
 {
     configuration.Persister = persister;
     return(configuration);
 }