summaryrefslogtreecommitdiff
path: root/ACE/TAO/examples/Simple/time/Time_Client.java
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/examples/Simple/time/Time_Client.java')
-rw-r--r--ACE/TAO/examples/Simple/time/Time_Client.java154
1 files changed, 154 insertions, 0 deletions
diff --git a/ACE/TAO/examples/Simple/time/Time_Client.java b/ACE/TAO/examples/Simple/time/Time_Client.java
new file mode 100644
index 00000000000..6f430ec48ad
--- /dev/null
+++ b/ACE/TAO/examples/Simple/time/Time_Client.java
@@ -0,0 +1,154 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/examples/Simple/time
+//
+// = FILENAME
+// Time_Client.java
+//
+// = DESCRIPTION
+// This class implements a Java client interface to the Time example.
+//
+// = AUTHOR
+// Martin Krumpolec <krumpo@pobox.sk>
+//
+// ============================================================================
+
+import JACE.Misc.GetOpt;
+import org.omg.CosNaming.*;
+import org.omg.CORBA.*;
+import java.io.*;
+
+public class Time_Client
+{
+ private ORB orb = null;
+ private org.omg.CORBA.Object timeRef = null;
+ private boolean shutdown = false;
+ private boolean use_naming_service = false;
+ private String ior_file = null;
+ private String ior = null;
+
+ Time_Client (String args [])
+ {
+ orb = ORB.init (args, null);
+ parse_args (args);
+ }
+
+ private void parse_args (String args[])
+ {
+ GetOpt getopt = new GetOpt (args, "k:f:xn");
+
+ int ch = -1;
+
+ while ((ch = getopt.next ()) != -1)
+ {
+ switch (ch)
+ {
+ case 'k':
+ ior = getopt.opt_arg () ();
+ break;
+ case 'f':
+ ior_file = getopt.opt_arg () ();
+ try
+ {
+ java.io.FileInputStream file =
+ new FileInputStream(ior_file);
+ java.io.BufferedReader myInput =
+ new BufferedReader
+ (new InputStreamReader (file));
+ ior = myInput.readLine();
+ }
+ catch (Exception e)
+ {
+ System.out.println ("Error: " + e);
+ }
+ break;
+ case 'x':
+ shutdown = true;
+ break;
+ case 'n':
+ use_naming_service = true;
+ break;
+ default:
+ break;
+ }
+ }
+
+ return;
+ }
+
+ private Time get_time_object ()
+ {
+ if (ior != null)
+ {
+ org.omg.CORBA.Object objref = orb.string_to_object (ior);
+ return TimeHelper.narrow (objref);
+ }
+ else
+ {
+ if (use_naming_service)
+ {
+ // Use multicast to obtain NS handle.
+ NS_Resolve ns_resolve =
+ new NS_Resolve (null);
+ org.omg.CORBA.Object objRef =
+ ns_resolve.resolve_name_service (orb);
+
+ // Get the root naming context.
+ NamingContext ncRef =
+ NamingContextHelper.narrow (objRef);
+ System.out.println ("got initial NS reference");
+
+ // Resolve the Object Reference in Naming.
+ NameComponent nc =
+ new NameComponent ("Time", "");
+ NameComponent path[] = {nc};
+ try
+ {
+ return TimeHelper.narrow (ncRef.resolve (path));
+ }
+ catch (Exception e)
+ {
+ System.out.println ("Error: " + e);
+ }
+ }
+ }
+ return null;
+ }
+
+ public static void main (String args[])
+ {
+ try
+ {
+ Time_Client client = new Time_Client (args);
+ Time timeRef = client.get_time_object ();
+
+ if (timeRef == null)
+ {
+ System.out.println ("Unable to resolve Time.");
+ System.exit (-1);
+ }
+
+ // Call the Time server object and print results.
+ int time = timeRef.current_time ();
+
+ java.util.Date date =
+ new java.util.Date (((long) time) * 1000);
+
+ System.out.println ("string time is " + date);
+
+ if (client.shutdown)
+ {
+ timeRef.shutdown ();
+ System.out.println ("Shutting down server ...");
+ }
+ }
+ catch (Exception e)
+ {
+ System.out.println ("ERROR : " + e) ;
+ e.printStackTrace (System.out);
+ }
+ }
+}