FileDocCategorySizeDatePackage
CorbaOutboundConnectionCacheImpl.javaAPI DocJava SE 5 API5492Fri Aug 26 14:54:32 BST 2005com.sun.corba.se.impl.transport

CorbaOutboundConnectionCacheImpl

public class CorbaOutboundConnectionCacheImpl extends CorbaConnectionCacheBase implements com.sun.corba.se.pept.transport.OutboundConnectionCache
author
Harold Carr

Fields Summary
protected Hashtable
connectionCache
Constructors Summary
public CorbaOutboundConnectionCacheImpl(com.sun.corba.se.spi.orb.ORB orb, com.sun.corba.se.pept.transport.ContactInfo contactInfo)

	super(orb, contactInfo.getConnectionCacheType(),
	      ((CorbaContactInfo)contactInfo).getMonitoringName());
	this.connectionCache = new Hashtable();
    
Methods Summary
protected java.lang.ObjectbackingStore()

	return connectionCache;
    
protected voiddprint(java.lang.String msg)

	ORBUtility.dprint("CorbaOutboundConnectionCacheImpl", msg);
    
public com.sun.corba.se.pept.transport.Connectionget(com.sun.corba.se.pept.transport.ContactInfo contactInfo)

	if (orb.transportDebugFlag) {
	    dprint(".get: " + contactInfo + " " + contactInfo.hashCode());
	}
	synchronized (backingStore()) {
	    dprintStatistics();
	    return (Connection) connectionCache.get(contactInfo);
	}
    
public voidput(com.sun.corba.se.pept.transport.ContactInfo contactInfo, com.sun.corba.se.pept.transport.Connection connection)

	if (orb.transportDebugFlag) {
	    dprint(".put: " + contactInfo + " " + contactInfo.hashCode() + " "
		   + connection);
	}
	synchronized (backingStore()) {
	    connectionCache.put(contactInfo, connection);
	    connection.setConnectionCache(this);
	    dprintStatistics();
	}
    
protected voidregisterWithMonitoring()

	// ORB
	MonitoredObject orbMO = 
	    orb.getMonitoringManager().getRootMonitoredObject();

	// CONNECTION
	MonitoredObject connectionMO = 
	    orbMO.getChild(MonitoringConstants.CONNECTION_MONITORING_ROOT);
	if (connectionMO == null) {
	    connectionMO = 
		MonitoringFactories.getMonitoredObjectFactory()
		    .createMonitoredObject(
		        MonitoringConstants.CONNECTION_MONITORING_ROOT,
			MonitoringConstants.CONNECTION_MONITORING_ROOT_DESCRIPTION);
	    orbMO.addChild(connectionMO);
	}

	// OUTBOUND CONNECTION
	MonitoredObject outboundConnectionMO = 
	    connectionMO.getChild(
                MonitoringConstants.OUTBOUND_CONNECTION_MONITORING_ROOT);
	if (outboundConnectionMO == null) {
	    outboundConnectionMO =
		MonitoringFactories.getMonitoredObjectFactory()
		    .createMonitoredObject(
		        MonitoringConstants.OUTBOUND_CONNECTION_MONITORING_ROOT,
			MonitoringConstants.OUTBOUND_CONNECTION_MONITORING_ROOT_DESCRIPTION);
	    connectionMO.addChild(outboundConnectionMO);
	}

	// NODE FOR THIS CACHE
	MonitoredObject thisMO = 
	    outboundConnectionMO.getChild(getMonitoringName());
	if (thisMO == null) {
	    thisMO =
		MonitoringFactories.getMonitoredObjectFactory()
		    .createMonitoredObject(
			getMonitoringName(),
			MonitoringConstants.CONNECTION_MONITORING_DESCRIPTION);
	    outboundConnectionMO.addChild(thisMO);
	}

	LongMonitoredAttributeBase attribute;

	// ATTRIBUTE
	attribute = new 
	    LongMonitoredAttributeBase(
                MonitoringConstants.CONNECTION_TOTAL_NUMBER_OF_CONNECTIONS, 
		MonitoringConstants.CONNECTION_TOTAL_NUMBER_OF_CONNECTIONS_DESCRIPTION)
	    {
		public Object getValue() {
		    return new Long(CorbaOutboundConnectionCacheImpl.this.numberOfConnections());
		}
	    };
	thisMO.addAttribute(attribute);

	// ATTRIBUTE
	attribute = new 
	    LongMonitoredAttributeBase(
                MonitoringConstants.CONNECTION_NUMBER_OF_IDLE_CONNECTIONS, 
		MonitoringConstants.CONNECTION_NUMBER_OF_IDLE_CONNECTIONS_DESCRIPTION)
	    {
		public Object getValue() {
		    return new Long(CorbaOutboundConnectionCacheImpl.this.numberOfIdleConnections());
		}
	    };
	thisMO.addAttribute(attribute);

	// ATTRIBUTE
	attribute = new 
	    LongMonitoredAttributeBase(
                MonitoringConstants.CONNECTION_NUMBER_OF_BUSY_CONNECTIONS, 
		MonitoringConstants.CONNECTION_NUMBER_OF_BUSY_CONNECTIONS_DESCRIPTION)
	    {
		public Object getValue() {
		    return new Long(CorbaOutboundConnectionCacheImpl.this.numberOfBusyConnections());
		}
	    };
	thisMO.addAttribute(attribute);
    
public voidremove(com.sun.corba.se.pept.transport.ContactInfo contactInfo)

	if (orb.transportDebugFlag) {
	    dprint(".remove: " + contactInfo + " " + contactInfo.hashCode());
	}
	synchronized (backingStore()) {
	    if (contactInfo != null) {
		connectionCache.remove(contactInfo);
	    }
	    dprintStatistics();
	}
    
public java.util.Collectionvalues()

	return connectionCache.values();