Example #1
0
        public static int GetHashCode(string name, Field.Index?index, Field.Store store, Field.TermVector termVector, List <int> multipleItemsSameField)
        {
            ulong tmpHash = Hashing.Marvin32.CalculateInline(name) << 32;
            int   field   = ((index != null ? (byte)index : 0xFF) << 16 | ((byte)store << 8) | (byte)termVector);

            tmpHash = tmpHash | (uint)field;

            uint hash = Hashing.Mix(tmpHash);

            if (multipleItemsSameField.Count == 0)
            {
                return((int)hash);
            }

            return((int)Hashing.Combine(hash, Hashing.Marvin32.CalculateInline(multipleItemsSameField)));
        }
Example #2
0
        public Task GetClientConfiguration()
        {
            var inherit = GetBoolValueQueryString("inherit", required: false) ?? true;

            var  configuration       = Database.ClientConfiguration;
            long etag                = configuration?.Etag ?? -1;
            var  serverConfiguration = GetServerClientConfiguration(out long serverIndex);

            etag = Hashing.Combine(etag, serverIndex);
            if (inherit && (configuration == null || configuration.Disabled) && serverConfiguration != null)
            {
                configuration = serverConfiguration;
            }

            using (ContextPool.AllocateOperationContext(out JsonOperationContext context))
            {
                BlittableJsonReaderObject clientConfigurationJson = null;
                if (configuration != null)
                {
                    var val = configuration.ToJson();
                    clientConfigurationJson = context.ReadObject(val, Constants.Configuration.ClientId);
                }

                using (var writer = new BlittableJsonTextWriter(context, ResponseBodyStream()))
                {
                    writer.WriteStartObject();

                    writer.WritePropertyName(nameof(GetClientConfigurationOperation.Result.Etag));
                    writer.WriteInteger(etag);
                    writer.WriteComma();

                    writer.WritePropertyName(nameof(GetClientConfigurationOperation.Result.Configuration));
                    if (clientConfigurationJson != null)
                    {
                        writer.WriteObject(clientConfigurationJson);
                    }
                    else
                    {
                        writer.WriteNull();
                    }

                    writer.WriteEndObject();
                }
            }

            return(Task.CompletedTask);
        }
Example #3
0
        private static long GetMatchHashKey(List <string> intersectedAliases, Match match)
        {
            long key = 0L;

            for (int i = 0; i < intersectedAliases.Count; i++)
            {
                var alias = intersectedAliases[i];

                if (match.TryGetAliasId(alias, out long aliasId) == false)
                {
                    aliasId = -i;
                }

                key = Hashing.Combine(key, aliasId);
            }

            return(key);
        }
Example #4
0
        public bool HasClientConfigurationChanged(long index)
        {
            var actual = Hashing.Combine(_lastClientConfigurationIndex, ServerStore.LastClientConfigurationIndex);

            return(index != actual);
        }