CSharpAnalytics.Protocols.Urchin.UrchinConfiguration.GetHostNameHash C# (CSharp) Метод

GetHostNameHash() приватный Метод

Calculate the hash of the hostName to checksum referrer requests.
private GetHostNameHash ( ) : long
Результат long
        internal long GetHostNameHash()
        {
            if (!CalculateHostNameHash || String.IsNullOrEmpty(hostName)) return 1;

            long hash = 0;
            for (var i = hostName.Length-1; i >= 0; i--)
            {
                var current = (byte)hostName[i];
                hash = ((hash << 6) & 0xfffffff) + current + (current << 14);
                var leftMost7 = hash & 0xfe00000;

                if (leftMost7 != 0)
                    hash ^= leftMost7 >> 21;
            }
            return hash;
        }

Usage Example

        public void UrchinConfiguration_GetHostNameHash_Returns_Correct_Hash_When_CalculateHostNameHash_Is_True()
        {
            var attackPatternConfiguration = new UrchinConfiguration("UA-1234-5", "attackpattern.com") { CalculateHostNameHash = true };
            var stickerTalesConfiguration = new UrchinConfiguration("UA-1234-6", "stickertales.com") { CalculateHostNameHash = true };
            var damiengConfiguration = new UrchinConfiguration("UA-2345-6", "damieng.com") { CalculateHostNameHash = true };

            Assert.AreEqual(162214764, attackPatternConfiguration.GetHostNameHash());
            Assert.AreEqual(59641711, stickerTalesConfiguration.GetHostNameHash());
            Assert.AreEqual(247163921, damiengConfiguration.GetHostNameHash());
        }
All Usage Examples Of CSharpAnalytics.Protocols.Urchin.UrchinConfiguration::GetHostNameHash