summaryrefslogtreecommitdiff
path: root/py/demo/Manual/simple_filesystem/Client.py
diff options
context:
space:
mode:
Diffstat (limited to 'py/demo/Manual/simple_filesystem/Client.py')
-rwxr-xr-xpy/demo/Manual/simple_filesystem/Client.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/py/demo/Manual/simple_filesystem/Client.py b/py/demo/Manual/simple_filesystem/Client.py
new file mode 100755
index 00000000000..75bf17aefc6
--- /dev/null
+++ b/py/demo/Manual/simple_filesystem/Client.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# **********************************************************************
+#
+# 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 sys, traceback, Ice
+
+Ice.loadSlice('Filesystem.ice')
+import Filesystem
+
+# Recursively display 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 range(depth):
+ indent = indent + '\t'
+
+ contents = dir.list()
+
+ for node in contents:
+ subdir = Filesystem.DirectoryPrx.checkedCast(node)
+ file = Filesystem.FilePrx.uncheckedCast(node)
+ sys.stdout.write(indent + node.name() + " ")
+ if subdir:
+ print("(directory):")
+ listRecursive(subdir, depth)
+ else:
+ print("(file):")
+ text = file.read()
+ for line in text:
+ print(indent + "\t" + line)
+
+status = 0
+ic = None
+try:
+ # Create a communicator
+ #
+ ice = Ice.initialize(sys.argv)
+
+ # Create a proxy to the root directory
+ #
+ obj = ice.stringToProxy("RootDir:default -h localhost -p 10000")
+
+ # Downcast the proxy to a Directory proxy
+ #
+ rootDir = Filesystem.DirectoryPrx.checkedCast(obj)
+
+ # Recursively list the contents of the root directory
+ #
+ print("Contents of root directory:")
+ listRecursive(rootDir, 0)
+except:
+ traceback.print_exc()
+ status = 1
+
+if ic:
+ # Clean up
+ #
+ try:
+ ic.destroy()
+ except:
+ traceback.print_exc()
+ status = 1
+
+sys.exit(status)