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