本文整理汇总了Java中io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING属性的典型用法代码示例。如果您正苦于以下问题:Java MethodType.SERVER_STREAMING属性的具体用法?Java MethodType.SERVER_STREAMING怎么用?Java MethodType.SERVER_STREAMING使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类io.grpc.MethodDescriptor.MethodType
的用法示例。
在下文中一共展示了MethodType.SERVER_STREAMING属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: startStream
@GuardedBy("lock")
private void startStream(OkHttpClientStream stream) {
Preconditions.checkState(
stream.id() == OkHttpClientStream.ABSENT_ID, "StreamId already assigned");
streams.put(nextStreamId, stream);
setInUse();
stream.transportState().start(nextStreamId);
// For unary and server streaming, there will be a data frame soon, no need to flush the header.
if ((stream.getType() != MethodType.UNARY && stream.getType() != MethodType.SERVER_STREAMING)
|| stream.useGet()) {
frameWriter.flush();
}
if (nextStreamId >= Integer.MAX_VALUE - 2) {
// Make sure nextStreamId greater than all used id, so that mayHaveCreatedStream() performs
// correctly.
nextStreamId = Integer.MAX_VALUE;
startGoAway(Integer.MAX_VALUE, ErrorCode.NO_ERROR,
Status.UNAVAILABLE.withDescription("Stream ids exhausted"));
} else {
nextStreamId += 2;
}
}
示例2: ClientCallImpl
ClientCallImpl(
MethodDescriptor<ReqT, RespT> method, Executor executor, CallOptions callOptions,
ClientTransportProvider clientTransportProvider,
ScheduledExecutorService deadlineCancellationExecutor,
CallTracer channelCallsTracer) {
this.method = method;
// If we know that the executor is a direct executor, we don't need to wrap it with a
// SerializingExecutor. This is purely for performance reasons.
// See https://github.com/grpc/grpc-java/issues/368
this.callExecutor = executor == directExecutor()
? new SerializeReentrantCallsDirectExecutor()
: new SerializingExecutor(executor);
this.channelCallsTracer = channelCallsTracer;
// Propagate the context from the thread which initiated the call to all callbacks.
this.context = Context.current();
this.unaryRequest = method.getType() == MethodType.UNARY
|| method.getType() == MethodType.SERVER_STREAMING;
this.callOptions = callOptions;
this.clientTransportProvider = clientTransportProvider;
this.deadlineCancellationExecutor = deadlineCancellationExecutor;
}
示例3: call
/**
* Makes an rpc to the remote endpoint and respects the supplied callback. Returns a future which
* terminates once the call has ended. For calls which are single-request, this throws
* {@link IllegalArgumentException} if the size of {@code requests} is not exactly 1.
*/
public ListenableFuture<Void> call(
ImmutableList<DynamicMessage> requests,
StreamObserver<DynamicMessage> responseObserver,
CallOptions callOptions) {
Preconditions.checkArgument(!requests.isEmpty(), "Can't make call without any requests");
MethodType methodType = getMethodType();
long numRequests = requests.size();
if (methodType == MethodType.UNARY) {
logger.info("Making unary call");
Preconditions.checkArgument(numRequests == 1,
"Need exactly 1 request for unary call, but got: " + numRequests);
return callUnary(requests.get(0), responseObserver, callOptions);
} else if (methodType == MethodType.SERVER_STREAMING) {
logger.info("Making server streaming call");
Preconditions.checkArgument(numRequests == 1,
"Need exactly 1 request for server streaming call, but got: " + numRequests);
return callServerStreaming(requests.get(0), responseObserver, callOptions);
} else if (methodType == MethodType.CLIENT_STREAMING) {
logger.info("Making client streaming call with " + requests.size() + " requests");
return callClientStreaming(requests, responseObserver, callOptions);
} else {
// Bidi streaming.
logger.info("Making bidi streaming call with " + requests.size() + " requests");
return callBidiStreaming(requests, responseObserver, callOptions);
}
}
示例4: getMethodType
/** Returns the appropriate method type based on whether the client or server expect streams. */
private MethodType getMethodType() {
boolean clientStreaming = protoMethodDescriptor.toProto().getClientStreaming();
boolean serverStreaming = protoMethodDescriptor.toProto().getServerStreaming();
if (!clientStreaming && !serverStreaming) {
return MethodType.UNARY;
} else if (!clientStreaming && serverStreaming) {
return MethodType.SERVER_STREAMING;
} else if (clientStreaming && !serverStreaming) {
return MethodType.CLIENT_STREAMING;
} else {
return MethodType.BIDI_STREAMING;
}
}
示例5: streamsResponses
boolean streamsResponses() {
return type == MethodType.SERVER_STREAMING || type == MethodType.BIDI_STREAMING;
}