FileDocCategorySizeDatePackage
RepositoryIdCache.javaAPI DocJava SE 5 API2472Fri Aug 26 14:54:34 BST 2005com.sun.corba.se.impl.util

RepositoryIdPool

public class RepositoryIdPool extends Stack

Fields Summary
private static int
MAX_CACHE_SIZE
private RepositoryIdCache
cache
Constructors Summary
Methods Summary
final voidincreasePool(int size)

        //if (cache.size() <= MAX_CACHE_SIZE)
	for (int i = size; i > 0; i--)
	    push(new RepositoryId());
        /*
	  // _REVISIT_ This will not work w/out either thread tracing or weak references.  I am
	  // betting that thread tracing almost completely negates benefit of reuse.  Until either
	  // 1.2 only inclusion or proof to the contrary, I'll leave it this way...
	  else {
	  int numToReclaim = cache.size() / 2;
	  Enumeration keys = cache.keys();
	  Enumeration elements = cache.elements();
	  for (int i = numToReclaim; i > 0; i--) {
	  Object key = keys.nextElement();
	  Object element = elements.nextElement();
                
	  push(element);
	  cache.remove(key);
	  }
	  }
        */
    
public final synchronized RepositoryIdpopId()

    
         

        try {
            return (RepositoryId)super.pop();
        }
        catch(EmptyStackException e) {
            increasePool(5);
            return (RepositoryId)super.pop();
        }

    
final voidsetCaches(com.sun.corba.se.impl.util.RepositoryIdCache cache)

        this.cache = cache;