summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeServerAdminRouter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/NodeServerAdminRouter.cpp')
-rw-r--r--cpp/src/IceGrid/NodeServerAdminRouter.cpp93
1 files changed, 0 insertions, 93 deletions
diff --git a/cpp/src/IceGrid/NodeServerAdminRouter.cpp b/cpp/src/IceGrid/NodeServerAdminRouter.cpp
deleted file mode 100644
index b17b93fed09..00000000000
--- a/cpp/src/IceGrid/NodeServerAdminRouter.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2014 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.
-//
-// **********************************************************************
-
-#include <IceGrid/NodeServerAdminRouter.h>
-#include <Ice/Ice.h>
-#include <IceGrid/ServerI.h>
-#include <IceGrid/ServerAdapterI.h>
-
-using namespace IceGrid;
-using namespace Ice;
-using namespace std;
-
-namespace
-{
-
-class InvokeAMICallback : public AMI_Array_Object_ice_invoke
-{
-public:
-
- InvokeAMICallback(const AMD_Object_ice_invokePtr& cb) :
- _cb(cb)
- {
- }
-
- virtual void ice_response(bool ok, const pair<const Byte*, const Byte*>& outParams)
- {
- _cb->ice_response(ok, outParams);
- }
-
- virtual void ice_exception(const Ice::Exception&)
- {
- _cb->ice_exception(ObjectNotExistException(__FILE__, __LINE__)); // Server admin object is unreachable
- }
-
-private:
- AMD_Object_ice_invokePtr _cb;
-};
-
-}
-
-IceGrid::NodeServerAdminRouter::NodeServerAdminRouter(const NodeIPtr& node) :
- _node(node)
-{
-}
-
-void
-IceGrid::NodeServerAdminRouter::ice_invoke_async(const AMD_Object_ice_invokePtr& cb,
- const pair<const Byte*, const Byte*>& inParams,
- const Current& current)
-{
-
- //
- // First, get the ServerI servant
- //
- Identity serverId = _node->createServerIdentity(current.id.name);
- ServerIPtr server = ServerIPtr::dynamicCast(_node->getAdapter()->find(serverId));
- if(server == 0)
- {
- throw ObjectNotExistException(__FILE__, __LINE__);
- }
-
- //
- // Then get a proxy to the Process facet of the real admin object
- //
- ObjectPrx target = server->getProcess();
-
- if(target == 0)
- {
- throw ObjectNotExistException(__FILE__, __LINE__);
- }
-
- //
- // If this is a legacy Process proxy with no facet, we keep target as is
- //
- if(current.facet != "Process")
- {
- //
- // Set the facet
- //
- target = target->ice_facet(current.facet);
- }
-
- //
- // Call with AMI
- //
- target->ice_invoke_async(new InvokeAMICallback(cb), current.operation, current.mode, inParams, current.ctx);
-}