⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntfnode.java

📁 UCS (Ultra Corba Simulator) is one more powerful corba client/servant simulator tool than other simi
💻 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;   	
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -