1 package demo.events; 2 3 9 10 import org.omg.CosNaming.*; 11 import org.omg.CosEventChannelAdmin.*; 12 import org.omg.CosEventComm.*; 13 import org.omg.CORBA.Any ; 14 15 16 class PullSupplierDemo extends Thread implements PullSupplierOperations 17 { 18 Any event = null; 19 20 public PullSupplierDemo() 21 { 22 start(); 23 } 24 25 public void disconnect_pull_supplier() 26 { 27 System.out.println("Bye."); 28 } 29 30 static public void main (String argv[]) 31 { 32 org.omg.CosEventChannelAdmin.EventChannel e = null; 33 org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(argv, null); 34 35 try 36 { 37 NamingContextExt nc = 38 NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService")); 39 e = EventChannelHelper.narrow(nc.resolve(nc.to_name("eventchannel.example"))); 40 } 41 catch( Exception ex ) 42 { 43 ex.printStackTrace(); 44 } 45 46 SupplierAdmin supplierAdmin = e.for_suppliers(); 47 ProxyPullConsumer proxyPullConsumer = 48 supplierAdmin.obtain_pull_consumer(); 49 50 try 51 { 52 org.omg.PortableServer.POA poa = 53 org.omg.PortableServer.POAHelper.narrow(orb.resolve_initial_references("RootPOA")); 54 55 PullSupplierPOATie pt = new PullSupplierPOATie( new PullSupplierDemo()); 56 pt._this_object(orb); 57 org.omg.CORBA.Object o = poa.servant_to_reference( pt ); 58 59 poa.the_POAManager().activate(); 60 61 proxyPullConsumer.connect_pull_supplier( PullSupplierHelper.narrow(o) ); 62 } 63 catch( Exception ex ) 64 { 65 ex.printStackTrace(); 66 } 67 } 68 69 public Any pull() throws Disconnected 70 { 71 System.out.println("I m being pulled."); 72 event = org.omg.CORBA.ORB.init().create_any(); 73 event.insert_string("Pull."); 74 return event; 75 } 76 77 public void run() 78 { 79 while( true ) 81 { 82 try 83 { 84 synchronized( this ) 85 { 86 wait(); 87 } 88 } 89 catch( Exception e ) 90 { 91 disconnect_pull_supplier(); 92 } 93 } 94 } 95 96 97 public Any try_pull( org.omg.CORBA.BooleanHolder has_event) 98 throws Disconnected 99 { 100 System.out.println("I m being try_pulled."); 101 event = org.omg.CORBA.ORB.init().create_any(); 102 event.insert_string("TryPull."); 103 has_event.value = true; 104 return event; 105 } 106 } 107 108 109 | Popular Tags |