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))); }
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); }
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); }
public bool HasClientConfigurationChanged(long index) { var actual = Hashing.Combine(_lastClientConfigurationIndex, ServerStore.LastClientConfigurationIndex); return(index != actual); }