diff options
author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-03-28 19:34:00 +0200 |
---|---|---|
committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-03-28 19:34:00 +0200 |
commit | 3cb067ee44060d5fa2cb6814df7d074ddb68ba45 (patch) | |
tree | c90a541203a1e13ee1e80894363941fa572caa70 /src/main/java/com/orbekk/example/ExampleClient.java | |
parent | 46bf03f6f38284a85dc96a2e72688f1749750a6c (diff) |
Add usage example.
Diffstat (limited to 'src/main/java/com/orbekk/example/ExampleClient.java')
-rw-r--r-- | src/main/java/com/orbekk/example/ExampleClient.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/main/java/com/orbekk/example/ExampleClient.java b/src/main/java/com/orbekk/example/ExampleClient.java new file mode 100644 index 0000000..63d8b17 --- /dev/null +++ b/src/main/java/com/orbekk/example/ExampleClient.java @@ -0,0 +1,53 @@ +package com.orbekk.example; + +import java.util.concurrent.CountDownLatch; + +import com.google.protobuf.RpcCallback; +import com.orbekk.example.Example.FortuneReply; +import com.orbekk.protobuf.Rpc; +import com.orbekk.protobuf.RpcChannel; + +public class ExampleClient { + public void runClient(int port) { + RpcChannel channel = null; + try { + channel = RpcChannel.create("localhost", port); + Example.FortuneService service = + Example.FortuneService.newStub(channel); + printFortune(service); + } finally { + if (channel != null) { + channel.close(); + } + } + + } + + public void printFortune(Example.FortuneService service) { + Rpc rpc = new Rpc(); // Represents a single rpc call. + Example.Empty request = Example.Empty.newBuilder().build(); + + // An RPC call is asynchronous. A CountDownLatch is a nice way to wait + // for the callback to finish. + final CountDownLatch doneSignal = new CountDownLatch(1); + service.getFortune(rpc, request, new RpcCallback<Example.FortuneReply>() { + @Override public void run(FortuneReply reply) { + System.out.println(reply.getFortune()); + doneSignal.countDown(); + } + }); + + try { + doneSignal.await(); + } catch (InterruptedException e) { + System.out.println("Interrupted while waiting for fortune. :("); + } + } + public static void main(String[] args) { + if (args.length == 0) { + System.err.println("Usage: ExampleClient <port>"); + System.exit(1); + } + new ExampleClient().runClient(Integer.valueOf(args[0])); + } +} |