summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorHelper.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-08-30 14:43:15 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-08-30 14:43:15 +0200
commitaab12cf1719b425b5a2c571b8938d47cdd71d151 (patch)
tree876561b05764721306eb8629883e7b0b9cbbc99a /cpp/src/IceGrid/DescriptorHelper.cpp
parentminor g++ warning (diff)
downloadice-aab12cf1719b425b5a2c571b8938d47cdd71d151.tar.bz2
ice-aab12cf1719b425b5a2c571b8938d47cdd71d151.tar.xz
ice-aab12cf1719b425b5a2c571b8938d47cdd71d151.zip
ICE-4774: Merged skype_props enhancement
Diffstat (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.cpp45
1 files changed, 29 insertions, 16 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp
index 67467f280f9..ce9a74810e6 100644
--- a/cpp/src/IceGrid/DescriptorHelper.cpp
+++ b/cpp/src/IceGrid/DescriptorHelper.cpp
@@ -915,8 +915,8 @@ Resolver::checkReserved(const string& type, const map<string, string>& values) c
}
}
-CommunicatorHelper::CommunicatorHelper(const CommunicatorDescriptorPtr& desc) :
- _desc(desc)
+CommunicatorHelper::CommunicatorHelper(const CommunicatorDescriptorPtr& desc, bool ignoreProps) :
+ _desc(desc), _ignoreProps(ignoreProps)
{
}
@@ -939,9 +939,12 @@ CommunicatorHelper::operator==(const CommunicatorHelper& helper) const
return false;
}
- if(_desc->propertySet != helper._desc->propertySet)
+ if(!_ignoreProps)
{
- return false;
+ if(_desc->propertySet != helper._desc->propertySet)
+ {
+ return false;
+ }
}
if(set<DbEnvDescriptor>(_desc->dbEnvs.begin(), _desc->dbEnvs.end()) !=
@@ -1206,8 +1209,8 @@ CommunicatorHelper::getProperty(const string& name) const
return IceGrid::getProperty(_desc->propertySet.properties, name);
}
-ServiceHelper::ServiceHelper(const ServiceDescriptorPtr& descriptor) :
- CommunicatorHelper(descriptor),
+ServiceHelper::ServiceHelper(const ServiceDescriptorPtr& descriptor, bool ignoreProps) :
+ CommunicatorHelper(descriptor, ignoreProps),
_desc(descriptor)
{
}
@@ -1284,8 +1287,8 @@ ServiceHelper::print(const Ice::CommunicatorPtr& communicator, Output& out) cons
out << eb;
}
-ServerHelper::ServerHelper(const ServerDescriptorPtr& descriptor) :
- CommunicatorHelper(descriptor),
+ServerHelper::ServerHelper(const ServerDescriptorPtr& descriptor, bool ignoreProps) :
+ CommunicatorHelper(descriptor, ignoreProps),
_desc(descriptor)
{
}
@@ -1504,13 +1507,13 @@ ServerHelper::instantiateImpl(const ServerDescriptorPtr& instance,
instance->propertySet.properties.insert(instance->propertySet.properties.end(), props.begin(), props.end());
}
-IceBoxHelper::IceBoxHelper(const IceBoxDescriptorPtr& descriptor) :
- ServerHelper(descriptor),
+IceBoxHelper::IceBoxHelper(const IceBoxDescriptorPtr& descriptor, bool ignoreProps) :
+ ServerHelper(descriptor, ignoreProps),
_desc(descriptor)
{
for(ServiceInstanceDescriptorSeq::const_iterator p = _desc->services.begin(); p != _desc->services.end(); ++p)
{
- _services.push_back(ServiceInstanceHelper(*p));
+ _services.push_back(ServiceInstanceHelper(*p, ignoreProps));
}
}
@@ -1671,7 +1674,7 @@ InstanceHelper::instantiateParams(const Resolver& resolve,
return params;
}
-ServiceInstanceHelper::ServiceInstanceHelper(const ServiceInstanceDescriptor& desc) :
+ServiceInstanceHelper::ServiceInstanceHelper(const ServiceInstanceDescriptor& desc, bool ignoreProps) :
_def(desc)
{
//
@@ -1686,7 +1689,7 @@ ServiceInstanceHelper::ServiceInstanceHelper(const ServiceInstanceDescriptor& de
if(_def.descriptor)
{
- _service = ServiceHelper(_def.descriptor);
+ _service = ServiceHelper(_def.descriptor, ignoreProps);
}
}
@@ -3153,17 +3156,17 @@ ApplicationHelper::printDiff(Output& out, const ApplicationHelper& helper) const
}
bool
-IceGrid::descriptorEqual(const ServerDescriptorPtr& lhs, const ServerDescriptorPtr& rhs)
+IceGrid::descriptorEqual(const ServerDescriptorPtr& lhs, const ServerDescriptorPtr& rhs, bool ignoreProps)
{
IceBoxDescriptorPtr lhsIceBox = IceBoxDescriptorPtr::dynamicCast(lhs);
IceBoxDescriptorPtr rhsIceBox = IceBoxDescriptorPtr::dynamicCast(rhs);
if(lhsIceBox && rhsIceBox)
{
- return IceBoxHelper(lhsIceBox) == IceBoxHelper(rhsIceBox);
+ return IceBoxHelper(lhsIceBox, ignoreProps) == IceBoxHelper(rhsIceBox, ignoreProps);
}
else if(!lhsIceBox && !rhsIceBox)
{
- return ServerHelper(lhs) == ServerHelper(rhs);
+ return ServerHelper(lhs, ignoreProps) == ServerHelper(rhs, ignoreProps);
}
else
{
@@ -3184,3 +3187,13 @@ IceGrid::createHelper(const ServerDescriptorPtr& desc)
return new ServerHelper(desc);
}
}
+
+bool
+IceGrid::isServerUpdated(const ServerInfo& lhs, const ServerInfo& rhs, bool ignoreProps)
+{
+ if(lhs.node != rhs.node)
+ {
+ return true;
+ }
+ return !descriptorEqual(lhs.descriptor, rhs.descriptor, ignoreProps);
+}