diff options
Diffstat (limited to 'py/demo/book/simple_filesystem/Client.py')
-rw-r--r-- | py/demo/book/simple_filesystem/Client.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/py/demo/book/simple_filesystem/Client.py b/py/demo/book/simple_filesystem/Client.py new file mode 100644 index 00000000000..16522d80c9e --- /dev/null +++ b/py/demo/book/simple_filesystem/Client.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2007 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 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 range(depth): + indent = indent + '\t' + + contents = dir.list() + + for node in contents: + subdir = Filesystem.DirectoryPrx.checkedCast(node) + file = Filesystem.FilePrx.uncheckedCast(node) + print 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 -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) |