summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/LocatorTable.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/LocatorTable.java')
-rw-r--r--java/src/IceInternal/LocatorTable.java46
1 files changed, 26 insertions, 20 deletions
diff --git a/java/src/IceInternal/LocatorTable.java b/java/src/IceInternal/LocatorTable.java
index 1e8568fe703..a2fe5a7580c 100644
--- a/java/src/IceInternal/LocatorTable.java
+++ b/java/src/IceInternal/LocatorTable.java
@@ -1,6 +1,6 @@
// **********************************************************************
//
-// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved.
+// Copyright (c) 2003-2009 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.
@@ -23,18 +23,21 @@ final class LocatorTable
}
synchronized IceInternal.EndpointI[]
- getAdapterEndpoints(String adapter, int ttl)
+ getAdapterEndpoints(String adapter, int ttl, Ice.BooleanHolder cached)
{
if(ttl == 0) // Locator cache disabled.
{
+ cached.value = false;
return null;
}
EndpointTableEntry entry = _adapterEndpointsTable.get(adapter);
- if(entry != null && checkTTL(entry.time, ttl))
+ if(entry != null)
{
+ cached.value = checkTTL(entry.time, ttl);
return entry.endpoints;
}
+ cached.value = false;
return null;
}
@@ -52,33 +55,36 @@ final class LocatorTable
return entry != null ? entry.endpoints : null;
}
- synchronized Ice.ObjectPrx
- getProxy(Ice.Identity id, int ttl)
+ synchronized Reference
+ getObjectReference(Ice.Identity id, int ttl, Ice.BooleanHolder cached)
{
if(ttl == 0) // Locator cache disabled.
{
+ cached.value = false;
return null;
}
- ProxyTableEntry entry = _objectTable.get(id);
- if(entry != null && checkTTL(entry.time, ttl))
+ ReferenceTableEntry entry = _objectTable.get(id);
+ if(entry != null)
{
- return entry.proxy;
+ cached.value = checkTTL(entry.time, ttl);
+ return entry.reference;
}
+ cached.value = false;
return null;
}
synchronized void
- addProxy(Ice.Identity id, Ice.ObjectPrx proxy)
+ addObjectReference(Ice.Identity id, Reference ref)
{
- _objectTable.put(id, new ProxyTableEntry(IceInternal.Time.currentMonotonicTimeMillis(), proxy));
+ _objectTable.put(id, new ReferenceTableEntry(IceInternal.Time.currentMonotonicTimeMillis(), ref));
}
- synchronized Ice.ObjectPrx
- removeProxy(Ice.Identity id)
+ synchronized Reference
+ removeObjectReference(Ice.Identity id)
{
- ProxyTableEntry entry = _objectTable.remove(id);
- return entry != null ? entry.proxy : null;
+ ReferenceTableEntry entry = _objectTable.remove(id);
+ return entry != null ? entry.reference : null;
}
private boolean
@@ -107,20 +113,20 @@ final class LocatorTable
final public IceInternal.EndpointI[] endpoints;
}
- private static final class ProxyTableEntry
+ private static final class ReferenceTableEntry
{
- public ProxyTableEntry(long time, Ice.ObjectPrx proxy)
+ public ReferenceTableEntry(long time, Reference reference)
{
this.time = time;
- this.proxy = proxy;
+ this.reference = reference;
}
final public long time;
- final public Ice.ObjectPrx proxy;
+ final public Reference reference;
}
private java.util.Map<String, EndpointTableEntry> _adapterEndpointsTable =
new java.util.HashMap<String, EndpointTableEntry>();
- private java.util.Map<Ice.Identity, ProxyTableEntry> _objectTable =
- new java.util.HashMap<Ice.Identity, ProxyTableEntry>();
+ private java.util.Map<Ice.Identity, ReferenceTableEntry> _objectTable =
+ new java.util.HashMap<Ice.Identity, ReferenceTableEntry>();
}