summaryrefslogtreecommitdiff
path: root/cpp/demo/IceGrid/customLoadBalancing/RegistryPlugin.cpp
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
commit9b7668c7c92cf9cb311fe444cdddb489cd2a219d (patch)
tree5016567c58c81f5654e9d01935e199c6bf4761d2 /cpp/demo/IceGrid/customLoadBalancing/RegistryPlugin.cpp
parentVS add-in & build updates: (diff)
downloadice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.bz2
ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.xz
ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.zip
Removed demos.
Moved demoscript to distribution.
Diffstat (limited to 'cpp/demo/IceGrid/customLoadBalancing/RegistryPlugin.cpp')
-rw-r--r--cpp/demo/IceGrid/customLoadBalancing/RegistryPlugin.cpp115
1 files changed, 0 insertions, 115 deletions
diff --git a/cpp/demo/IceGrid/customLoadBalancing/RegistryPlugin.cpp b/cpp/demo/IceGrid/customLoadBalancing/RegistryPlugin.cpp
deleted file mode 100644
index c902a9a3109..00000000000
--- a/cpp/demo/IceGrid/customLoadBalancing/RegistryPlugin.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 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 <Ice/Ice.h>
-#include <IceGrid/IceGrid.h>
-
-using namespace std;
-using namespace IceGrid;
-
-namespace
-{
-
-class RegistryPluginI : public Ice::Plugin
-{
-public:
-
- RegistryPluginI(const Ice::CommunicatorPtr&);
-
- virtual void initialize();
- virtual void destroy();
-
-private:
-
- // Required to prevent compiler warnings with MSVC++
- RegistryPluginI& operator=(const RegistryPluginI&);
-
- const Ice::CommunicatorPtr _communicator;
-};
-
-class ReplicaGroupFilterI : public IceGrid::ReplicaGroupFilter
-{
-public:
-
- ReplicaGroupFilterI(const RegistryPluginFacadePtr&);
-
- virtual Ice::StringSeq filter(const string&, const Ice::StringSeq&, const Ice::ConnectionPtr&, const Ice::Context&);
-
-private:
-
- RegistryPluginFacadePtr _facade;
-};
-
-}
-
-//
-extern "C"
-{
-
-ICE_DECLSPEC_EXPORT Ice::Plugin*
-createRegistryPlugin(const Ice::CommunicatorPtr& communicator, const string&, const Ice::StringSeq&)
-{
- return new RegistryPluginI(communicator);
-}
-
-}
-
-RegistryPluginI::RegistryPluginI(const Ice::CommunicatorPtr& communicator) : _communicator(communicator)
-{
-}
-
-void
-RegistryPluginI::initialize()
-{
- IceGrid::RegistryPluginFacadePtr facade = IceGrid::getRegistryPluginFacade();
- if(facade)
- {
- facade->addReplicaGroupFilter("filterByCurrency", new ReplicaGroupFilterI(facade));
- }
-}
-
-void
-RegistryPluginI::destroy()
-{
-}
-
-ReplicaGroupFilterI::ReplicaGroupFilterI(const IceGrid::RegistryPluginFacadePtr& facade) : _facade(facade)
-{
-}
-
-Ice::StringSeq
-ReplicaGroupFilterI::filter(const string& /* replicaGroupId */,
- const Ice::StringSeq& adapters,
- const Ice::ConnectionPtr&,
- const Ice::Context& ctx)
-{
- Ice::Context::const_iterator p = ctx.find("currency");
- if(p == ctx.end())
- {
- return adapters;
- }
-
- string currency = p->second;
-
- //
- // Get the Currencies property value from the server descriptor
- // that owns the adapter and only keep adapters for servers that
- // are configured with the currency specified in the client
- // context.
- //
- Ice::StringSeq filteredAdapters;
- for(Ice::StringSeq::const_iterator q = adapters.begin(); q != adapters.end(); ++q)
- {
- if(_facade->getPropertyForAdapter(*q, "Currencies").find(currency) != string::npos)
- {
- filteredAdapters.push_back(*q);
- }
- }
- return filteredAdapters;
-}