package org.jacorb.orb.buffermanager;
import org.jacorb.config.Configurable;
import org.jacorb.config.Configuration;
import org.jacorb.config.ConfigurationException;
public class DefaultExpansionPolicy implements BufferManagerExpansionPolicy, Configurable
{
private double scale;
private double divider;
public void configure (Configuration configuration) throws ConfigurationException
{
scale = configuration.getAttributeAsFloat ("jacorb.buffermanager.defaultexpansionpolicy.scale", 4);
divider = configuration.getAttributeAsFloat ("jacorb.buffermanager.defaultexpansionpolicy.divider", 6);
}
public int getExpandedSize (int requestedSize)
{
double multiplier = scale - Math.log (requestedSize) / divider;
multiplier = (multiplier < 1.0) ? 1.0 : multiplier;
return (int) Math.floor ( multiplier * requestedSize );
}
}