summaryrefslogtreecommitdiff
path: root/cs/demo/Manual/simple_filesystem/Client.cs
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 /cs/demo/Manual/simple_filesystem/Client.cs
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 'cs/demo/Manual/simple_filesystem/Client.cs')
-rw-r--r--cs/demo/Manual/simple_filesystem/Client.cs112
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;
+ }
+}