1 package demo.events; 2 3 10 11 import org.omg.CosNaming.*; 12 import org.omg.CosEventChannelAdmin.*; 13 import org.omg.CosEventComm.*; 14 import org.omg.CORBA.Any ; 15 16 public class PullConsumerDemo 17 extends PullConsumerPOA 18 { 19 public PullConsumerDemo(org.omg.CORBA.ORB 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 argv[]) 30 { 31 EventChannel ecs = null; 32 ConsumerAdmin ca; 33 ProxyPullSupplier pps; 34 PullConsumer pullConsumer; 35 Any received = null; 36 org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(argv, null); 37 38 try 40 { 41 org.omg.PortableServer.POA 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 e ) 51 { 52 e.printStackTrace(); 53 } 54 55 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 e ) 65 { 66 e.printStackTrace(); 67 } 68 69 System.out.println("TestPullConsumer registered."); 70 71 int i=0; 73 while( i<10 ) 74 { 75 System.out.println("pulling event " + i); 76 org.omg.CORBA.BooleanHolder bh = new org.omg.CORBA.BooleanHolder (); 77 try 78 { 79 received = pps.try_pull(bh); 80 if( bh.value ) 82 { 83 System.out.println("received " + (i++) + " : " + 84 received.extract_string() ); 85 } 86 else 87 { 88 Thread.currentThread().sleep(2000); 91 } 92 } 93 catch( Exception e ) 94 { 95 e.printStackTrace(); 96 } 97 } 98 pps.disconnect_pull_supplier(); 99 } 100 } 101 102 103 | Popular Tags |