diff options
author | Mark Spruiell <mes@zeroc.com> | 2001-11-27 16:49:19 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2001-11-27 16:49:19 +0000 |
commit | b9eab61f62cdf2e8aaf709711f469824ef49ca19 (patch) | |
tree | 0c14a1e5a967069990ecd171438c9e53ac445e64 /java/src | |
parent | make depend (diff) | |
download | ice-b9eab61f62cdf2e8aaf709711f469824ef49ca19.tar.bz2 ice-b9eab61f62cdf2e8aaf709711f469824ef49ca19.tar.xz ice-b9eab61f62cdf2e8aaf709711f469824ef49ca19.zip |
initial check-in
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/IceInternal/ObjectFactoryManager.java | 54 | ||||
-rw-r--r-- | java/src/IceInternal/ProxyFactory.java | 75 | ||||
-rw-r--r-- | java/src/IceInternal/UserExceptionFactoryManager.java | 55 |
3 files changed, 184 insertions, 0 deletions
diff --git a/java/src/IceInternal/ObjectFactoryManager.java b/java/src/IceInternal/ObjectFactoryManager.java new file mode 100644 index 00000000000..9621d48f333 --- /dev/null +++ b/java/src/IceInternal/ObjectFactoryManager.java @@ -0,0 +1,54 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +package IceInternal; + +final class ObjectFactoryManager +{ + public synchronized void + add(Ice.ObjectFactory factory, String id) + { + _factoryMap.put(id, factory); + } + + public synchronized void + remove(String id) + { + _factoryMap.remove(id); + } + + public synchronized Ice.ObjectFactory + find(String id) + { + return (Ice.ObjectFactory)_factoryMap.get(id); + } + + // + // Only for use by Instance + // + ObjectFactoryManager() + { + } + + void + destroy() + { + java.util.Set entries = _factoryMap.entrySet(); + java.util.Iterator i = entries.iterator(); + while (i.hasNext()) + { + Ice.ObjectFactory factory = (Ice.ObjectFactory)i.next(); + factory.destroy(); + } + _factoryMap.clear(); + } + + private java.util.HashMap _factoryMap = new java.util.HashMap(); +} diff --git a/java/src/IceInternal/ProxyFactory.java b/java/src/IceInternal/ProxyFactory.java new file mode 100644 index 00000000000..3912b657715 --- /dev/null +++ b/java/src/IceInternal/ProxyFactory.java @@ -0,0 +1,75 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +package IceInternal; + +final class ProxyFactory +{ + public Ice.ObjectPrx + stringToProxy(String s) + { + Reference reference = new Reference(_instance, s); + return referenceToProxy(reference); + } + + public String + proxyToString(Ice.ObjectPrx proxy) + { + return proxy.__reference().toString(); + } + + public Ice.ObjectPrx + streamToProxy(BasicStream s) + { + String identity = s.readString(); + + if (identity.length() == 0) + { + return null; + } + else + { + Reference reference = new Reference(identity, s); + return referenceToProxy(reference); + } + } + + public Ice.ObjectPrx + referenceToProxy(Reference reference) + { + Ice.ObjectPrx proxy = new Ice.ProxyForObject(); + proxy.setup(reference); + return proxy; + } + + public void + proxyToStream(Ice.ObjectPrx proxy, BasicStream s) + { + if (proxy != null) + { + s.writeString(proxy.__reference().identity); + proxy.__reference().streamWrite(s); + } + else + { + s.writeString(""); + } + } + + // + // Only for use by Instance + // + ProxyFactory(Instance instance) + { + _instance = instance; + } + + private Instance _instance; +} diff --git a/java/src/IceInternal/UserExceptionFactoryManager.java b/java/src/IceInternal/UserExceptionFactoryManager.java new file mode 100644 index 00000000000..cec5c8f6dc5 --- /dev/null +++ b/java/src/IceInternal/UserExceptionFactoryManager.java @@ -0,0 +1,55 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +package IceInternal; + +final class UserExceptionFactoryManager +{ + public synchronized void + add(Ice.UserExceptionFactory factory, String id) + { + _factoryMap.put(id, factory); + } + + public synchronized void + remove(String id) + { + _factoryMap.remove(id); + } + + public synchronized Ice.UserExceptionFactory + find(String id) + { + return (Ice.UserExceptionFactory)_factoryMap.get(id); + } + + // + // Only for use by Instance + // + UserExceptionFactoryManager() + { + } + + void + destroy() + { + java.util.Set entries = _factoryMap.entrySet(); + java.util.Iterator i = entries.iterator(); + while (i.hasNext()) + { + Ice.UserExceptionFactory factory = + (Ice.UserExceptionFactory)i.next(); + factory.destroy(); + } + _factoryMap.clear(); + } + + private java.util.HashMap _factoryMap = new java.util.HashMap(); +} |