public OpenKitInitializer(IOpenKitBuilder builder)
        {
            logger = builder.Logger;
            privacyConfiguration = PrivacyConfiguration.From(builder);
            openKitConfiguration = OpenKitConfiguration.From(builder);

            timingProvider    = new DefaultTimingProvider();
            threadIdProvider  = new DefaultThreadIdProvider();
            sessionIdProvider = new DefaultSessionIdProvider();

            beaconCache        = new BeaconCache(logger);
            beaconCacheEvictor = new BeaconCacheEvictor(logger, beaconCache, BeaconCacheConfiguration.From(builder),
                                                        timingProvider);

            var httpClientConfig = HttpClientConfiguration.From(openKitConfiguration);
            // shared thread suspender between BeaconSender and HttpClient. HttpClient will be woken up when
            // BeaconSender shuts down
            var beaconSenderThreadSuspender = new InterruptibleThreadSuspender();

            beaconSender = new BeaconSender(
                logger,
                httpClientConfig,
                new DefaultHttpClientProvider(logger, beaconSenderThreadSuspender),
                timingProvider,
                beaconSenderThreadSuspender);
            var watchdogThreadSuspender = new InterruptibleThreadSuspender();

            sessionWatchdog = new SessionWatchdog(
                logger,
                new SessionWatchdogContext(timingProvider, watchdogThreadSuspender));
        }
Пример #2
0
 /// <summary>
 /// Create a <see cref="IPrivacyConfiguration"/> from the given <see cref="IOpenKitBuilder"/>.
 /// </summary>
 /// <param name="builder">the OpenKit builder for which to create a <see cref="IPrivacyConfiguration"/>.</param>
 /// <returns>
 ///     the newly created <see cref="IPrivacyConfiguration"/> or <code>null</code> if the given
 ///     <see cref="builder"/> is <code>null</code>.
 /// </returns>
 public static IPrivacyConfiguration From(IOpenKitBuilder builder)
 {
     if (builder == null)
     {
         return(null);
     }
     return(new PrivacyConfiguration(builder));
 }
        /// <summary>
        /// Creates a new <see cref="IBeaconCacheConfiguration"/> from the given <paramref name="builder"/>.
        /// </summary>
        /// <param name="builder">the OpenKit builder for which to create a <see cref="IBeaconCacheConfiguration"/></param>
        /// <returns>
        ///     a newly created <see cref="IBeaconCacheConfiguration"/> or <code>null</code> if the given
        ///     <paramref name="builder">argument</paramref> is <code>null</code>.
        /// </returns>
        internal static IBeaconCacheConfiguration From(IOpenKitBuilder builder)
        {
            if (builder == null)
            {
                return(null);
            }

            return(new BeaconCacheConfiguration(builder));
        }
        public void SetUp()
        {
            mockLogger = Substitute.For <ILogger>();

            mockBuilder = Substitute.For <IOpenKitBuilder>();
            mockBuilder.Logger.Returns(mockLogger);
            mockBuilder.ApplicationId.Returns(AppId);
            mockBuilder.ApplicationName.Returns(AppName);
            mockBuilder.ApplicationVersion.Returns(AppVersion);
        }
Пример #5
0
 public void SetUp()
 {
     mockOpenKitBuilder = Substitute.For <IOpenKitBuilder>();
     mockOpenKitBuilder.EndpointUrl.Returns(EndpointUrl);
     mockOpenKitBuilder.DeviceId.Returns(DeviceId);
     mockOpenKitBuilder.OpenKitType.Returns(OpenKitType);
     mockOpenKitBuilder.ApplicationId.Returns(ApplicationId);
     mockOpenKitBuilder.ApplicationName.Returns(ApplicationName);
     mockOpenKitBuilder.ApplicationVersion.Returns(ApplicationVersion);
     mockOpenKitBuilder.OperatingSystem.Returns(OperatingSystem);
     mockOpenKitBuilder.Manufacturer.Returns(Manufacturer);
     mockOpenKitBuilder.ModelId.Returns(ModelId);
     mockOpenKitBuilder.DefaultServerId.Returns(DefaultServerId);
 }
Пример #6
0
 private OpenKitConfiguration(IOpenKitBuilder builder)
 {
     EndpointUrl   = builder.EndpointUrl;
     DeviceId      = builder.DeviceId;
     OrigDeviceId  = builder.OrigDeviceId;
     OpenKitType   = builder.OpenKitType;
     ApplicationId = builder.ApplicationId;
     ApplicationIdPercentEncoded = PercentEncoder.Encode(ApplicationId, EncodingCharset, ReservedCharacters);
     ApplicationName             = builder.ApplicationName;
     ApplicationVersion          = builder.ApplicationVersion;
     OperatingSystem             = builder.OperatingSystem;
     Manufacturer    = builder.Manufacturer;
     ModelId         = builder.ModelId;
     DefaultServerId = builder.DefaultServerId;
     TrustManager    = builder.TrustManager;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="builder">OpenKit builder providing the required configuration.</param>
 private BeaconCacheConfiguration(IOpenKitBuilder builder)
 {
     MaxRecordAge        = builder.BeaconCacheMaxBeaconAge;
     CacheSizeLowerBound = builder.BeaconCacheLowerMemoryBoundary;
     CacheSizeUpperBound = builder.BeaconCacheUpperMemoryBoundary;
 }
Пример #8
0
 private PrivacyConfiguration(IOpenKitBuilder builder)
 {
     DataCollectionLevel = builder.DataCollectionLevel;
     CrashReportingLevel = builder.CrashReportingLevel;
 }