summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/AdminCallbackRouter.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2012-08-14 00:05:17 +0200
committerJose <jose@zeroc.com>2012-08-14 00:05:17 +0200
commitb3a890faf5841289df3299bac6ada7120b324c16 (patch)
treeeacdb167a4d1e6310bfd49827f90fb2ddf2c144a /cpp/src/IceGrid/AdminCallbackRouter.cpp
parentmissing filter properties (diff)
downloadice-b3a890faf5841289df3299bac6ada7120b324c16.tar.bz2
ice-b3a890faf5841289df3299bac6ada7120b324c16.tar.xz
ice-b3a890faf5841289df3299bac6ada7120b324c16.zip
ICE-4809 - AMI metadata in Ice services internal definitions
Diffstat (limited to 'cpp/src/IceGrid/AdminCallbackRouter.cpp')
-rw-r--r--cpp/src/IceGrid/AdminCallbackRouter.cpp40
1 files changed, 15 insertions, 25 deletions
diff --git a/cpp/src/IceGrid/AdminCallbackRouter.cpp b/cpp/src/IceGrid/AdminCallbackRouter.cpp
index 2fc00ab89c9..bb68190a233 100644
--- a/cpp/src/IceGrid/AdminCallbackRouter.cpp
+++ b/cpp/src/IceGrid/AdminCallbackRouter.cpp
@@ -12,35 +12,20 @@
using namespace Ice;
using namespace std;
-namespace
+void
+IceGrid::AdminCallbackRouter::invokeResponse(bool ok, const std::pair<const Byte*, const Byte*>& outParams,
+ const InvokeCookiePtr& cookie)
{
+ cookie->cb()->ice_response(ok, outParams);
+}
-class InvokeAMICallback : public AMI_Array_Object_ice_invoke
+void
+IceGrid::AdminCallbackRouter::invokeException(const Ice::Exception&, const InvokeCookiePtr& cookie)
{
-public:
-
- InvokeAMICallback(const AMD_Object_ice_invokePtr& cb) :
- _cb(cb)
- {
- }
-
- virtual void ice_response(bool ok, const std::pair<const Byte*, const Byte*>& outParams)
- {
- _cb->ice_response(ok, outParams);
- }
-
- virtual void ice_exception(const Ice::Exception&)
- {
- _cb->ice_exception(ObjectNotExistException(__FILE__, __LINE__)); // Callback object is unreachable.
- }
-
-private:
- AMD_Object_ice_invokePtr _cb;
-};
-
+ // Callback object is unreachable.
+ cookie->cb()->ice_exception(ObjectNotExistException(__FILE__, __LINE__));
}
-
void
IceGrid::AdminCallbackRouter::addMapping(const string& category, const ConnectionPtr& con)
{
@@ -92,6 +77,11 @@ IceGrid::AdminCallbackRouter::ice_invoke_async(const AMD_Object_ice_invokePtr& c
//
// Call with AMI
//
- target->ice_invoke_async(new InvokeAMICallback(cb), current.operation, current.mode, inParams, current.ctx);
+ target->begin_ice_invoke(current.operation, current.mode, inParams, current.ctx,
+ newCallback_Object_ice_invoke(
+ this,
+ &AdminCallbackRouter::invokeResponse,
+ &AdminCallbackRouter::invokeException),
+ new InvokeCookie(cb));
}