summaryrefslogtreecommitdiff
path: root/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2')
-rw-r--r--TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2180
1 files changed, 180 insertions, 0 deletions
diff --git a/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2 b/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2
new file mode 100644
index 00000000000..b6039ee72d9
--- /dev/null
+++ b/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2
@@ -0,0 +1,180 @@
+// $Id$
+//
+// ============================================================================
+//
+// = FILENAME
+// PushConsumerFactory.java
+//
+// = AUTHOR
+// Michael Kircher (mk1@cs.wustl.edu)
+//
+// = DESCRIPTION
+// This is the administor/factory for a PushConsumer.
+//
+// ============================================================================
+
+
+public class PushConsumerFactory
+{
+
+ private org.omg.CORBA.ORB orb_;
+ private org.omg.CORBA.Object naming_service_object_;
+ private DataHandler dataHandler_;
+ private Navigation navigation_;
+ private Weapons weapons_;
+
+
+ public PushConsumerFactory (DataHandler dataHandler,
+ String nameServiceIOR,
+ String[] args,
+ java.applet.Applet applet)
+ {
+ try {
+ dataHandler_ = dataHandler;
+
+ // if the DOVE Browser is running as an Applet
+ if (applet != null) {
+ orb_ = org.omg.CORBA.ORB.init (applet, null);
+ }
+ else { // not running as an Applet, but as an normal Application
+ orb_ = org.omg.CORBA.ORB.init (args, null);
+ }
+
+ // Get the Naming Service initial reference
+
+ // Name Service Lookup cannot be used when running as an Applet
+ if (nameServiceIOR == null && applet != null) {
+ System.out.println (" Name Service Lookup cannot be used when running as an Applet! Quit!");
+ System.exit (1);
+ }
+
+ if (nameServiceIOR == null) { // only used when running via "java" or "vbj"
+ System.out.println ("Using the lookup protocol!");
+ NS_Resolve ns_resolve = new NS_Resolve ();
+ naming_service_object_ = ns_resolve.resolve_name_service (orb_);
+ }
+ else {
+ System.out.println ("Using the following IOR: " + nameServiceIOR);
+ naming_service_object_ = orb_.string_to_object (nameServiceIOR);
+ }
+
+ }
+ catch(org.omg.CORBA.SystemException e) {
+ System.err.println ("PushConsumerFactory constructor: ORB and Name Service initialization");
+ System.err.println(e);
+ }
+
+ }
+
+ public class Object_is_null_exception extends Exception
+ {
+ Object_is_null_exception (String s)
+ {
+ super (s);
+ }
+ }
+
+ public void run ()
+ {
+ try
+ {
+
+ // Get the Naming Context to allow resolving the EventService and
+ // ScheduleService
+ CosNaming.NamingContext naming_context =
+ CosNaming.NamingContextHelper.narrow (naming_service_object_);
+
+ if (naming_context == null)
+ {
+ System.err.println ("The Naming Context is null");
+ System.exit (1);
+ }
+ System.out.println ("Reference to the Naming Service is ok.");
+
+ // Get a reference for the EventService
+
+ CosNaming.NameComponent[] ec_name_components = new CosNaming.NameComponent[1];
+ ec_name_components[0] = new CosNaming.NameComponent ("EventService","");
+ org.omg.CORBA.Object event_channel_object = naming_context.resolve (ec_name_components);
+
+ if (event_channel_object == null)
+ {
+ throw new Object_is_null_exception("EventService Object is null");
+ }
+
+ RtecEventChannelAdmin.EventChannel event_channel =
+ RtecEventChannelAdmin.EventChannelHelper.narrow (event_channel_object);
+
+ System.out.println ("Reference to the Event Service is ok.");
+
+ // Get a reference for the ScheduleService
+
+ CosNaming.NameComponent[] s_name_components = new CosNaming.NameComponent[1];
+ s_name_components[0] = new CosNaming.NameComponent ("ScheduleService","");
+ org.omg.CORBA.Object scheduler_object = naming_context.resolve (s_name_components);
+
+ if (scheduler_object == null)
+ {
+ throw new Object_is_null_exception("ScheduleService Object is null");
+ }
+
+ RtecScheduler.Scheduler scheduler =
+ RtecScheduler.SchedulerHelper.narrow (scheduler_object);
+
+ System.out.println ("Reference to the Naming Service is ok.");
+
+
+ // Start the consumer
+ System.out.println ("Instantiating the Push Consumer.");
+ PushConsumer pushConsumer = new PushConsumer (orb_, dataHandler_);
+ System.out.println ("Initializing the Push Consumer.");
+ pushConsumer.open_consumer (event_channel, scheduler, "demo_consumer");
+
+ // Tell the CORBA environment that we are ready
+
+ orb_.connect (pushConsumer);
+
+ System.out.println ("Going into the event dispatching loop.");
+
+
+ java.lang.Object sync = new java.lang.Object();
+ synchronized (sync) {
+ sync.wait();
+ }
+ }
+ catch (java.lang.InterruptedException e)
+ {
+ }
+ catch (CosNaming.NamingContextPackage.CannotProceed e)
+ {
+ System.err.println ("CosNaming.NamingContextPackage.CannotProceed");
+ System.err.println (e);
+ }
+ catch (CosNaming.NamingContextPackage.InvalidName e)
+ {
+ System.err.println ("CosNaming.NamingContextPackage.InvalidName");
+ System.err.println (e);
+ }
+ catch (CosNaming.NamingContextPackage.NotFound e)
+ {
+ System.err.println ("CosNaming.NamingContextPackage.NotFound");
+ System.err.println (e);
+ }
+ catch (Object_is_null_exception e)
+ {
+ System.err.println (e);
+ }
+ catch(org.omg.CORBA.SystemException e)
+ {
+ System.err.println ("PushConsumerFactory.run: Failure");
+ System.err.println(e);
+ }
+ }
+} // public class PushConsumerFactory
+
+
+
+
+
+
+