summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2004-11-08 17:18:51 +0000
committerMarc Laukien <marc@zeroc.com>2004-11-08 17:18:51 +0000
commit24f2fe88b4544fc4c3801ec52a4caf0c31cd567f (patch)
treee801354641dd21c8fba0a6a0d4c6a880a7b666b6 /cpp/src
parentmake depend. (diff)
downloadice-24f2fe88b4544fc4c3801ec52a4caf0c31cd567f.tar.bz2
ice-24f2fe88b4544fc4c3801ec52a4caf0c31cd567f.tar.xz
ice-24f2fe88b4544fc4c3801ec52a4caf0c31cd567f.zip
added shutdown function to glacier2
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Glacier2/Glacier2Router.cpp45
-rw-r--r--cpp/src/Glacier2/Makefile2
-rwxr-xr-xcpp/src/Glacier2/glacier2.dsp24
-rw-r--r--cpp/src/Ice/PropertiesI.cpp2
4 files changed, 60 insertions, 13 deletions
diff --git a/cpp/src/Glacier2/Glacier2Router.cpp b/cpp/src/Glacier2/Glacier2Router.cpp
index 4bc5cd07464..fa031520851 100644
--- a/cpp/src/Glacier2/Glacier2Router.cpp
+++ b/cpp/src/Glacier2/Glacier2Router.cpp
@@ -20,6 +20,26 @@ using namespace Glacier2;
namespace Glacier2
{
+class AdminI : public Admin
+{
+public:
+
+ AdminI(const CommunicatorPtr& communicator) :
+ _communicator(communicator)
+ {
+ }
+
+ virtual void
+ shutdown(const Current&)
+ {
+ _communicator->shutdown();
+ }
+
+private:
+
+ const CommunicatorPtr _communicator;
+};
+
class RouterService : public Service
{
public:
@@ -93,6 +113,17 @@ Glacier2::RouterService::start(int argc, char* argv[])
}
//
+ // Initialize the admin object adapter only if admin endpoints
+ // are defined.
+ //
+ const char* adminEndpointsProperty = "Glacier2.Admin.Endpoints";
+ ObjectAdapterPtr adminAdapter;
+ if(!properties->getProperty(adminEndpointsProperty).empty())
+ {
+ adminAdapter = communicator()->createObjectAdapter("Glacier2.Admin");
+ }
+
+ //
// Get the permissions verifier, or create a default one if no
// verifier is specified.
//
@@ -176,6 +207,16 @@ Glacier2::RouterService::start(int argc, char* argv[])
_sessionRouter = new SessionRouterI(clientAdapter, serverAdapter, verifier, sessionManager);
//
+ // If we have an admin adapter, we add an admin object.
+ //
+ if(adminAdapter)
+ {
+ const char* adminIdProperty = "Glacier2.AdminIdentity";
+ Identity adminId = stringToIdentity(properties->getPropertyWithDefault(adminIdProperty, "Glacier2/admin"));
+ adminAdapter->add(new AdminI(communicator()), adminId);
+ }
+
+ //
// Everything ok, let's go.
//
clientAdapter->activate();
@@ -183,6 +224,10 @@ Glacier2::RouterService::start(int argc, char* argv[])
{
serverAdapter->activate();
}
+ if(adminAdapter)
+ {
+ adminAdapter->activate();
+ }
return true;
}
diff --git a/cpp/src/Glacier2/Makefile b/cpp/src/Glacier2/Makefile
index a9390c0ec7b..c172448031a 100644
--- a/cpp/src/Glacier2/Makefile
+++ b/cpp/src/Glacier2/Makefile
@@ -47,7 +47,7 @@ SDIR = $(slicedir)/Glacier2
include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I.. $(CPPFLAGS) -DGLACIER2_API_EXPORTS $(OPENSSL_FLAGS)
-SLICE2CPPFLAGS := --checksum --include-dir Glacier2 --dll-export GLACIER2_API $(SLICE2CPPFLAGS)
+SLICE2CPPFLAGS := --include-dir Glacier2 --dll-export GLACIER2_API $(SLICE2CPPFLAGS)
LINKWITH := -lIce -lIceUtil
$(libdir)/$(LIBFILENAME): $(OBJS)
diff --git a/cpp/src/Glacier2/glacier2.dsp b/cpp/src/Glacier2/glacier2.dsp
index 8b9e11a7791..87c28e13c3b 100755
--- a/cpp/src/Glacier2/glacier2.dsp
+++ b/cpp/src/Glacier2/glacier2.dsp
@@ -159,7 +159,7 @@ USERDEP__PERMI="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
InputPath=..\..\slice\Glacier2\PermissionsVerifier.ice
BuildCmds= \
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifier.ice \
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifier.ice \
move PermissionsVerifier.h ..\..\include\Glacier2 \
@@ -177,7 +177,7 @@ USERDEP__PERMI="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
InputPath=..\..\slice\Glacier2\PermissionsVerifier.ice
BuildCmds= \
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifier.ice \
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifier.ice \
move PermissionsVerifier.h ..\..\include\Glacier2 \
@@ -202,7 +202,7 @@ USERDEP__PERMIS="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
InputPath=..\..\slice\Glacier2\PermissionsVerifierF.ice
"..\..\include\Glacier2\PermissionsVerifierF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifierF.ice
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifierF.ice
move PermissionsVerifierF.h ..\..\include\Glacier2
del PermissionsVerifierF.cpp
@@ -215,7 +215,7 @@ USERDEP__PERMIS="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
InputPath=..\..\slice\Glacier2\PermissionsVerifierF.ice
"..\..\include\Glacier2\PermissionsVerifierF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifierF.ice
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/PermissionsVerifierF.ice
move PermissionsVerifierF.h ..\..\include\Glacier2
del PermissionsVerifierF.cpp
@@ -235,7 +235,7 @@ USERDEP__PERMI="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
InputPath=..\..\slice\Glacier2\Session.ice
BuildCmds= \
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/Session.ice \
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/Session.ice \
move Session.h ..\..\include\Glacier2 \
@@ -253,7 +253,7 @@ USERDEP__PERMI="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
InputPath=..\..\slice\Glacier2\Session.ice
BuildCmds= \
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/Session.ice \
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/Session.ice \
move Session.h ..\..\include\Glacier2 \
@@ -278,7 +278,7 @@ USERDEP__PERMIS="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
InputPath=..\..\slice\Glacier2\SessionF.ice
"..\..\include\Glacier2\SessionF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/SessionF.ice
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/SessionF.ice
move SessionF.h ..\..\include\Glacier2
del SessionF.cpp
@@ -291,7 +291,7 @@ USERDEP__PERMIS="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
InputPath=..\..\slice\Glacier2\SessionF.ice
"..\..\include\Glacier2\SessionF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/SessionF.ice
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/SessionF.ice
move SessionF.h ..\..\include\Glacier2
del SessionF.cpp
@@ -311,7 +311,7 @@ USERDEP__ROUTE="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
InputPath=..\..\slice\Glacier2\Router.ice
BuildCmds= \
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/Router.ice \
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/Router.ice \
move Router.h ..\..\include\Glacier2 \
@@ -329,7 +329,7 @@ USERDEP__ROUTE="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
InputPath=..\..\slice\Glacier2\Router.ice
BuildCmds= \
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/Router.ice \
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/Router.ice \
move Router.h ..\..\include\Glacier2 \
@@ -354,7 +354,7 @@ USERDEP__ROUTER="..\..\bin\slice2cpp.exe" "..\..\lib\slice.lib"
InputPath=..\..\slice\Glacier2\RouterF.ice
"..\..\include\Glacier2\RouterF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/RouterF.ice
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/RouterF.ice
move RouterF.h ..\..\include\Glacier2
del RouterF.cpp
@@ -367,7 +367,7 @@ USERDEP__ROUTER="..\..\bin\slice2cpp.exe" "..\..\lib\sliced.lib"
InputPath=..\..\slice\Glacier2\RouterF.ice
"..\..\include\Glacier2\RouterF.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- ..\..\bin\slice2cpp.exe --checksum --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/RouterF.ice
+ ..\..\bin\slice2cpp.exe --dll-export GLACIER2_API --include-dir Glacier2 -I../../slice ../../slice/Glacier2/RouterF.ice
move RouterF.h ..\..\include\Glacier2
del RouterF.cpp
diff --git a/cpp/src/Ice/PropertiesI.cpp b/cpp/src/Ice/PropertiesI.cpp
index 9f760d433ca..32fa2fadf95 100644
--- a/cpp/src/Ice/PropertiesI.cpp
+++ b/cpp/src/Ice/PropertiesI.cpp
@@ -341,6 +341,8 @@ static const string glacierProps[] =
static const string glacier2Props[] =
{
+ "Admin.Endpoints",
+ "AdminIdentity",
"Client.AlwaysBatch",
"Client.Endpoints",
"Client.ForwardContext",