Interface PartitionMap<T extends AsyncCloseable>
-
- Type Parameters:
T- The value object which represents the partition.
- All Superinterfaces:
AsyncCloseable,ListenableAsyncCloseable
- All Known Implementing Classes:
PowerSetPartitionMap
public interface PartitionMap<T extends AsyncCloseable> extends ListenableAsyncCloseable
A map like interface which managesPartitionAttributesthat are fully specified and returns the corresponding partitions thosePartitionAttributesbelong to.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.util.List<T>add(PartitionAttributes partition)Add a newPartitionAttributesthat is absolutely specified.Tget(PartitionAttributes wildCardAttributes)Get the partition value corresponding to thePartitionAttributesparameter.java.util.List<T>remove(PartitionAttributes partition)Remove aPartitionAttributesthat was previously added viaadd(PartitionAttributes).-
Methods inherited from interface io.servicetalk.concurrent.api.AsyncCloseable
closeAsync, closeAsyncGracefully
-
Methods inherited from interface io.servicetalk.concurrent.api.ListenableAsyncCloseable
onClose
-
-
-
-
Method Detail
-
add
java.util.List<T> add(PartitionAttributes partition)
Add a newPartitionAttributesthat is absolutely specified. This may create new partitions.The terminology "absolutely"/"fully" here is meant to clarify that
partitioncontains all the attributes to uniquely identify a single host. This is typically called when notification is received fromServiceDiscovererand that address is translated to the correspondingPartitionAttributes.This method is not guaranteed to provide any thread safety or visibility with respect to calls to this method or
remove(PartitionAttributes). If these methods are called from multiple threads you may need to provide external synchronization.- Parameters:
partition- A fully specifiedPartitionAttributes.- Returns:
- The partitions that
partitionbelongs to. These may (or may not) be new partitions.
-
remove
java.util.List<T> remove(PartitionAttributes partition)
Remove aPartitionAttributesthat was previously added viaadd(PartitionAttributes).New partitions typically are not created as a result of this method call.
This method is not guaranteed to provide any thread safety or visibility with respect to calls to this method or
add(PartitionAttributes). If these methods are called from multiple threads you may need to provide external synchronization.- Parameters:
partition- A fully specifiedPartitionAttributes.- Returns:
- The partitions that
partitionbelongs to.
-
get
@Nullable T get(@Nullable PartitionAttributes wildCardAttributes)
Get the partition value corresponding to thePartitionAttributesparameter.This may be called from any thread.
- Parameters:
wildCardAttributes- APartitionAttributeswhich identifies the partition. Note that this may not be fully specified, and this is where the "wild card" terminology comes from.- Returns:
- the partition value corresponding to the
PartitionAttributesparameter.
-
-