diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-11-03 15:58:54 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-11-03 15:58:54 +0100 |
commit | 581d0449b2c5f1bbfd5bb3d6d1216040b832b273 (patch) | |
tree | c3ebc0b05f1ad8d5dc2156e471c799b30be8ecde /java/demo/manual/simple_filesystem/Client.java | |
parent | Fixed ICE-5816: Silverlight build failure (diff) | |
download | ice-581d0449b2c5f1bbfd5bb3d6d1216040b832b273.tar.bz2 ice-581d0449b2c5f1bbfd5bb3d6d1216040b832b273.tar.xz ice-581d0449b2c5f1bbfd5bb3d6d1216040b832b273.zip |
Fixed ICE-5811: renamed book demos to manual demos
Diffstat (limited to 'java/demo/manual/simple_filesystem/Client.java')
-rw-r--r-- | java/demo/manual/simple_filesystem/Client.java | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/java/demo/manual/simple_filesystem/Client.java b/java/demo/manual/simple_filesystem/Client.java new file mode 100644 index 00000000000..de1516eb010 --- /dev/null +++ b/java/demo/manual/simple_filesystem/Client.java @@ -0,0 +1,103 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +import Filesystem.*; + +public class Client +{ + // Recursively print the contents of directory "dir" in tree fashion. + // For files, show the contents of each file. The "depth" + // parameter is the current nesting level (for indentation). + + static void + listRecursive(DirectoryPrx dir, int depth) + { + char[] indentCh = new char[++depth]; + java.util.Arrays.fill(indentCh, '\t'); + String indent = new String(indentCh); + + NodePrx[] contents = dir.list(); + + for(int i = 0; i < contents.length; ++i) + { + DirectoryPrx subdir = DirectoryPrxHelper.checkedCast(contents[i]); + FilePrx file = FilePrxHelper.uncheckedCast(contents[i]); + System.out.println(indent + contents[i].name() + (subdir != null ? " (directory):" : " (file):")); + if(subdir != null) + { + listRecursive(subdir, depth); + } + else + { + String[] text = file.read(); + for(int j = 0; j < text.length; ++j) + { + System.out.println(indent + "\t" + text[j]); + } + } + } + } + + public static void + main(String[] args) + { + int status = 0; + Ice.Communicator ic = null; + try + { + // + // Create a communicator + // + ic = Ice.Util.initialize(args); + + // + // Create a proxy for the root directory + // + Ice.ObjectPrx base = ic.stringToProxy("RootDir:default -h localhost -p 10000"); + + // + // Down-cast the proxy to a Directory proxy + // + DirectoryPrx rootDir = DirectoryPrxHelper.checkedCast(base); + if(rootDir == null) + { + throw new RuntimeException("Invalid proxy"); + } + + // + // Recursively list the contents of the root directory + // + System.out.println("Contents of root directory:"); + listRecursive(rootDir, 0); + } + catch(Ice.LocalException e) + { + e.printStackTrace(); + status = 1; + } + catch(Exception e) + { + System.err.println(e.getMessage()); + status = 1; + } + if(ic != null) + { + try + { + ic.destroy(); + } + catch(Exception e) + { + System.err.println(e.getMessage()); + status = 1; + } + } + System.exit(status); + } +} |