示例#1
0
        // *** constructor ***

        /// <summary>
        /// Creates a new instance of type Beacon
        /// </summary>
        /// <param name="logger">Logger for logging messages</param>
        /// <param name="cache">Cache storing beacon related data</param>
        /// <param name="configuration">OpenKit related configuration</param>
        /// <param name="clientIPAddress">The client's IP address</param>
        /// <param name="threadIdProvider">Provider for retrieving thread id</param>
        /// <param name="timingProvider">Provider for time related methods</param>
        public Beacon(ILogger logger, BeaconCache beaconCache, OpenKitConfiguration configuration, string clientIPAddress,
                      IThreadIDProvider threadIDProvider, ITimingProvider timingProvider)
        {
            this.logger         = logger;
            this.beaconCache    = beaconCache;
            this.sessionNumber  = configuration.NextSessionNumber;
            this.timingProvider = timingProvider;

            this.configuration    = configuration;
            this.threadIDProvider = threadIDProvider;
            this.sessionStartTime = timingProvider.ProvideTimestampInMilliseconds();

            if (InetAddressValidator.IsValidIP(clientIPAddress))
            {
                this.clientIPAddress = clientIPAddress;
            }
            else
            {
                this.clientIPAddress = string.Empty;
            }

            // store the current http configuration
            this.httpConfiguration = configuration.HTTPClientConfig;

            basicBeaconData = CreateBasicBeaconData();
        }
示例#2
0
        protected OpenKit(ILogger logger,
                          OpenKitConfiguration configuration,
                          IHTTPClientProvider httpClientProvider,
                          ITimingProvider timingProvider,
                          IThreadIDProvider threadIDProvider)
        {
            if (logger.IsInfoEnabled)
            {
                //TODO: Use proper version information (incl. the build number)
                logger.Info(configuration.OpenKitType + " " + GetType().Name + " " + OpenKitConstants.DEFAULT_APPLICATION_VERSION + " instantiated");
            }
            if (logger.IsDebugEnabled)
            {
                logger.Debug(
                    "applicationName=" + configuration.ApplicationName + ", applicationID=" + configuration.ApplicationID
                    + ", deviceID=" + configuration.DeviceID + ", endpointURL=" + configuration.EndpointURL
                    );
            }
            this.configuration    = configuration;
            this.logger           = logger;
            this.timingProvider   = timingProvider;
            this.threadIDProvider = threadIDProvider;

            beaconCache        = new BeaconCache(logger);
            beaconSender       = new BeaconSender(logger, configuration, httpClientProvider, timingProvider);
            beaconCacheEvictor = new BeaconCacheEvictor(logger, beaconCache, configuration.BeaconCacheConfig, timingProvider);
        }
示例#3
0
        protected OpenKit(ILogger logger,
                          OpenKitConfiguration configuration,
                          IHTTPClientProvider httpClientProvider,
                          ITimingProvider timingProvider,
                          IThreadIDProvider threadIDProvider)
        {
            this.configuration    = configuration;
            this.logger           = logger;
            this.timingProvider   = timingProvider;
            this.threadIDProvider = threadIDProvider;

            beaconCache        = new BeaconCache();
            beaconSender       = new BeaconSender(configuration, httpClientProvider, timingProvider);
            beaconCacheEvictor = new BeaconCacheEvictor(logger, beaconCache, configuration.BeaconCacheConfig, timingProvider);
        }
示例#4
0
        /// <summary>
        /// Creates a new instance of type Beacon
        /// </summary>
        /// <param name="logger">Logger for logging messages</param>
        /// <param name="cache">Cache storing beacon related data</param>
        /// <param name="configuration">OpenKit related configuration</param>
        /// <param name="clientIPAddress">The client's IP address</param>
        /// <param name="threadIdProvider">Provider for retrieving thread id</param>
        /// <param name="timingProvider">Provider for time related methods</param>
        /// <param name="randomNumberGenerator">Random number generator</param>
        internal Beacon(ILogger logger, BeaconCache beaconCache, OpenKitConfiguration configuration, string clientIPAddress,
                        IThreadIDProvider threadIDProvider, ITimingProvider timingProvider, IPRNGenerator randomNumberGenerator)
        {
            this.logger         = logger;
            this.beaconCache    = beaconCache;
            BeaconConfiguration = configuration.BeaconConfig;

            if (beaconConfiguration.DataCollectionLevel == DataCollectionLevel.USER_BEHAVIOR)
            {
                SessionNumber = configuration.NextSessionNumber;
                DeviceID      = Truncate(configuration.DeviceID);
            }
            else
            {
                SessionNumber = 1;
                DeviceID      = randomNumberGenerator.NextLong(long.MaxValue)
                                .ToString(CultureInfo.InvariantCulture);
            }

            this.timingProvider = timingProvider;

            this.configuration         = configuration;
            this.threadIDProvider      = threadIDProvider;
            this.randomNumberGenerator = randomNumberGenerator;
            sessionStartTime           = timingProvider.ProvideTimestampInMilliseconds();

            if (InetAddressValidator.IsValidIP(clientIPAddress))
            {
                this.clientIPAddress = clientIPAddress;
            }
            else
            {
                this.clientIPAddress = string.Empty;
            }
            // store the current http configuration
            httpConfiguration = configuration.HTTPClientConfig;
            basicBeaconData   = CreateBasicBeaconData();
        }
示例#5
0
        // *** constructor ***

        /// <summary>
        /// Creates a new instance of type Beacon
        /// </summary>
        /// <param name="logger">Logger for logging messages</param>
        /// <param name="cache">Cache storing beacon related data</param>
        /// <param name="configuration">OpenKit related configuration</param>
        /// <param name="clientIPAddress">The client's IP address</param>
        /// <param name="threadIdProvider">Provider for retrieving thread id</param>
        /// <param name="timingProvider">Provider for time related methods</param>
        public Beacon(ILogger logger, BeaconCache beaconCache, OpenKitConfiguration configuration, string clientIPAddress,
                      IThreadIDProvider threadIDProvider, ITimingProvider timingProvider)
            : this(logger, beaconCache, configuration, clientIPAddress, threadIDProvider, timingProvider, new DefaultPRNGenerator())
        {
        }
示例#6
0
 public void Setup()
 {
     threadIdProvider = Substitute.For <IThreadIDProvider>();
     timingProvider   = Substitute.For <ITimingProvider>();
     logger           = Substitute.For <ILogger>();
 }