diff options
Diffstat (limited to 'same/src/main/java/com/orbekk/same/DirectoryApp.java')
-rw-r--r-- | same/src/main/java/com/orbekk/same/DirectoryApp.java | 62 |
1 files changed, 48 insertions, 14 deletions
diff --git a/same/src/main/java/com/orbekk/same/DirectoryApp.java b/same/src/main/java/com/orbekk/same/DirectoryApp.java index c484d0f..e75b10f 100644 --- a/same/src/main/java/com/orbekk/same/DirectoryApp.java +++ b/same/src/main/java/com/orbekk/same/DirectoryApp.java @@ -1,11 +1,17 @@ package com.orbekk.same; -import java.util.List; +import java.io.IOException; +import java.net.UnknownHostException; +import java.util.concurrent.CountDownLatch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.orbekk.same.discovery.DirectoryService; +import com.google.protobuf.RpcCallback; +import com.orbekk.protobuf.NewRpcChannel; +import com.orbekk.protobuf.Rpc; +import com.orbekk.protobuf.RpcChannel; +import com.orbekk.same.Services.NetworkDirectory; public class DirectoryApp { private static final Logger logger = @@ -19,20 +25,48 @@ public class DirectoryApp { } public void run() { - ConnectionManager connections = new ConnectionManagerImpl( - CONNECTION_TIMEOUT, READ_TIMEOUT); - DirectoryService directory = connections.getDirectory(args[0]); + String host = args[0]; + int port = Integer.valueOf(args[1]); + NewRpcChannel channel = null; try { - List<String> networks = directory.getNetworks(); - System.out.println("Available networks:"); - System.out.println(networks); - System.out.println("Registering network."); - directory.registerNetwork("InvalidNetwork", "InvalidUrl"); - System.out.println("Available networks:"); - System.out.println(directory.getNetworks()); - } catch (Exception e) { - logger.error("Unable to contact directory service.", e); + channel = NewRpcChannel.create(host, port); + } catch (UnknownHostException e1) { + e1.printStackTrace(); + System.exit(1); + } catch (IOException e1) { + e1.printStackTrace(); + System.exit(1); } + Services.Directory directory = Services.Directory.newStub(channel); + + final CountDownLatch finished = new CountDownLatch(1); + final Rpc rpc = new Rpc(); + RpcCallback<NetworkDirectory> callback = + new RpcCallback<NetworkDirectory>() { + @Override public void run(NetworkDirectory directory) { + if (rpc.failed()) { + System.err.println("Failed to get network list."); + } else { + System.out.println("Networks:"); + for (Services.MasterState network : + directory.getNetworkList()) { + System.out.println(network.getNetworkName() + "\t" + + network.getMasterUrl()); + } + } + finished.countDown(); + } + }; + directory.getNetworks(rpc, Services.Empty.getDefaultInstance(), + callback); + try { + finished.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + System.out.println("Closing channel."); + channel.close(); } public static void main(String[] args) { |