hash = (19 * hash) + getDescriptor().hashCode(); switch (raftNettyServerReplyCase_) { case 1: hash = (37 * hash) + REQUESTVOTEREPLY_FIELD_NUMBER; hash = (53 * hash) + getRequestVoteReply().hashCode(); break; case 2: hash = (37 * hash) + APPENDENTRIESREPLY_FIELD_NUMBER; hash = (53 * hash) + getAppendEntriesReply().hashCode(); break; case 3: hash = (37 * hash) + INSTALLSNAPSHOTREPLY_FIELD_NUMBER; hash = (53 * hash) + getInstallSnapshotReply().hashCode(); break; case 4: hash = (37 * hash) + RAFTCLIENTREPLY_FIELD_NUMBER; hash = (53 * hash) + getRaftClientReply().hashCode(); break; case 5: hash = (37 * hash) + GROUPLISTREPLY_FIELD_NUMBER; hash = (53 * hash) + getGroupListReply().hashCode(); break; case 6: hash = (37 * hash) + GROUPINFOREPLY_FIELD_NUMBER; hash = (53 * hash) + getGroupInfoReply().hashCode(); break; case 7: hash = (37 * hash) + EXCEPTIONREPLY_FIELD_NUMBER; hash = (53 * hash) + getExceptionReply().hashCode();
public static long getCallId(RaftNettyServerReplyProto proto) { switch (proto.getRaftNettyServerReplyCase()) { case REQUESTVOTEREPLY: return proto.getRequestVoteReply().getServerReply().getCallId(); case APPENDENTRIESREPLY: return proto.getAppendEntriesReply().getServerReply().getCallId(); case INSTALLSNAPSHOTREPLY: return proto.getInstallSnapshotReply().getServerReply().getCallId(); case RAFTCLIENTREPLY: return proto.getRaftClientReply().getRpcReply().getCallId(); case EXCEPTIONREPLY: return proto.getExceptionReply().getRpcReply().getCallId(); case RAFTNETTYSERVERREPLY_NOT_SET: throw new IllegalArgumentException("Reply case not set in proto: " + proto.getRaftNettyServerReplyCase()); default: throw new UnsupportedOperationException("Reply case not supported: " + proto.getRaftNettyServerReplyCase()); } }
rpcRequest = request.getServerRequest(); final RequestVoteReplyProto reply = server.requestVote(request); return RaftNettyServerReplyProto.newBuilder() .setRequestVoteReply(reply) .build(); rpcRequest = request.getServerRequest(); final AppendEntriesReplyProto reply = server.appendEntries(request); return RaftNettyServerReplyProto.newBuilder() .setAppendEntriesReply(reply) .build(); rpcRequest = request.getServerRequest(); final InstallSnapshotReplyProto reply = server.installSnapshot(request); return RaftNettyServerReplyProto.newBuilder() .setInstallSnapshotReply(reply) .build(); final RaftClientReply reply = server.submitClientRequest( ClientProtoUtils.toRaftClientRequest(request)); return RaftNettyServerReplyProto.newBuilder() .setRaftClientReply(ClientProtoUtils.toRaftClientReplyProto(reply)) .build(); final RaftClientReply reply = server.setConfiguration( ClientProtoUtils.toSetConfigurationRequest(request)); return RaftNettyServerReplyProto.newBuilder() .setRaftClientReply(ClientProtoUtils.toRaftClientReplyProto(reply)) .build();
proxy.send(rpcRequest, b.build()).getGroupListReply()); } else if (request instanceof GroupInfoRequest) { return ClientProtoUtils.toGroupInfoReply( proxy.send(rpcRequest, b.build()).getGroupInfoReply()); } else { return ClientProtoUtils.toRaftClientReply( proxy.send(rpcRequest, b.build()).getRaftClientReply());
result = result && getRaftNettyServerReplyCase().equals( other.getRaftNettyServerReplyCase()); if (!result) return false; switch (raftNettyServerReplyCase_) { case 1: result = result && getRequestVoteReply() .equals(other.getRequestVoteReply()); break; case 2: result = result && getAppendEntriesReply() .equals(other.getAppendEntriesReply()); break; case 3: result = result && getInstallSnapshotReply() .equals(other.getInstallSnapshotReply()); break; case 4: result = result && getRaftClientReply() .equals(other.getRaftClientReply()); break; case 5: result = result && getGroupListReply() .equals(other.getGroupListReply()); break; case 6: result = result && getGroupInfoReply() .equals(other.getGroupInfoReply()); break; case 7:
public Builder mergeFrom(org.apache.ratis.proto.netty.NettyProtos.RaftNettyServerReplyProto other) { if (other == org.apache.ratis.proto.netty.NettyProtos.RaftNettyServerReplyProto.getDefaultInstance()) return this; switch (other.getRaftNettyServerReplyCase()) { case REQUESTVOTEREPLY: { mergeRequestVoteReply(other.getRequestVoteReply()); break; mergeAppendEntriesReply(other.getAppendEntriesReply()); break; mergeInstallSnapshotReply(other.getInstallSnapshotReply()); break; mergeRaftClientReply(other.getRaftClientReply()); break; mergeGroupListReply(other.getGroupListReply()); break; mergeGroupInfoReply(other.getGroupInfoReply()); break; mergeExceptionReply(other.getExceptionReply()); break;
@Override protected void channelRead0(ChannelHandlerContext ctx, RaftNettyServerReplyProto proto) { final CompletableFuture<RaftNettyServerReplyProto> future = pollReply(); if (future == null) { throw new IllegalStateException("Request #" + getCallId(proto) + " not found"); } if (proto.getRaftNettyServerReplyCase() == EXCEPTIONREPLY) { final Object ioe = ProtoUtils.toObject(proto.getExceptionReply().getException()); future.completeExceptionally((IOException)ioe); } else { future.complete(proto); } } };
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {
public org.apache.ratis.proto.netty.NettyProtos.RaftNettyServerReplyProto getDefaultInstanceForType() { return org.apache.ratis.proto.netty.NettyProtos.RaftNettyServerReplyProto.getDefaultInstance(); }
@Override protected void initChannel(SocketChannel ch) throws Exception { final ChannelPipeline p = ch.pipeline(); p.addLast(new ProtobufVarint32FrameDecoder()); p.addLast(new ProtobufDecoder(RaftNettyServerReplyProto.getDefaultInstance())); p.addLast(new ProtobufVarint32LengthFieldPrepender()); p.addLast(new ProtobufEncoder()); p.addLast(inboundHandler); } };
@Override public InstallSnapshotReplyProto installSnapshot(InstallSnapshotRequestProto request) throws IOException { CodeInjectionForTesting.execute(SEND_SERVER_REQUEST, getId(), null, request); final RaftNettyServerRequestProto proto = RaftNettyServerRequestProto.newBuilder() .setInstallSnapshotRequest(request) .build(); final RaftRpcRequestProto serverRequest = request.getServerRequest(); return sendRaftNettyServerRequestProto(serverRequest, proto).getInstallSnapshotReply(); }
private static RaftNettyServerReplyProto toRaftNettyServerReplyProto( RaftRpcRequestProto request, IOException e) { final RaftRpcReplyProto.Builder rpcReply = RaftRpcReplyProto.newBuilder() .setRequestorId(request.getRequestorId()) .setReplyId(request.getReplyId()) .setCallId(request.getCallId()) .setSuccess(false); final RaftNettyExceptionReplyProto.Builder ioe = RaftNettyExceptionReplyProto.newBuilder() .setRpcReply(rpcReply) .setException(ProtoUtils.writeObject2ByteString(e)); return RaftNettyServerReplyProto.newBuilder().setExceptionReply(ioe).build(); }
@Override public AppendEntriesReplyProto appendEntries(AppendEntriesRequestProto request) throws IOException { CodeInjectionForTesting.execute(SEND_SERVER_REQUEST, getId(), null, request); final RaftNettyServerRequestProto proto = RaftNettyServerRequestProto.newBuilder() .setAppendEntriesRequest(request) .build(); final RaftRpcRequestProto serverRequest = request.getServerRequest(); return sendRaftNettyServerRequestProto(serverRequest, proto).getAppendEntriesReply(); }
@Override public RequestVoteReplyProto requestVote(RequestVoteRequestProto request) throws IOException { CodeInjectionForTesting.execute(SEND_SERVER_REQUEST, getId(), null, request); final RaftNettyServerRequestProto proto = RaftNettyServerRequestProto.newBuilder() .setRequestVoteRequest(request) .build(); final RaftRpcRequestProto serverRequest = request.getServerRequest(); return sendRaftNettyServerRequestProto(serverRequest, proto).getRequestVoteReply(); }