//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private void persistentCallToSecondary(org.neo4j.causalclustering.messaging.CatchUpRequest request, org.neo4j.causalclustering.catchup.CatchUpResponseAdaptor<StoreCopyFinishedResponse> copyHandler, org.neo4j.causalclustering.catchup.CatchupAddressProvider addressProvider, TerminationCondition terminationCondition) throws StoreCopyFailedException private void PersistentCallToSecondary(CatchUpRequest request, CatchUpResponseAdaptor <StoreCopyFinishedResponse> copyHandler, CatchupAddressProvider addressProvider, TerminationCondition terminationCondition) { Org.Neo4j.causalclustering.helper.TimeoutStrategy_Timeout timeout = _backOffStrategy.newTimeout(); while (true) { try { AdvertisedSocketAddress address = addressProvider.Secondary(); _log.info(format("Sending request '%s' to '%s'", request, address)); StoreCopyFinishedResponse response = _catchUpClient.makeBlockingRequest(address, request, copyHandler); if (SuccessfulRequest(response, request)) { break; } } catch (CatchUpClientException e) { Exception cause = e.InnerException; if (cause is ConnectException) { _log.warn(cause.Message); } else { _log.warn(format("Request failed exceptionally '%s'.", request), e); } } catch (CatchupAddressResolutionException e) { _log.warn("Unable to resolve address for '%s'. %s", request, e.Message); } terminationCondition(); AwaitAndIncrementTimeout(timeout); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: void send(org.neo4j.causalclustering.messaging.CatchUpRequest request) throws java.net.ConnectException internal virtual void Send(CatchUpRequest request) { if (!Active) { throw new ConnectException("Channel is not connected"); } NettyChannel.write(request.MessageType()); NettyChannel.writeAndFlush(request); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private boolean successfulRequest(StoreCopyFinishedResponse response, org.neo4j.causalclustering.messaging.CatchUpRequest request) throws StoreCopyFailedException private bool SuccessfulRequest(StoreCopyFinishedResponse response, CatchUpRequest request) { StoreCopyFinishedResponse.Status responseStatus = response.Status(); if (responseStatus == StoreCopyFinishedResponse.Status.Success) { _log.info(format("Request was successful '%s'", request)); return(true); } else if (StoreCopyFinishedResponse.Status.ETooFarBehind == responseStatus || StoreCopyFinishedResponse.Status.EUnknown == responseStatus || StoreCopyFinishedResponse.Status.EStoreIdMismatch == responseStatus) { _log.warn(format("Request failed '%s'. With response: %s", request, response.Status())); return(false); } else { throw new StoreCopyFailedException(format("Request responded with an unknown response type: %s. '%s'", responseStatus, request)); } }
public override async Task CatchUp(CatchUpRequest request, IServerStreamWriter <CatchUpData> responseStream, ServerCallContext context) { var latestOffset = _storage.LatestOffset; var offset = request.Offset; while (!context.CancellationToken.IsCancellationRequested && offset < latestOffset) { var data = new CatchUpData { Offset = offset, Message = Google.Protobuf.ByteString.CopyFrom(_storage.Get(offset)) }; await responseStream.WriteAsync(data); offset++; } }