diff options
author | Mark Spruiell <mes@zeroc.com> | 2002-01-29 06:49:10 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2002-01-29 06:49:10 +0000 |
commit | 0001dc614d21380fb22a22566a44e6d2eae88542 (patch) | |
tree | c2a50cf5bd26da7ce3844146473989ebac902515 /java/src/IceInternal/RouterManager.java | |
parent | adding server (diff) | |
download | ice-0001dc614d21380fb22a22566a44e6d2eae88542.tar.bz2 ice-0001dc614d21380fb22a22566a44e6d2eae88542.tar.xz ice-0001dc614d21380fb22a22566a44e6d2eae88542.zip |
align with stable_31
Diffstat (limited to 'java/src/IceInternal/RouterManager.java')
-rw-r--r-- | java/src/IceInternal/RouterManager.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/java/src/IceInternal/RouterManager.java b/java/src/IceInternal/RouterManager.java new file mode 100644 index 00000000000..5058792565f --- /dev/null +++ b/java/src/IceInternal/RouterManager.java @@ -0,0 +1,53 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +package IceInternal; + +public final class RouterManager +{ + RouterManager() + { + } + + synchronized void + destroy() + { + _table.clear(); + } + + // + // Returns router info for a given router. Automatically creates + // the router info if it doesn't exist yet. + // + public RouterInfo + get(Ice.RouterPrx rtr) + { + if (rtr == null) + { + return null; + } + + Ice.RouterPrx router = Ice.RouterPrxHelper.uncheckedCast(rtr.ice_router(null)); // The router cannot be routed. + + synchronized (this) + { + RouterInfo info = (RouterInfo)_table.get(router); + if (info == null) + { + info = new RouterInfo(router); + _table.put(router, info); + } + + return info; + } + } + + private java.util.HashMap _table = new java.util.HashMap(); +} |