runzhiwang commented on a change in pull request #364:
URL: https://github.com/apache/incubator-ratis/pull/364#discussion_r546467443



##########
File path: 
ratis-client/src/main/java/org/apache/ratis/client/api/DataStreamApi.java
##########
@@ -44,4 +48,7 @@ default DataStreamOutput stream() {
 
   /** Create a stream by providing a customized header message. */
   DataStreamOutput stream(ByteBuffer headerMessage);
+
+  /** Create a stream by providing a customized header message and route 
table. */
+  DataStreamOutput stream(ByteBuffer headerMessage, Map<RaftPeerId, 
List<RaftPeerId>> routingTable);

Review comment:
       @szetszwo Sorry, not familar with Java, but the following code compiled 
error.
   ```
   public interface RoutingTable {
     Set<RaftPeerId> getSuccessors(RaftPeerId peerId);
   
     RoutingTableProto toProto();
   
     class Builder {
       private final Map<RaftPeerId, Set<RaftPeerId>> map = new HashMap<>();
   
       private Set<RaftPeerId> computeIfAbsent(RaftPeerId peerId) {
         return map.computeIfAbsent(peerId, key -> new HashSet<>());
       }
   
       public Builder addSuccessor(RaftPeerId peerId, RaftPeerId successor) {
         computeIfAbsent(peerId).add(successor);
         return this;
       }
   
       public Builder addSuccessors(RaftPeerId peerId, List<RaftPeerId> 
successors) {
         computeIfAbsent(peerId).addAll(successors);
         return this;
       }
   
       public Builder addSuccessors(RaftPeerId peerId, RaftPeerId... 
successors) {
         return addSuccessors(peerId, Arrays.asList(successors));
       }
   
       public RoutingTable build() {
         return peerId -> 
Optional.ofNullable(map.get(peerId)).orElseGet(Collections::emptySet);
       }
     }
   }
   ```




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to