Update TransactionLedgerClient
This commit is contained in:
parent
81bb3b2618
commit
86bf122733
89
src/main/java/bdchain/api/TransactionLedgerClient.java
Normal file
89
src/main/java/bdchain/api/TransactionLedgerClient.java
Normal file
@ -0,0 +1,89 @@
|
||||
package bdchain.api;
|
||||
|
||||
import bdchain.api.grpc.*;
|
||||
import bdchain.api.grpc.TransactionLedgerGrpc.TransactionLedgerBlockingStub;
|
||||
import com.google.protobuf.Empty;
|
||||
import io.grpc.ManagedChannel;
|
||||
import io.grpc.ManagedChannelBuilder;
|
||||
import io.grpc.StatusRuntimeException;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
// import bdchain.api.grpc.TransactionLedgerGrpc.TransactionLedgerStub;
|
||||
|
||||
public class TransactionLedgerClient {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(TransactionLedgerClient.class.getName());
|
||||
|
||||
private final ManagedChannel channel;
|
||||
private final TransactionLedgerBlockingStub blockingStub;
|
||||
// private final TransactionLedgerStub asyncStub;
|
||||
|
||||
/** Construct client for accessing TransactionLedger server at {@code host:port}. */
|
||||
public TransactionLedgerClient(String host, int port) {
|
||||
this(ManagedChannelBuilder.forAddress(host, port).usePlaintext());
|
||||
}
|
||||
|
||||
/** Construct client for accessing TransactionLedger server using the existing channel. */
|
||||
public TransactionLedgerClient(ManagedChannelBuilder<?> channelBuilder) {
|
||||
channel = channelBuilder.build();
|
||||
blockingStub = TransactionLedgerGrpc.newBlockingStub(channel);
|
||||
// asyncStub = TransactionLedgerGrpc.newStub(channel);
|
||||
}
|
||||
|
||||
public void shutdown() throws InterruptedException {
|
||||
channel.shutdown().awaitTermination(5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
public CreateLedgerResponse createLedger(String name) {
|
||||
|
||||
info("*** createLedger: name={0}", name);
|
||||
|
||||
CreateLedgerRequest request = CreateLedgerRequest.newBuilder().setName(name).build();
|
||||
|
||||
try {
|
||||
return blockingStub.createLedger(request);
|
||||
} catch (StatusRuntimeException e) {
|
||||
warning("RPC failed: {0}", e.getStatus());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public GetLedgersResponse getLedgers() {
|
||||
|
||||
info("*** getLedgers");
|
||||
|
||||
try {
|
||||
return blockingStub.getLedgers(Empty.getDefaultInstance());
|
||||
} catch (StatusRuntimeException e) {
|
||||
warning("RPC failed: {0}", e.getStatus());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public SendTransactionResponse sendTransaction(
|
||||
String ledger, SendTransactionRequest.Transaction transaction) {
|
||||
|
||||
info("*** sendTransaction: ledger={0} transaction={1}", ledger, transaction);
|
||||
|
||||
SendTransactionRequest request =
|
||||
SendTransactionRequest.newBuilder().setLedger(ledger).setTransaction(transaction).build();
|
||||
|
||||
try {
|
||||
return blockingStub.sendTransaction(request);
|
||||
} catch (StatusRuntimeException e) {
|
||||
warning("RPC failed: {0}", e.getStatus());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void info(String msg, Object... params) {
|
||||
logger.log(Level.INFO, msg, params);
|
||||
}
|
||||
|
||||
private void warning(String msg, Object... params) {
|
||||
logger.log(Level.WARNING, msg, params);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user