diff options
author | Bernard Normier <bernard@zeroc.com> | 2007-11-30 11:01:12 -0500 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2007-11-30 11:01:12 -0500 |
commit | 8844c4b9cc5321fdfb537820fd0c7517756189bd (patch) | |
tree | aab20f66038f27ac96656f6715d10805bd58874c /cpp/src/IceGrid/AdminCallbackRouter.h | |
parent | Fixed various bugs (diff) | |
download | ice-8844c4b9cc5321fdfb537820fd0c7517756189bd.tar.bz2 ice-8844c4b9cc5321fdfb537820fd0c7517756189bd.tar.xz ice-8844c4b9cc5321fdfb537820fd0c7517756189bd.zip |
Implemented service observers
Diffstat (limited to 'cpp/src/IceGrid/AdminCallbackRouter.h')
-rw-r--r-- | cpp/src/IceGrid/AdminCallbackRouter.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/AdminCallbackRouter.h b/cpp/src/IceGrid/AdminCallbackRouter.h new file mode 100644 index 00000000000..1b094744e35 --- /dev/null +++ b/cpp/src/IceGrid/AdminCallbackRouter.h @@ -0,0 +1,45 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 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. +// +// ********************************************************************** + +#ifndef ICE_GRID_ADMIN_CALLBACK_ROUTER_H +#define ICE_GRID_ADMIN_CALLBACK_ROUTER_H + +#include <Ice/Ice.h> +#include <IceUtil/IceUtil.h> +#include <map> + +namespace IceGrid +{ + +// +// The AdminCallbackRouter routes callbacks from the servers, nodes etc. to the +// admin clients using the admin-client => registry connection. +// + +class AdminCallbackRouter : public Ice::BlobjectArrayAsync +{ +public: + + void addMapping(const std::string&, const Ice::ConnectionPtr&); + void removeMapping(const std::string&); + + + virtual void ice_invoke_async(const Ice::AMD_Array_Object_ice_invokePtr&, + const std::pair<const Ice::Byte*, const Ice::Byte*>&, + const Ice::Current&); + +private: + + IceUtil::Mutex _mutex; + std::map<std::string, Ice::ConnectionPtr> _categoryToConnection; +}; + +typedef IceUtil::Handle<AdminCallbackRouter> AdminCallbackRouterPtr; +} +#endif |