?? ntfnode.java
字號:
package com.corba.mnq.ntf;
import java.util.*;
import org.omg.CORBA.Object;
import org.omg.CosNotification.*;
import org.omg.CosNotifyChannelAdmin.*;
import org.omg.TimeBase.UtcT;
import com.corba.mnq.tool.CorbaFacility;
/**
* user data structure stored in tree's node
*/
public class NtfNode
{
private Vector tabData;
private String myName;
public int type;
public String ior;
/**
* construct function
* @param
* name: the name of node
* inType: the type of node
* inIor: the ior of servant object
*/
public NtfNode( String name,int inType,String inIor )
{
myName=name;
this.type=inType;
ior=inIor;
}
public boolean equals(NtfNode bnode)
{
return toString().equals(bnode.toString());
}
public String getName()
{
return myName;
}
public String toString()
{
return myName;
}
/**
* define node servant's type
*/
public static final int TYPE_CHANNEL_FACTORY =0;
public static final int TYPE_EVENT_CHANNEL =1;
public static final int TYPE_CONSUMER_ADMIN =2;
public static final int TYPE_SUPPLIER_ADMIN =3;
public static final int TYPE_PROXY_SUPPLIER =5;
public static final int TYPE_PROXY_CONSUMER =6;
/**
* create event channel
* @return CommonNode
*/
public NtfNode createChannel()
{
try{
NtfNode pNode=(NtfNode)NtfTree.rootNode.getUserObject();
Object obj=CorbaFacility.orb.string_to_object(pNode.ior);
EventChannelFactory factory=EventChannelFactoryHelper.narrow(obj);
Property[] cqos=new Property[0];
Property[] adm=new Property[0];
org.omg.CORBA.IntHolder id=new org.omg.CORBA.IntHolder();
EventChannel ch =factory.create_channel(cqos,adm,id);
String ior=CorbaFacility.orb.object_to_string(ch);
String name="EventChannle"+id.value;
NtfNode ret=new NtfNode(name,TYPE_EVENT_CHANNEL,ior);
return ret;
}catch(Exception e){
e.printStackTrace();
return null;
}
}
/**
* destroy a servant object
* @return boolean
*/
public boolean destroyObj()
{
try{
if(type==TYPE_EVENT_CHANNEL)
{
Object obj=CorbaFacility.orb.string_to_object(ior);
EventChannel ec=EventChannelHelper.narrow(obj);
ec.destroy();
} else if(type==TYPE_CONSUMER_ADMIN)
{
Object obj=CorbaFacility.orb.string_to_object(ior);
ConsumerAdmin ec=ConsumerAdminHelper.narrow(obj);
ec.destroy();
} else if(type==TYPE_SUPPLIER_ADMIN)
{
Object obj=CorbaFacility.orb.string_to_object(ior);
SupplierAdmin ec=SupplierAdminHelper.narrow(obj);
ec.destroy();
}
else return false;
}catch(Exception e){
e.printStackTrace();
return false;
}
return true;
}
/**
* update table
*
*/
public void display()
{
Vector newData=null;
switch( type )
{
case TYPE_CHANNEL_FACTORY:
newData=displayChannelFactory(); break;
case TYPE_EVENT_CHANNEL:
newData=displayEventChannel(); break;
case TYPE_CONSUMER_ADMIN:
newData=displayConsumerAdmin(); break;
case TYPE_SUPPLIER_ADMIN:
newData=displaySupplierAdmin(); break;
case TYPE_PROXY_SUPPLIER:
newData=displayProxySupplier(); break;
case TYPE_PROXY_CONSUMER:
newData=displayProxyConsumer(); break;
default:
return ;
}
tabData= newData;
NtfTree.ntfTable.setData( tabData, this );
}
/**
* add a row to table
* @param name
* attribute name
* @param type
* attribute type
* @param value
* attribute value
* @return
* a vector contained some rows
*/
private Vector addRow(String name,String type,String value)
{
Vector row=new Vector();
row.addElement( name );
row.addElement( type);
row.addElement( value );
return row;
}
/**
* display event channel factory attributes
* @return
* a vector contained attributes
*/
private Vector displayChannelFactory()
{
Vector ret=new Vector();
ret.addElement(addRow("ObjectType","Servant","EventChannelFactory"));
return ret;
}
/**
* display event channel attributes
* @return
* a vector contained attributes
*/
private Vector displayEventChannel()
{
Vector ret=new Vector();
ret.addElement(addRow("ObjectType","Servant","EventChannel"));
try
{
Object obj=CorbaFacility.orb.string_to_object(ior);
EventChannel ec=EventChannelHelper.narrow(obj);
Property[] qos=ec.get_qos();
Vector v=analyseQos(qos);
for( int i=0;i<v.size();i++)
ret.addElement( v.elementAt(i) );
Property[] qos1=ec.get_admin();
v=analyseAdmin(qos1);
for( int i=0;i<v.size();i++)
ret.addElement( v.elementAt(i) );
}catch(Exception e){
e.printStackTrace();
}
return ret;
}
/**
* display ConsumerAdmin attributes
* @return
* a vector contained attributes
*/
private Vector displayConsumerAdmin()
{
Vector ret=new Vector();
ret.addElement(addRow("ObjectType","Servant","ConsumerAdmin"));
try
{
Object obj=CorbaFacility.orb.string_to_object(ior);
ConsumerAdmin ec=ConsumerAdminHelper.narrow(obj);
Property[] qos=ec.get_qos();
Vector v=analyseQos(qos);
for( int i=0;i<v.size();i++)
ret.addElement( v.elementAt(i) );
/*
InterFilterGroupOperator op=ec.MyOperator();
if( op.value()== InterFilterGroupOperator._AND_OP )
{
ret.addElement(addRow("MyOperator","enum","AND_OP"));
}else {
ret.addElement(addRow("MyOperator","enum","OR_OP"));
}
*/
}catch(Exception e){
e.printStackTrace();
}
return ret;
}
/**
* display SupplierAdmin attributes
* @return
* a vector contained attributes
*/
private Vector displaySupplierAdmin()
{
Vector ret=new Vector();
ret.addElement(addRow("ObjectType","Servant","SupplierAdmin"));
try
{
Object obj=CorbaFacility.orb.string_to_object(ior);
SupplierAdmin ec=SupplierAdminHelper.narrow(obj);
Property[] qos=ec.get_qos();
Vector v=analyseQos(qos);
for( int i=0;i<v.size();i++)
ret.addElement( v.elementAt(i) );
/*
if( ec.MyOperator()== InterFilterGroupOperator._AND_OP )
{
System.out.println("MyOperator ok");
ret.addElement(addRow("MyOperator","enum","AND_OP"));
}else {
ret.addElement(addRow("MyOperator","enum","OR_OP"));
}
*/
}catch(Exception e){
e.printStackTrace();
}
return ret;
}
/**
* display ProxySupplier attributes
* @return
* a vector contained attributes
*/
private Vector displayProxySupplier()
{
Vector ret=new Vector();
ret.addElement(addRow("ObjectType","Servant","ProxySupplier"));
/*
try
{
Object obj=TreeCreator.orb.string_to_object(ior);
ProxySupplier ec=ProxySupplierHelper.narrow(obj);
Property[] qos=ec.get_qos();
Vector v=analyseQos(qos);
for( int i=0;i<v.size();i++)
ret.addElement( v.elementAt(i) );
}catch(Exception e){
e.printStackTrace();
}
*/
return ret;
}
/**
* display ProxyConsumer attributes
* @return
* a vector contained attributes
*/
private Vector displayProxyConsumer()
{
Vector ret=new Vector();
ret.addElement(addRow("ObjectType","Servant","ProxyConsumer"));
/*
try
{
Object obj=TreeCreator.orb.string_to_object(ior);
ProxyConsumer ec=ProxyConsumerHelper.narrow(obj);
Property[] qos=ec.get_qos();
Vector v=analyseQos(qos);
for( int i=0;i<v.size();i++)
ret.addElement( v.elementAt(i) );
}catch(Exception e){
e.printStackTrace();
}
*/
return ret;
}
/**
* analyse Qos attributes
* @param qos
* qos list
* @return
* a vector include qos attributes
*/
private Vector analyseQos(Property[] qos)
{
Vector ret=new Vector();
for( int i=0;i<qos.length;i++)
{
String str="";
if( qos[i].name.equals("EventReliability"))
{
if( qos[i].value.extract_short()==0 )
ret.addElement(addRow("EventReliability","short","BestEffort"));
else
ret.addElement(addRow("EventReliability","short","Persistent"));
}
else if(qos[i].name.equals("ConnectionReliability"))
{
if( qos[i].value.extract_short()==0 )
ret.addElement(addRow("ConnectionReliability","short","BestEffort"));
else
ret.addElement(addRow("ConnectionReliability","short","Persistent"));
}
else if(qos[i].name.equals("Priority"))
{
str=""+qos[i].value.extract_short();
ret.addElement(addRow("Priority","short",str));
}
else if(qos[i].name.equals("StartTime"))
{
str=qos[i].value.toString();
ret.addElement(addRow("StartTime","TimeBase::UtcT",str));
}
else if(qos[i].name.equals("StopTime"))
{
str=qos[i].value.toString();
ret.addElement(addRow("StopTime","TimeBase::UtcT",str));
}
else if(qos[i].name.equals("Timeout"))
{
str=""+qos[i].value.extract_ulonglong();
ret.addElement(addRow("Timeout","TimeBase::TimeT",str));
}
else if(qos[i].name.equals("OrderPolicy"))
{
if( qos[i].value.extract_short()==0 )
ret.addElement(addRow("OrderPolicy","short","AnyOrder"));
else if( qos[i].value.extract_short()==1 )
ret.addElement(addRow("OrderPolicy","short","FifoOrder"));
else if( qos[i].value.extract_short()==2 )
ret.addElement(addRow("OrderPolicy","short","PriorityOrder"));
else
ret.addElement(addRow("OrderPolicy","short","DeadlineOrder"));
}
else if(qos[i].name.equals("DiscardPolicy"))
{
if( qos[i].value.extract_short()==0 )
ret.addElement(addRow("DiscardPolicy","short","AnyOrder"));
else if( qos[i].value.extract_short()==1 )
ret.addElement(addRow("DiscardPolicy","short","FifoOrder"));
else if( qos[i].value.extract_short()==2 )
ret.addElement(addRow("DiscardPolicy","short","PriorityOrder"));
else if( qos[i].value.extract_short()==3 )
ret.addElement(addRow("DiscardPolicy","short","DeadlineOrder"));
else
ret.addElement(addRow("DiscardPolicy","short","LifoOrder"));
}
else if(qos[i].name.equals("MaximumBatchSize"))
{
str=""+qos[i].value.extract_long();
ret.addElement(addRow("MaximumBatchSize","long",str));
}
else if(qos[i].name.equals("PacingInterval"))
{
str=qos[i].value.toString();
ret.addElement(addRow("PacingInterval","TimeBase::TimeT",str));
}
else if(qos[i].name.equals("StartTimeSupported"))
{
if( qos[i].value.extract_boolean()==true)
ret.addElement(addRow("StartTimeSupported","bolean","true"));
else
ret.addElement(addRow("StartTimeSupported","bolean","false"));
}
else if(qos[i].name.equals("StopTimeSupported"))
{
if( qos[i].value.extract_boolean()==true)
ret.addElement(addRow("StopTimeSupported","bolean","true"));
else
ret.addElement(addRow("StopTimeSupported","bolean","false"));
}
else if(qos[i].name.equals("MaxEventsPerConsumer"))
{
str=""+qos[i].value.extract_long();
ret.addElement(addRow("MaxEventsPerConsumer","long",str));
}
}
return ret;
}
/**
* analyse admin attributes
* @return
* a vector contained admin attributes
*/
private Vector analyseAdmin(Property[] qos)
{
Vector ret=new Vector();
for( int i=0;i<qos.length;i++)
{
String str="";
if( qos[i].name.equals("MaxQueueLength"))
{
str=""+qos[i].value.extract_long();
ret.addElement(addRow("MaxQueueLength","long",str));
}
else if(qos[i].name.equals("MaxConsumers"))
{
str=""+qos[i].value.extract_long();
ret.addElement(addRow("MaxConsumers","long",str));
}
else if(qos[i].name.equals("MaxSuppliers"))
{
str=""+qos[i].value.extract_long();
ret.addElement(addRow("MaxSuppliers","long",str));
}
else if(qos[i].name.equals("RejectNewEvents"))
{
if( qos[i].value.extract_boolean()==true)
ret.addElement(addRow("RejectNewEvents","bolean","true"));
else
ret.addElement(addRow("RejectNewEvents","bolean","false"));
}
}
return ret;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -