// **********************************************************************
//
// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
package IceInternal;
public final class DefaultsAndOverrides
{
DefaultsAndOverrides(Ice.Properties properties)
{
String value;
defaultProtocol = properties.getPropertyWithDefault("Ice.Default.Protocol", "tcp");
value = properties.getProperty("Ice.Default.Host");
if(value.length() != 0)
{
defaultHost = value;
}
else
{
defaultHost = null;
}
value = properties.getProperty("Ice.Override.Timeout");
if(value.length() > 0)
{
overrideTimeout = true;
overrideTimeoutValue = properties.getPropertyAsInt("Ice.Override.Timeout");
}
else
{
overrideTimeout = false;
overrideTimeoutValue = -1;
}
value = properties.getProperty("Ice.Override.ConnectTimeout");
if(value.length() > 0)
{
overrideConnectTimeout = true;
overrideConnectTimeoutValue = properties.getPropertyAsInt("Ice.Override.ConnectTimeout");
}
else
{
overrideConnectTimeout = false;
overrideConnectTimeoutValue = -1;
}
value = properties.getProperty("Ice.Override.CloseTimeout");
if(value.length() > 0)
{
overrideCloseTimeout = true;
overrideCloseTimeoutValue = properties.getPropertyAsInt("Ice.Override.CloseTimeout");
}
else
{
overrideCloseTimeout = false;
overrideCloseTimeoutValue = -1;
}
value = properties.getProperty("Ice.Override.Compress");
if(value.length() > 0)
{
overrideCompress = true;
boolean b = properties.getPropertyAsInt("Ice.Override.Compress") > 0;
if(b && !BasicStream.compressible())
{
System.err.println("warning: bzip2 support not available, Ice.Override.Compress ignored");
b = false;
}
overrideCompressValue = b;
}
else
{
overrideCompress = false;
overrideCompressValue = false;
}
value = properties.getProperty("Ice.Override.Secure");
if(value.length() > 0)
{
overrideSecure = true;
overrideSecureValue = properties.getPropertyAsInt("Ice.Override.Secure") > 0;
}
else
{
overrideSecure = false;
overrideSecureValue = false;
}
defaultCollocationOptimization =
properties.getPropertyAsIntWithDefault("Ice.Default.CollocationOptimized", 1) > 0;
value = properties.getPropertyWithDefault("Ice.Default.EndpointSelection", "Random");
if(value.equals("Random"))
{
defaultEndpointSelection = Ice.EndpointSelectionType.Random;
}
else if(value.equals("Ordered"))
{
defaultEndpointSelection = Ice.EndpointSelectionType.Ordered;
}
else
{
Ice.EndpointSelectionTypeParseException ex = new Ice.EndpointSelectionTypeParseException();
ex.str = "illegal value `" + value + "'; expected `Random' or `Ordered'";
throw ex;
}
defaultLocatorCacheTimeout = properties.getPropertyAsIntWithDefault("Ice.Default.LocatorCacheTimeout", -1);
defaultPreferSecure = properties.getPropertyAsIntWithDefault("Ice.Default.PreferSecure", 0) > 0;
}
final public String defaultHost;
final public String defaultProtocol;
final public boolean defaultCollocationOptimization;
final public Ice.EndpointSelectionType defaultEndpointSelection;
final public int defaultLocatorCacheTimeout;
final public boolean defaultPreferSecure;
final public boolean overrideTimeout;
final public int overrideTimeoutValue;
final public boolean overrideConnectTimeout;
final public int overrideConnectTimeoutValue;
final public boolean overrideCloseTimeout;
final public int overrideCloseTimeoutValue;
final public boolean overrideCompress;
final public boolean overrideCompressValue;
final public boolean overrideSecure;
final public boolean overrideSecureValue;
}