summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2002-04-22 15:32:23 +0000
committerMatthew Newhook <matthew@zeroc.com>2002-04-22 15:32:23 +0000
commit30fec93a8099173baf8180fc5d7736c55cff8a5b (patch)
tree977447ff0a22c8f0710a19e26aa2f27180479b10 /cpp/src
parentfix (diff)
downloadice-30fec93a8099173baf8180fc5d7736c55cff8a5b.tar.bz2
ice-30fec93a8099173baf8180fc5d7736c55cff8a5b.tar.xz
ice-30fec93a8099173baf8180fc5d7736c55cff8a5b.zip
Various Glacier changes.
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Glacier/.depend13
-rw-r--r--cpp/src/Glacier/ClientBlobject.cpp40
-rw-r--r--cpp/src/Glacier/ClientBlobject.h6
-rw-r--r--cpp/src/Glacier/GlacierRouter.cpp36
-rw-r--r--cpp/src/Glacier/GlacierStarter.cpp28
-rw-r--r--cpp/src/Glacier/Makefile63
-rw-r--r--cpp/src/Glacier/RouterI.cpp36
-rw-r--r--cpp/src/Glacier/RouterI.h18
-rw-r--r--cpp/src/Glacier/ServerBlobject.cpp2
-rw-r--r--cpp/src/Glacier/StarterI.cpp (renamed from cpp/src/Glacier/GlacierI.cpp)16
-rw-r--r--cpp/src/Glacier/StarterI.h (renamed from cpp/src/Glacier/GlacierI.h)14
11 files changed, 204 insertions, 68 deletions
diff --git a/cpp/src/Glacier/.depend b/cpp/src/Glacier/.depend
index 69a49a39fe8..59ab583dce5 100644
--- a/cpp/src/Glacier/.depend
+++ b/cpp/src/Glacier/.depend
@@ -1,7 +1,10 @@
-Glacier.o: Glacier.cpp ../../include/Glacier/Glacier.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Router.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h
-GlacierRouter.o: GlacierRouter.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/RoutingTable.h ../../include/Ice/RoutingTableF.h ../Glacier/RouterI.h ../../include/Ice/Router.h ../Glacier/ClientBlobject.h ../Glacier/ServerBlobject.h ../../include/IceUtil/Base64.h ../../include/Ice/CertificateVerifierF.h ../../include/Ice/System.h ../../include/Ice/SslExtension.h
-RouterI.o: RouterI.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Glacier/RouterI.h ../../include/Ice/Router.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h
+Starter.o: Starter.cpp ../../include/Glacier/Starter.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h
+Router.o: Router.cpp ../../include/Glacier/Router.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
+Session.o: Session.cpp ../../include/Glacier/Session.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
+SessionManager.o: SessionManager.cpp ../../include/Glacier/SessionManager.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Glacier/SessionF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h
+GlacierRouter.o: GlacierRouter.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/RoutingTable.h ../../include/Ice/RoutingTableF.h ../Glacier/RouterI.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h ../../include/Glacier/SessionManagerF.h ../Glacier/ClientBlobject.h ../Glacier/ServerBlobject.h ../../include/Glacier/SessionManager.h ../../include/IceUtil/Base64.h ../../include/Ice/CertificateVerifierF.h ../../include/Ice/System.h ../../include/Ice/SslExtension.h
+RouterI.o: RouterI.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Glacier/RouterI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h ../../include/Glacier/SessionManagerF.h ../../include/Glacier/Session.h ../../include/Glacier/SessionManager.h
ClientBlobject.o: ClientBlobject.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Glacier/ClientBlobject.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h
ServerBlobject.o: ServerBlobject.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Glacier/ServerBlobject.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h
-GlacierStarter.o: GlacierStarter.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../Glacier/GlacierI.h ../../include/Ice/RSACertificateGen.h ../../include/Ice/RSAKeyPairF.h ../../include/Glacier/Glacier.h ../../include/Ice/Router.h
-GlacierI.o: GlacierI.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../../include/Ice/RSAKeyPair.h ../../include/IceUtil/Shared.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/RSAKeyPairF.h ../../include/Ice/RSACertificateGenF.h ../../include/Ice/RSAPrivateKeyF.h ../../include/Ice/RSAPublicKeyF.h ../Glacier/GlacierI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/RSACertificateGen.h ../../include/Glacier/Glacier.h ../../include/Ice/Router.h
+GlacierStarter.o: GlacierStarter.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../Glacier/StarterI.h ../../include/Ice/RSACertificateGen.h ../../include/Ice/RSAKeyPairF.h ../../include/Glacier/Starter.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h
+StarterI.o: StarterI.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../../include/Ice/RSAKeyPair.h ../../include/IceUtil/Shared.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/RSAKeyPairF.h ../../include/Ice/RSACertificateGenF.h ../../include/Ice/RSAPrivateKeyF.h ../../include/Ice/RSAPublicKeyF.h ../Glacier/StarterI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/RSACertificateGen.h ../../include/Glacier/Starter.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h
diff --git a/cpp/src/Glacier/ClientBlobject.cpp b/cpp/src/Glacier/ClientBlobject.cpp
index d86509ffb6f..cec339c1829 100644
--- a/cpp/src/Glacier/ClientBlobject.cpp
+++ b/cpp/src/Glacier/ClientBlobject.cpp
@@ -9,6 +9,8 @@
// **********************************************************************
#include <Ice/RoutingTable.h>
+#include <Ice/IdentityUtil.h>
+
#include <Glacier/ClientBlobject.h>
using namespace std;
@@ -16,13 +18,25 @@ using namespace Ice;
using namespace Glacier;
Glacier::ClientBlobject::ClientBlobject(const CommunicatorPtr& communicator,
- const IceInternal::RoutingTablePtr& routingTable) :
+ const IceInternal::RoutingTablePtr& routingTable,
+ const string& allowCategories) :
_communicator(communicator),
_logger(_communicator->getLogger()),
_routingTable(routingTable)
{
PropertiesPtr properties = _communicator->getProperties();
- _traceLevel = properties->getPropertyAsInt("Glacier.Trace.Client");
+ _traceLevel = properties->getPropertyAsInt("Glacier.Router.Trace.Client");
+
+ size_t current = 0;
+ const string ws = " \t";
+ do
+ {
+ size_t pos = allowCategories.find_first_of(ws, current);
+ size_t len = (pos == string::npos) ? string::npos : pos - current;
+ _allowCategories.insert(allowCategories.substr(current, len));
+ current = allowCategories.find_first_not_of(ws, pos);
+ }
+ while (current != string::npos);
}
Glacier::ClientBlobject::~ClientBlobject()
@@ -48,13 +62,33 @@ Glacier::ClientBlobject::ice_invoke(const std::vector<Byte>& inParams, std::vect
{
assert(_communicator); // Destroyed?
+ //
+ // If there is an allowCategories set then enforce it.
+ //
+ if (!_allowCategories.empty())
+ {
+ if (_allowCategories.find(current.identity.category) == _allowCategories.end())
+ {
+ if (_traceLevel > 0)
+ {
+ Trace out(_logger, "Glacier");
+ out << "rejecting request. identity: " << identityToString(current.identity);
+ }
+ ObjectNotExistException ex(__FILE__, __LINE__);
+ ex.identity = current.identity;
+ throw ex;
+ }
+ }
+
try
{
ObjectPrx proxy = _routingTable->get(current.identity);
if (!proxy)
{
- throw ObjectNotExistException(__FILE__, __LINE__);
+ ObjectNotExistException ex(__FILE__, __LINE__);
+ ex.identity = current.identity;
+ throw ex;
}
if (!current.facet.empty())
diff --git a/cpp/src/Glacier/ClientBlobject.h b/cpp/src/Glacier/ClientBlobject.h
index 2cab53df493..09848dae8b1 100644
--- a/cpp/src/Glacier/ClientBlobject.h
+++ b/cpp/src/Glacier/ClientBlobject.h
@@ -14,6 +14,8 @@
#include <Ice/RoutingTableF.h>
#include <Ice/Ice.h>
+#include <set>
+
namespace Glacier
{
@@ -21,7 +23,7 @@ class ClientBlobject : public Ice::Blobject
{
public:
- ClientBlobject(const Ice::CommunicatorPtr&, const IceInternal::RoutingTablePtr&);
+ ClientBlobject(const Ice::CommunicatorPtr&, const IceInternal::RoutingTablePtr&, const ::std::string&);
virtual ~ClientBlobject();
void destroy();
@@ -33,6 +35,8 @@ private:
Ice::LoggerPtr _logger;
int _traceLevel;
IceInternal::RoutingTablePtr _routingTable;
+
+ ::std::set< ::std::string> _allowCategories;
};
}
diff --git a/cpp/src/Glacier/GlacierRouter.cpp b/cpp/src/Glacier/GlacierRouter.cpp
index eb2bd8f3bad..83e2dd8dbbe 100644
--- a/cpp/src/Glacier/GlacierRouter.cpp
+++ b/cpp/src/Glacier/GlacierRouter.cpp
@@ -13,6 +13,7 @@
#include <Glacier/RouterI.h>
#include <Glacier/ClientBlobject.h>
#include <Glacier/ServerBlobject.h>
+#include <Glacier/SessionManager.h>
#include <IceUtil/Base64.h>
#include <Ice/CertificateVerifierF.h>
#include <Ice/System.h>
@@ -41,7 +42,7 @@ private:
::Ice::ObjectPtr _blobject;
};
-class Router : public Application
+class RouterApp : public Application
{
public:
@@ -87,7 +88,7 @@ Glacier::ServantLocator::deactivate()
}
void
-Glacier::Router::usage()
+Glacier::RouterApp::usage()
{
cerr << "Usage: " << appName() << " [options]\n";
cerr <<
@@ -98,7 +99,7 @@ Glacier::Router::usage()
}
int
-Glacier::Router::run(int argc, char* argv[])
+Glacier::RouterApp::run(int argc, char* argv[])
{
for (int i = 1; i < argc; ++i)
{
@@ -159,7 +160,7 @@ Glacier::Router::run(int argc, char* argv[])
//
// Initialize the client object adapter.
//
- const char* clientEndpointsProperty = "Glacier.Client.Endpoints";
+ const char* clientEndpointsProperty = "Glacier.Router.Client.Endpoints";
string clientEndpoints = properties->getProperty(clientEndpointsProperty);
if (clientEndpoints.empty())
{
@@ -172,7 +173,7 @@ Glacier::Router::run(int argc, char* argv[])
//
// Initialize the server object adapter.
//
- const char* serverEndpointsProperty = "Glacier.Server.Endpoints";
+ const char* serverEndpointsProperty = "Glacier.Router.Server.Endpoints";
string serverEndpoints = properties->getProperty(serverEndpointsProperty);
ObjectAdapterPtr serverAdapter;
if (!serverEndpoints.empty())
@@ -180,11 +181,14 @@ Glacier::Router::run(int argc, char* argv[])
serverAdapter = communicator()->createObjectAdapterFromProperty("Server", serverEndpointsProperty);
}
+ const char* allowCategoriesProperty = "Glacier.Router.AllowCategories";
+ string allowCategories = properties->getProperty(allowCategoriesProperty);
+
//
// Create the client and server blobjects and the associated
// servant locators.
//
- ObjectPtr clientBlobject = new ClientBlobject(communicator(), routingTable);
+ ObjectPtr clientBlobject = new ClientBlobject(communicator(), routingTable, allowCategories);
Ice::ServantLocatorPtr clientServantLocator = new Glacier::ServantLocator(clientBlobject);
clientAdapter->addServantLocator(clientServantLocator, "");
if (serverAdapter)
@@ -204,15 +208,25 @@ Glacier::Router::run(int argc, char* argv[])
cerr << appName() << ": property `" << routerEndpointsProperty << "' is not set" << endl;
return EXIT_FAILURE;
}
+
const char* routerIdentityProperty = "Glacier.Router.Identity";
- string routerIdentity = properties->getProperty(routerIdentityProperty);
- if (routerIdentity.empty())
+ string routerIdentity = properties->getPropertyWithDefault(routerIdentityProperty, "Glacier/router");
+
+ const char* sessionManagerProperty = "Glacier.Router.SessionManager";
+ string sessionManager = properties->getProperty(sessionManagerProperty);
+
+ SessionManagerPrx sessionManagerPrx;
+ if (!sessionManager.empty())
{
- routerIdentity = "Glacier/router";
+ sessionManagerPrx = SessionManagerPrx::checkedCast(communicator()->stringToProxy(sessionManager));
}
+
+ const char* userIdProperty = "Glacier.Router.UserId";
+ string userId = properties->getProperty(userIdProperty);
+
ObjectAdapterPtr routerAdapter =
communicator()->createObjectAdapterFromProperty("Router", routerEndpointsProperty);
- RouterPtr router = new RouterI(clientAdapter, serverAdapter, routingTable);
+ RouterPtr router = new RouterI(clientAdapter, serverAdapter, routingTable, sessionManagerPrx, userId);
routerAdapter->add(router, stringToIdentity(routerIdentity));
#ifndef _WIN32
@@ -290,6 +304,6 @@ main(int argc, char* argv[])
}
defaultProperties->setProperty("Ice.DefaultRouter", "");
- Glacier::Router app;
+ Glacier::RouterApp app;
return app.main(argc, argv);
}
diff --git a/cpp/src/Glacier/GlacierStarter.cpp b/cpp/src/Glacier/GlacierStarter.cpp
index cddb35541b3..72a62255d84 100644
--- a/cpp/src/Glacier/GlacierStarter.cpp
+++ b/cpp/src/Glacier/GlacierStarter.cpp
@@ -13,7 +13,7 @@
#endif
#include <Ice/Application.h>
-#include <Glacier/GlacierI.h>
+#include <Glacier/StarterI.h>
#include <signal.h>
#include <sys/wait.h>
#include <fstream>
@@ -24,7 +24,7 @@ using namespace Ice;
namespace Glacier
{
-class Router : public Application
+class RouterApp : public Application
{
public:
@@ -35,7 +35,7 @@ public:
};
void
-Glacier::Router::usage()
+Glacier::RouterApp::usage()
{
cerr << "Usage: " << appName() << " [options]\n";
cerr <<
@@ -46,7 +46,7 @@ Glacier::Router::usage()
}
int
-Glacier::Router::run(int argc, char* argv[])
+Glacier::RouterApp::run(int argc, char* argv[])
{
for (int i = 1; i < argc; ++i)
{
@@ -88,7 +88,6 @@ Glacier::Router::run(int argc, char* argv[])
//
string verifierProperty = properties->getProperty("Glacier.Starter.PasswordVerifier");
PasswordVerifierPrx verifier;
- PasswordVerifierPtr verifierImpl;
if (!verifierProperty.empty())
{
verifier = PasswordVerifierPrx::checkedCast(communicator()->stringToProxy(verifierProperty));
@@ -133,7 +132,7 @@ Glacier::Router::run(int argc, char* argv[])
passwords.insert(make_pair(userId, password));
}
- verifierImpl = new CryptPasswordVerifierI(passwords);
+ PasswordVerifierPtr verifierImpl = new CryptPasswordVerifierI(passwords);
verifier = PasswordVerifierPrx::uncheckedCast(adapter->addWithUUID(verifierImpl));
}
@@ -152,24 +151,11 @@ Glacier::Router::run(int argc, char* argv[])
ignoreInterrupt();
//
- // Destroy the starter and the password verifier.
+ // Destroy the starter.
//
StarterI* st = dynamic_cast<StarterI*>(starter.get());
assert(st);
st->destroy();
- if (verifierImpl)
- {
- //
- // Can't use proxy to shutdown if the verifier is collocated,
- // since the object adapter is already shut down at this
- // point. Thus I have to use the implementation.
- //
- verifierImpl->destroy();
- }
- else
- {
- verifier->destroy();
- }
return EXIT_SUCCESS;
}
@@ -211,6 +197,6 @@ main(int argc, char* argv[])
}
defaultProperties->setProperty("Ice.DefaultRouter", "");
- Glacier::Router app;
+ Glacier::RouterApp app;
return app.main(argc, argv);
}
diff --git a/cpp/src/Glacier/Makefile b/cpp/src/Glacier/Makefile
index dc426d8540b..bd45fc05715 100644
--- a/cpp/src/Glacier/Makefile
+++ b/cpp/src/Glacier/Makefile
@@ -16,12 +16,15 @@ VERSIONED_BASE = $(BASE).$(VERSION)
NAME = $(top_srcdir)/lib/$(BASE)
VERSIONED_NAME = $(top_srcdir)/lib/$(VERSIONED_BASE)
-ROUTER = $(top_srcdir)/bin/glacier
+ROUTER = $(top_srcdir)/bin/glacierrouter
STARTER = $(top_srcdir)/bin/glacierstarter
TARGETS = $(NAME) $(VERSIONED_NAME) $(ROUTER) $(STARTER)
-OBJS = Glacier.o
+OBJS = Starter.o \
+ Router.o \
+ Session.o \
+ SessionManager.o
ROBJS = GlacierRouter.o \
RouterI.o \
@@ -29,7 +32,7 @@ ROBJS = GlacierRouter.o \
ServerBlobject.o
SOBJS = GlacierStarter.o \
- GlacierI.o
+ StarterI.o
SRCS = $(OBJS:.o=.cpp) \
$(ROBJS:.o=.cpp) \
@@ -53,18 +56,60 @@ $(NAME): $(VERSIONED_NAME)
$(ROUTER): $(ROBJS)
rm -f $@
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(ROBJS) $(LIBS)
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(ROBJS) -lGlacier $(LIBS)
$(STARTER): $(SOBJS)
rm -f $@
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(SOBJS) -lGlacier $(LIBS)
-$(HDIR)/Glacier.h Glacier.cpp: $(SDIR)/Glacier.ice $(SLICE2CPP)
- rm -f $(HDIR)/Glacier.h Glacier.cpp
- $(SLICECMD) $(SDIR)/Glacier.ice
- mv Glacier.h $(HDIR)
+$(HDIR)/Starter.h Starter.cpp: $(SDIR)/Starter.ice $(SLICE2CPP)
+ rm -f $(HDIR)/Starter.h Starter.cpp
+ $(SLICECMD) $(SDIR)/Starter.ice
+ mv Starter.h $(HDIR)
clean::
- rm -f $(HDIR)/Glacier.h Glacier.cpp
+ rm -f $(HDIR)/Starter.h Starter.cpp
+
+$(HDIR)/Router.h Router.cpp: $(SDIR)/Router.ice $(SLICE2CPP)
+ rm -f $(HDIR)/Router.h Router.cpp
+ $(SLICECMD) $(SDIR)/Router.ice
+ mv Router.h $(HDIR)
+
+clean::
+ rm -f $(HDIR)/Router.h Router.cpp
+
+$(HDIR)/Session.h Session.cpp: $(SDIR)/Session.ice $(SLICE2CPP)
+ rm -f $(HDIR)/Session.h Session.cpp
+ $(SLICECMD) $(SDIR)/Session.ice
+ mv Session.h $(HDIR)
+
+clean::
+ rm -f $(HDIR)/Session.h Session.cpp
+
+$(HDIR)/SessionF.h: $(SDIR)/SessionF.ice $(SLICE2CPP)
+ rm -f $(HDIR)/SessionF.h SessionF.cpp
+ $(SLICECMD) $(SDIR)/SessionF.ice
+ mv SessionF.h $(HDIR)
+ rm -f SessionF.cpp
+
+clean::
+ rm -f $(HDIR)/SessionF.h
+
+$(HDIR)/SessionManager.h SessionManager.cpp: $(SDIR)/SessionManager.ice $(SLICE2CPP)
+ rm -f $(HDIR)/SessionManager.h SessionManager.cpp
+ $(SLICECMD) $(SDIR)/SessionManager.ice
+ mv SessionManager.h $(HDIR)
+
+clean::
+ rm -f $(HDIR)/SessionManager.h SessionManager.cpp
+
+$(HDIR)/SessionManagerF.h: $(SDIR)/SessionManagerF.ice $(SLICE2CPP)
+ rm -f $(HDIR)/SessionManagerF.h SessionManagerF.cpp
+ $(SLICECMD) $(SDIR)/SessionManagerF.ice
+ mv SessionManagerF.h $(HDIR)
+ rm -f SessionManagerF.cpp
+
+clean::
+ rm -f $(HDIR)/SessionManagerF.h
include .depend
diff --git a/cpp/src/Glacier/RouterI.cpp b/cpp/src/Glacier/RouterI.cpp
index 64ef77077d1..0876787bd86 100644
--- a/cpp/src/Glacier/RouterI.cpp
+++ b/cpp/src/Glacier/RouterI.cpp
@@ -10,6 +10,8 @@
#include <Ice/RoutingTable.h>
#include <Glacier/RouterI.h>
+#include <Glacier/Session.h>
+#include <Glacier/SessionManager.h>
#include <iostream>
using namespace std;
@@ -18,14 +20,18 @@ using namespace Glacier;
Glacier::RouterI::RouterI(const ObjectAdapterPtr& clientAdapter,
const ObjectAdapterPtr& serverAdapter,
- const ::IceInternal::RoutingTablePtr& routingTable) :
+ const ::IceInternal::RoutingTablePtr& routingTable,
+ const SessionManagerPrx& sessionManager,
+ const string& userId) :
_clientAdapter(clientAdapter),
_serverAdapter(serverAdapter),
_logger(_clientAdapter->getCommunicator()->getLogger()),
- _routingTable(routingTable)
+ _routingTable(routingTable),
+ _sessionManager(sessionManager),
+ _userId(userId)
{
PropertiesPtr properties = _clientAdapter->getCommunicator()->getProperties();
- _routingTableTraceLevel = properties->getPropertyAsInt("Glacier.Trace.RoutingTable");
+ _routingTableTraceLevel = properties->getPropertyAsInt("Glacier.Router.Trace.RoutingTable");
}
Glacier::RouterI::~RouterI()
@@ -88,4 +94,28 @@ Glacier::RouterI::shutdown(const Current&)
{
assert(_routingTable);
_clientAdapter->getCommunicator()->shutdown();
+
+ IceUtil::Mutex::Lock lock(_sessionMutex);
+
+ for (list<SessionPrx>::const_iterator p = _sessions.begin(); p != _sessions.end(); ++p)
+ {
+ (*p)->stop();
+ }
+ _sessions.clear();
+}
+
+SessionPrx
+Glacier::RouterI::createSession(const Current&)
+{
+ IceUtil::Mutex::Lock lock(_sessionMutex);
+ if (!_sessionManager)
+ {
+ throw NoSessionManagerException();
+ }
+
+ SessionPrx session = _sessionManager->create(_userId);
+ _sessions.push_back(session);
+
+ return session;
}
+
diff --git a/cpp/src/Glacier/RouterI.h b/cpp/src/Glacier/RouterI.h
index bac10665669..9c38887c453 100644
--- a/cpp/src/Glacier/RouterI.h
+++ b/cpp/src/Glacier/RouterI.h
@@ -12,17 +12,23 @@
#define GLACIER_ROUTER_I_H
#include <Ice/RoutingTableF.h>
-#include <Ice/Router.h>
#include <Ice/Ice.h>
+#include <Glacier/Router.h>
+#include <Glacier/SessionManagerF.h>
+
+#include <list>
+
namespace Glacier
{
-class RouterI : public Ice::Router
+class RouterI : public Router
{
public:
- RouterI(const Ice::ObjectAdapterPtr&, const Ice::ObjectAdapterPtr&, const ::IceInternal::RoutingTablePtr&);
+ RouterI(const Ice::ObjectAdapterPtr&, const Ice::ObjectAdapterPtr&, const ::IceInternal::RoutingTablePtr&,
+ const SessionManagerPrx&, const ::std::string&);
+
virtual ~RouterI();
void destroy();
@@ -31,6 +37,7 @@ public:
virtual Ice::ObjectPrx getServerProxy(const Ice::Current&);
virtual void addProxy(const Ice::ObjectPrx&, const Ice::Current&);
virtual void shutdown(const Ice::Current&);
+ virtual SessionPrx createSession(const Ice::Current&);
private:
@@ -39,6 +46,11 @@ private:
Ice::LoggerPtr _logger;
::IceInternal::RoutingTablePtr _routingTable;
int _routingTableTraceLevel;
+
+ IceUtil::Mutex _sessionMutex;
+ SessionManagerPrx _sessionManager;
+ ::std::list<SessionPrx> _sessions;
+ ::std::string _userId;
};
}
diff --git a/cpp/src/Glacier/ServerBlobject.cpp b/cpp/src/Glacier/ServerBlobject.cpp
index 08166cca220..d2ad46a113e 100644
--- a/cpp/src/Glacier/ServerBlobject.cpp
+++ b/cpp/src/Glacier/ServerBlobject.cpp
@@ -20,7 +20,7 @@ Glacier::ServerBlobject::ServerBlobject(const ObjectAdapterPtr& clientAdapter) :
_logger(_clientAdapter->getCommunicator()->getLogger())
{
PropertiesPtr properties = _clientAdapter->getCommunicator()->getProperties();
- _traceLevel = properties->getPropertyAsInt("Glacier.Trace.Server");
+ _traceLevel = properties->getPropertyAsInt("Glacier.Router.Trace.Server");
}
Glacier::ServerBlobject::~ServerBlobject()
diff --git a/cpp/src/Glacier/GlacierI.cpp b/cpp/src/Glacier/StarterI.cpp
index c0b05257d7e..3c6cb9e014e 100644
--- a/cpp/src/Glacier/GlacierI.cpp
+++ b/cpp/src/Glacier/StarterI.cpp
@@ -14,7 +14,7 @@
#include <IceUtil/UUID.h>
#include <Ice/RSAKeyPair.h>
-#include <Glacier/GlacierI.h>
+#include <Glacier/StarterI.h>
#include <fcntl.h>
#include <shadow.h>
@@ -32,7 +32,7 @@ Glacier::StarterI::StarterI(const CommunicatorPtr& communicator, const PasswordV
{
assert(_verifier);
- _traceLevel = _properties->getPropertyAsInt("Glacier.Trace.Starter");
+ _traceLevel = _properties->getPropertyAsInt("Glacier.Starter.Trace");
// Set up the Certificate Generation context
string country = _properties->getPropertyWithDefault("Glacier.Starter.Certificate.Country", "US");
@@ -69,7 +69,7 @@ Glacier::StarterI::destroy()
_properties = 0;
}
-RouterPrx
+Glacier::RouterPrx
Glacier::StarterI::startRouter(const string& userId, const string& password, ByteSeq& privateKey, ByteSeq& publicKey,
ByteSeq& routerCert, const Current&)
{
@@ -118,7 +118,7 @@ Glacier::StarterI::startRouter(const string& userId, const string& password, Byt
//
// Start a router.
//
- string path = _properties->getPropertyWithDefault("Glacier.Starter.RouterPath", "glacier");
+ string path = _properties->getPropertyWithDefault("Glacier.Starter.RouterPath", "glacierrouter");
string uuid = IceUtil::generateUUID();
pid_t pid;
int fds[2];
@@ -178,6 +178,14 @@ Glacier::StarterI::startRouter(const string& userId, const string& password, Byt
args.push_back("--Ice.SSL.Client.Overrides.RSA.PrivateKey=" + routerPrivateKeyBase64);
args.push_back("--Ice.SSL.Client.Overrides.RSA.Certificate=" + routerCertificateBase64);
args.push_back("--Glacier.Router.AcceptCert=" + clientCertificateBase64);
+ args.push_back("--Glacier.Router.UserId=" + userId);
+
+ if (!_properties->getProperty("Glacier.Starter.AddUserToAllowCategories").empty())
+ {
+ args.push_back("--Glacier.Router.AllowCategories=" +
+ _properties->getProperty("Glacier.Router.AllowCategories") + string(" ") + userId);
+ }
+
ostringstream s;
s << "--Glacier.Router.PrintProxyOnFd=" << fds[1];
args.push_back(s.str());
diff --git a/cpp/src/Glacier/GlacierI.h b/cpp/src/Glacier/StarterI.h
index 2343e0b146d..6a5a1aa07bc 100644
--- a/cpp/src/Glacier/GlacierI.h
+++ b/cpp/src/Glacier/StarterI.h
@@ -13,7 +13,7 @@
#include <Ice/Ice.h>
#include <Ice/RSACertificateGen.h>
-#include <Glacier/Glacier.h>
+#include <Glacier/Starter.h>
namespace Glacier
{
@@ -29,12 +29,12 @@ public:
void destroy();
- Ice::RouterPrx startRouter(const std::string&,
- const std::string&,
- Ice::ByteSeq&,
- Ice::ByteSeq&,
- Ice::ByteSeq&,
- const Ice::Current&);
+ RouterPrx startRouter(const std::string&,
+ const std::string&,
+ Ice::ByteSeq&,
+ Ice::ByteSeq&,
+ Ice::ByteSeq&,
+ const Ice::Current&);
private: