【Java开源代码栏目提醒】:网学会员,鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“PullSupplier.java”一文,供大家参考学习!
package ejava.messagech22.corbaevents;
import org.omg.CosEventComm._PullSupplierImplBase;
import org.omg.CosEventComm.PullConsumer;
import org.omg.CORBA.ORB;
import org.omg.CosEventComm.Disconnected;
import org.omg.CORBA.SystemException;
import org.omg.CosEventChannelAdmin.EventChannel;
import org.omg.CosEventChannelAdmin.ProxyPullConsumer;
import org.omg.CosEventChannelAdmin.EventChannelHelper;
import org.omg.CosEventChannelAdmin.AlreadyConnected;
/**
* This implements Pull Supplier using CORBA events
*/
public class PullSupplier extends _PullSupplierImplBase
{
private PullConsumer pullConsumer;
public PullSupplier(PullConsumer newPullConsumer)
{
pullConsumer = newPullConsumer;
}
/**
* disconnects supplier from the event Channel.
*/
public void disconnect_pull_supplier()
{
System.out.println(" Disconnect the supplier from the channel");
try {
_boa().deactivate_obj(this);
}
catch(org.omg.CORBA.SystemException systemException) {
systemException.printStackTrace();
}
}
public org.omg.CORBA.Any pull()
throws Disconnected
{
if(pullConsumer == null) {
throw new Disconnected();
}
org.omg.CORBA.Any pullingMessage = _orb().create_any();
HelloImplementation helloImplementation = new HelloImplementation();
pullingMessage.insert_Object(helloImplementation);
return pullingMessage;
}
public org.omg.CORBA.Any try_pull(org.omg.CORBA.BooleanHolder isAnyEvent)
throws org.omg.CORBA.SystemException, Disconnected
{
isAnyEvent.value = true;
System.out.println(" try pull called :");
return pull();
}
public static void main(String[] args) {
try {
org.omg.CORBA.ORB orb =
org.omg.CORBA.ORB.init(args, null);
org.omg.CORBA.BOA boa =
((com.visigenic.vbroker.orb.ORB)orb).BOA_init();
// Get Event Channel
EventChannel eventChannel = EventChannelHelper.bind(orb);
// get consumer from the channel
ProxyPullConsumer pullConsumer =
eventChannel.for_suppliers().obtain_pull_consumer();
PullSupplier pullSupplier = new PullSupplier(pullConsumer);
boa.obj_is_ready(pullSupplier);
System.out.println("Created Supplier : " + pullSupplier);
System.out.println("Connecting ...");
pullConsumer.connect_pull_supplier(pullSupplier);
System.out.println("Connected , Waiting ....");
boa.impl_is_ready();
}
catch(SystemException systemException){
System.out.print("Error :" +systemException);
systemException.printStackTrace();
}
catch(AlreadyConnected alreadyConnected){
System.out.print("Error :" +alreadyConnected);
alreadyConnected.printStackTrace();
}
}
}
上一篇:
PullConsumer.java
下一篇:
超市进销存管理系统的开发