IceInternal.RouterManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ice Show documentation
Show all versions of ice Show documentation
Ice is a comprehensive RPC framework that helps you build distributed applications with minimal effort using familiar object-oriented idioms
// **********************************************************************
//
// Copyright (c) 2003-2017 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 RouterManager
{
RouterManager()
{
}
synchronized void
destroy()
{
for(RouterInfo info : _table.values())
{
info.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;
}
//
// The router cannot be routed.
//
Ice.RouterPrx router = Ice.RouterPrxHelper.uncheckedCast(rtr.ice_router(null));
synchronized(this)
{
RouterInfo info = _table.get(router);
if(info == null)
{
info = new RouterInfo(router);
_table.put(router, info);
}
return info;
}
}
public RouterInfo
erase(Ice.RouterPrx rtr)
{
RouterInfo info = null;
if(rtr != null)
{
// The router cannot be routed.
Ice.RouterPrx router = Ice.RouterPrxHelper.uncheckedCast(rtr.ice_router(null));
synchronized(this)
{
info = _table.remove(router);
}
}
return info;
}
private java.util.HashMap _table = new java.util.HashMap();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy