diff options
author | Jose <jose@zeroc.com> | 2014-11-11 22:33:50 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2014-11-11 22:33:50 +0100 |
commit | fefe5c503a8bec0882443e994db64f916f806b5e (patch) | |
tree | f1881528106f75b50ab0f72ea6b5da6f90dc5b2e /cs/demo/Manual/simple_filesystem/Client.cs | |
parent | ICE-5863 - merge Java RPMs (diff) | |
download | ice-fefe5c503a8bec0882443e994db64f916f806b5e.tar.bz2 ice-fefe5c503a8bec0882443e994db64f916f806b5e.tar.xz ice-fefe5c503a8bec0882443e994db64f916f806b5e.zip |
Fixed (ICE-5857) rename manual -> Manual
Diffstat (limited to 'cs/demo/Manual/simple_filesystem/Client.cs')
-rw-r--r-- | cs/demo/Manual/simple_filesystem/Client.cs | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/cs/demo/Manual/simple_filesystem/Client.cs b/cs/demo/Manual/simple_filesystem/Client.cs new file mode 100644 index 00000000000..44b6adbe654 --- /dev/null +++ b/cs/demo/Manual/simple_filesystem/Client.cs @@ -0,0 +1,112 @@ +// ********************************************************************** +// +// 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. +// +// ********************************************************************** + +using Filesystem; +using System; +using System.Reflection; + +[assembly: CLSCompliant(true)] + +[assembly: AssemblyTitle("IceSimpleLifecycleClient")] +[assembly: AssemblyDescription("Ice simple lifecycle demo client")] +[assembly: AssemblyCompany("ZeroC, Inc.")] + +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) + { + string indent = new string('\t', ++depth); + + NodePrx[] contents = dir.list(); + + foreach(NodePrx node in contents) + { + DirectoryPrx subdir = DirectoryPrxHelper.checkedCast(node); + FilePrx file = FilePrxHelper.uncheckedCast(node); + Console.WriteLine(indent + node.name() + (subdir != null ? " (directory):" : " (file):")); + if(subdir != null) + { + listRecursive(subdir, depth); + } + else + { + string[] text = file.read(); + for(int j = 0; j < text.Length; ++j) + { + Console.WriteLine(indent + "\t" + text[j]); + } + } + } + } + + public static int Main(string[] args) + { + int status = 0; + Ice.Communicator ic = null; + try + { + Ice.InitializationData data = new Ice.InitializationData(); +#if COMPACT + // + // When using Ice for .NET Compact Framework, we need to specify + // the assembly so that Ice can locate classes and exceptions. + // + data.properties = Ice.Util.createProperties(); + data.properties.setProperty("Ice.FactoryAssemblies", "client,version=1.0.0.0"); +#endif + + // + // Create a communicator + // + ic = Ice.Util.initialize(ref args, data); + + // + // Create a proxy for the root directory + // + Ice.ObjectPrx obj = ic.stringToProxy("RootDir:default -h localhost -p 10000"); + + // + // Down-cast the proxy to a Directory proxy + // + DirectoryPrx rootDir = DirectoryPrxHelper.checkedCast(obj); + if(rootDir == null) + { + throw new ApplicationException("Invalid proxy"); + } + + // + // Recursively list the contents of the root directory + // + Console.WriteLine("Contents of root directory:"); + listRecursive(rootDir, 0); + } + catch(Exception e) + { + Console.Error.WriteLine(e); + status = 1; + } + if(ic != null) + { + try + { + ic.destroy(); + } + catch(Exception e) + { + Console.Error.WriteLine(e); + status = 1; + } + } + return status; + } +} |