diff options
Diffstat (limited to 'clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/ClusterStateBundleCodec.java')
-rw-r--r-- | clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/ClusterStateBundleCodec.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/ClusterStateBundleCodec.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/ClusterStateBundleCodec.java new file mode 100644 index 00000000000..250d7bbe46a --- /dev/null +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/ClusterStateBundleCodec.java @@ -0,0 +1,21 @@ +// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.core.rpc; + +import com.yahoo.vespa.clustercontroller.core.ClusterStateBundle; + +/** + * Provides opaque encoding and decoding of ClusterStateBundles for transmission over RPC. + * + * Implementations may choose to compress the encoded representation of the bundle. + * + * It is important that the input given to decode() is exactly equal to that given from + * encode() for the results to be correct. Implementations must ensure that this information + * is enough to losslessly reconstruct the full encoded ClusterStateBundle. + */ +public interface ClusterStateBundleCodec { + + EncodedClusterStateBundle encode(ClusterStateBundle stateBundle); + + ClusterStateBundle decode(EncodedClusterStateBundle encodedClusterStateBundle); + +} |