KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > demo > events > PullConsumerDemo


1 package demo.events;
2
3 /**
4  * @authors Joerg v. Frantzius, Rainer Lischetzki, Gerald Brose 1997
5  *
6  * A simple demo for using the event channel as a pull consumer
7  * of events
8  *
9  */

10
11 import org.omg.CosNaming.*;
12 import org.omg.CosEventChannelAdmin.*;
13 import org.omg.CosEventComm.*;
14 import org.omg.CORBA.Any JavaDoc;
15
16 public class PullConsumerDemo
17         extends PullConsumerPOA
18 {
19   public PullConsumerDemo(org.omg.CORBA.ORB JavaDoc orb)
20   {
21     _this_object( orb );
22   }
23
24   public void disconnect_pull_consumer()
25   {
26     System.out.println ("Consumer disconnected");
27   }
28
29   static public void main (String JavaDoc argv[])
30   {
31     EventChannel ecs = null;
32     ConsumerAdmin ca;
33     ProxyPullSupplier pps;
34     PullConsumer pullConsumer;
35     Any JavaDoc received = null;
36     org.omg.CORBA.ORB JavaDoc orb = org.omg.CORBA.ORB.init(argv, null);
37
38     // binding the event channel reference
39
try
40     {
41       org.omg.PortableServer.POA JavaDoc poa =
42         org.omg.PortableServer.POAHelper.narrow
43           (orb.resolve_initial_references ("RootPOA"));
44  
45       poa.the_POAManager().activate();
46       NamingContextExt nc =
47               NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));
48       ecs = EventChannelHelper.narrow(nc.resolve(nc.to_name("eventchannel.example")));
49     }
50     catch( Exception JavaDoc e )
51     {
52       e.printStackTrace();
53     }
54
55     // registering ourselves
56

57     pullConsumer = (org.omg.CosEventComm.PullConsumer)(new PullConsumerDemo(orb))._this();
58     ca = ecs.for_consumers();
59     pps = ca.obtain_pull_supplier();
60     try
61     {
62       pps.connect_pull_consumer( (PullConsumer) pullConsumer );
63     }
64     catch( Exception JavaDoc e )
65     {
66       e.printStackTrace();
67     }
68
69     System.out.println("TestPullConsumer registered.");
70
71     // pulling events
72
int i=0;
73     while( i<10 )
74     {
75       System.out.println("pulling event " + i);
76       org.omg.CORBA.BooleanHolder JavaDoc bh = new org.omg.CORBA.BooleanHolder JavaDoc();
77       try
78       {
79         received = pps.try_pull(bh);
80         // received = pps.pull();
81
if( bh.value )
82         {
83           System.out.println("received " + (i++) + " : " +
84                              received.extract_string() );
85         }
86         else
87         {
88           // we did not get any real any, so we continue
89
// polling after a short nap
90
Thread.currentThread().sleep(2000);
91         }
92       }
93       catch( Exception JavaDoc e )
94       {
95         e.printStackTrace();
96       }
97     }
98     pps.disconnect_pull_supplier();
99   }
100 }
101
102
103
Popular Tags