summaryrefslogtreecommitdiff
path: root/rb/demo/Manual/simple_filesystem/Client.rb
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2014-11-11 22:33:50 +0100
committerJose <jose@zeroc.com>2014-11-11 22:33:50 +0100
commitfefe5c503a8bec0882443e994db64f916f806b5e (patch)
treef1881528106f75b50ab0f72ea6b5da6f90dc5b2e /rb/demo/Manual/simple_filesystem/Client.rb
parentICE-5863 - merge Java RPMs (diff)
downloadice-fefe5c503a8bec0882443e994db64f916f806b5e.tar.bz2
ice-fefe5c503a8bec0882443e994db64f916f806b5e.tar.xz
ice-fefe5c503a8bec0882443e994db64f916f806b5e.zip
Fixed (ICE-5857) rename manual -> Manual
Diffstat (limited to 'rb/demo/Manual/simple_filesystem/Client.rb')
-rwxr-xr-xrb/demo/Manual/simple_filesystem/Client.rb82
1 files changed, 82 insertions, 0 deletions
diff --git a/rb/demo/Manual/simple_filesystem/Client.rb b/rb/demo/Manual/simple_filesystem/Client.rb
new file mode 100755
index 00000000000..333406fcd09
--- /dev/null
+++ b/rb/demo/Manual/simple_filesystem/Client.rb
@@ -0,0 +1,82 @@
+#!/usr/bin/env ruby
+# **********************************************************************
+#
+# 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.
+#
+# **********************************************************************
+
+require 'Ice'
+Ice::loadSlice('Filesystem.ice')
+
+# 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).
+
+def listRecursive(dir, depth)
+ indent = ''
+ depth = depth + 1
+ for i in (0...depth)
+ indent += "\t"
+ end
+
+ contents = dir.list()
+
+ for node in contents
+ subdir = Filesystem::DirectoryPrx::checkedCast(node)
+ file = Filesystem::FilePrx::uncheckedCast(node)
+ print indent + node.name()
+ if subdir
+ puts "(directory):"
+ listRecursive(subdir, depth)
+ else
+ puts "(file):"
+ text = file.read()
+ for line in text
+ puts indent + "\t" + line
+ end
+ end
+ end
+end
+
+status = 0
+ic = nil
+begin
+ # Create a communicator
+ #
+ ic = Ice::initialize(ARGV)
+
+ # Create a proxy for the root directory
+ #
+ obj = ic.stringToProxy("RootDir:default -h localhost -p 10000")
+
+ # Down-cast the proxy to a Directory proxy
+ #
+ rootDir = Filesystem::DirectoryPrx::checkedCast(obj)
+
+ # Recursively list the contents of the root directory
+ #
+ puts "Contents of root directory:"
+ listRecursive(rootDir, 0)
+rescue => ex
+ puts ex
+ print ex.backtrace.join("\n")
+ status = 1
+end
+
+if ic
+ # Clean up
+ #
+ begin
+ ic.destroy()
+ rescue => ex
+ puts ex
+ print ex.backtrace.join("\n")
+ status = 1
+ end
+end
+
+exit(status)