diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-03-15 18:14:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-15 18:14:17 +0100 |
commit | 7f56c30703f5319f5368653f6313a8f12f07b3cb (patch) | |
tree | 394c9717eee127c407e3d3222169bab4a420228e /container-search/src/main/java/com/yahoo/search/dispatch/Client.java | |
parent | 156743b84071f04114bc4479a3bcc3ca10b2f7e5 (diff) |
Revert "Protobuf over jrt support in search"
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/Client.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/Client.java | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/Client.java b/container-search/src/main/java/com/yahoo/search/dispatch/Client.java new file mode 100644 index 00000000000..431b36c2623 --- /dev/null +++ b/container-search/src/main/java/com/yahoo/search/dispatch/Client.java @@ -0,0 +1,90 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.search.dispatch; + +import com.yahoo.compress.CompressionType; +import com.yahoo.prelude.fastsearch.FastHit; + +import java.util.List; +import java.util.Optional; + +/** + * A dispatch client. + * + * @author bratseth + */ +interface Client { + + void getDocsums(List<FastHit> hits, NodeConnection node, CompressionType compression, + int uncompressedLength, byte[] compressedSlime, RpcFillInvoker.GetDocsumsResponseReceiver responseReceiver, + double timeoutSeconds); + + /** Creates a connection to a particular node in this */ + NodeConnection createConnection(String hostname, int port); + + class GetDocsumsResponseOrError { + + // One of these will be non empty and the other not + private Optional<GetDocsumsResponse> response; + private Optional<String> error; + + public static GetDocsumsResponseOrError fromResponse(GetDocsumsResponse response) { + return new GetDocsumsResponseOrError(Optional.of(response), Optional.empty()); + } + + public static GetDocsumsResponseOrError fromError(String error) { + return new GetDocsumsResponseOrError(Optional.empty(), Optional.of(error)); + } + + private GetDocsumsResponseOrError(Optional<GetDocsumsResponse> response, Optional<String> error) { + this.response = response; + this.error = error; + } + + /** Returns the response, or empty if there is an error */ + public Optional<GetDocsumsResponse> response() { return response; } + + /** Returns the error or empty if there is a response */ + public Optional<String> error() { return error; } + + } + + class GetDocsumsResponse { + + private final byte compression; + private final int uncompressedSize; + private final byte[] compressedSlimeBytes; + private final List<FastHit> hitsContext; + + public GetDocsumsResponse(byte compression, int uncompressedSize, byte[] compressedSlimeBytes, List<FastHit> hitsContext) { + this.compression = compression; + this.uncompressedSize = uncompressedSize; + this.compressedSlimeBytes = compressedSlimeBytes; + this.hitsContext = hitsContext; + } + + public byte compression() { + return compression; + } + + public int uncompressedSize() { + return uncompressedSize; + } + + public byte[] compressedSlimeBytes() { + return compressedSlimeBytes; + } + + public List<FastHit> hitsContext() { + return hitsContext; + } + + } + + interface NodeConnection { + + /** Closes this connection */ + void close(); + + } + +} |