grpc-dart
grpc-dart copied to clipboard
Is there an equivalent of Java's BlockingStub?
When compiling to Java, the following service definition, TypeDBBlockingStub extends AbstractStubis generated:
//
// Decompiled by Procyon v0.5.36
//
package com.vaticle.typedb.protocol;
import io.grpc.stub.ClientCalls;
import io.grpc.CallOptions;
import io.grpc.Channel;
import io.grpc.stub.AbstractStub;
public static final class TypeDBBlockingStub extends AbstractStub<TypeDBBlockingStub>
{
private TypeDBBlockingStub(final Channel channel) {
super(channel);
}
private TypeDBBlockingStub(final Channel channel, final CallOptions callOptions) {
super(channel, callOptions);
}
protected TypeDBBlockingStub build(final Channel channel, final CallOptions callOptions) {
return new TypeDBBlockingStub(channel, callOptions);
}
public CoreDatabaseProto.CoreDatabaseManager.Contains.Res databasesContains(final CoreDatabaseProto.CoreDatabaseManager.Contains.Req request) {
return (CoreDatabaseProto.CoreDatabaseManager.Contains.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getDatabasesContainsMethod(), this.getCallOptions(), (Object)request);
}
public CoreDatabaseProto.CoreDatabaseManager.Create.Res databasesCreate(final CoreDatabaseProto.CoreDatabaseManager.Create.Req request) {
return (CoreDatabaseProto.CoreDatabaseManager.Create.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getDatabasesCreateMethod(), this.getCallOptions(), (Object)request);
}
public CoreDatabaseProto.CoreDatabaseManager.All.Res databasesAll(final CoreDatabaseProto.CoreDatabaseManager.All.Req request) {
return (CoreDatabaseProto.CoreDatabaseManager.All.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getDatabasesAllMethod(), this.getCallOptions(), (Object)request);
}
public CoreDatabaseProto.CoreDatabase.Schema.Res databaseSchema(final CoreDatabaseProto.CoreDatabase.Schema.Req request) {
return (CoreDatabaseProto.CoreDatabase.Schema.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getDatabaseSchemaMethod(), this.getCallOptions(), (Object)request);
}
public CoreDatabaseProto.CoreDatabase.TypeSchema.Res databaseTypeSchema(final CoreDatabaseProto.CoreDatabase.TypeSchema.Req request) {
return (CoreDatabaseProto.CoreDatabase.TypeSchema.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getDatabaseTypeSchemaMethod(), this.getCallOptions(), (Object)request);
}
public CoreDatabaseProto.CoreDatabase.RuleSchema.Res databaseRuleSchema(final CoreDatabaseProto.CoreDatabase.RuleSchema.Req request) {
return (CoreDatabaseProto.CoreDatabase.RuleSchema.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getDatabaseRuleSchemaMethod(), this.getCallOptions(), (Object)request);
}
public CoreDatabaseProto.CoreDatabase.Delete.Res databaseDelete(final CoreDatabaseProto.CoreDatabase.Delete.Req request) {
return (CoreDatabaseProto.CoreDatabase.Delete.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getDatabaseDeleteMethod(), this.getCallOptions(), (Object)request);
}
public SessionProto.Session.Open.Res sessionOpen(final SessionProto.Session.Open.Req request) {
return (SessionProto.Session.Open.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getSessionOpenMethod(), this.getCallOptions(), (Object)request);
}
public SessionProto.Session.Close.Res sessionClose(final SessionProto.Session.Close.Req request) {
return (SessionProto.Session.Close.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getSessionCloseMethod(), this.getCallOptions(), (Object)request);
}
public SessionProto.Session.Pulse.Res sessionPulse(final SessionProto.Session.Pulse.Req request) {
return (SessionProto.Session.Pulse.Res)ClientCalls.blockingUnaryCall(this.getChannel(), TypeDBGrpc.getSessionPulseMethod(), this.getCallOptions(), (Object)request);
}
}
However, when compiling to Dart using protoc --dart_out=grpc:<path to dir for generated dart files> <path to proto files>, TypeDBBlockingStub extends AbstractStub is not generated.
I can see that grpc-dart does not have AbstractStub unlike in grpc-java. Is there an equivalent class I can use to implement TypeDBBlockingStub manually?
Repro steps
- Clone typedb-protocol repo for with proto definition files
git clone https://github.com/vaticle/typedb-protocol - Ensure dart protobuf compiler is installed :
dart pub global activate protoc_plugin. - Cd into the typedb-protocol repo
- Compile proto definition files into dart files in desired project directory:
protoc --dart_out=grpc:<PATH-TO-PROJECT>/lib/generated **/*.proto
Expected result: Find TypeDBBlockingStub class definition
Actual result:TypeDBBlockingStub class definition does not exist