summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/DescriptorBuilder.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorBuilder.cpp116
1 files changed, 26 insertions, 90 deletions
diff --git a/cpp/src/IceGrid/DescriptorBuilder.cpp b/cpp/src/IceGrid/DescriptorBuilder.cpp
index 472af859692..f96619368c0 100644
--- a/cpp/src/IceGrid/DescriptorBuilder.cpp
+++ b/cpp/src/IceGrid/DescriptorBuilder.cpp
@@ -13,7 +13,7 @@ using namespace std;
using namespace IceGrid;
XmlAttributesHelper::XmlAttributesHelper(const IceXML::Attributes& attrs,
- const Ice::LoggerPtr& logger,
+ const shared_ptr<Ice::Logger>& logger,
const string& filename,
int line) :
_attributes(attrs),
@@ -215,7 +215,7 @@ PropertySetDescriptorBuilder::finish()
return true;
}
-ApplicationDescriptorBuilder::ApplicationDescriptorBuilder(const Ice::CommunicatorPtr& communicator,
+ApplicationDescriptorBuilder::ApplicationDescriptorBuilder(const shared_ptr<Ice::Communicator>& communicator,
const XmlAttributesHelper& attrs,
const map<string, string>& overrides) :
_communicator(communicator),
@@ -225,7 +225,7 @@ ApplicationDescriptorBuilder::ApplicationDescriptorBuilder(const Ice::Communicat
_descriptor.variables = overrides;
}
-ApplicationDescriptorBuilder::ApplicationDescriptorBuilder(const Ice::CommunicatorPtr& communicator,
+ApplicationDescriptorBuilder::ApplicationDescriptorBuilder(const shared_ptr<Ice::Communicator>& communicator,
const ApplicationDescriptor& app,
const XmlAttributesHelper& attrs,
const map<string, string>& overrides) :
@@ -264,7 +264,7 @@ ApplicationDescriptorBuilder::finishReplicaGroup()
{
if(!_descriptor.replicaGroups.back().loadBalancing)
{
- _descriptor.replicaGroups.back().loadBalancing = new RandomLoadBalancingPolicy();
+ _descriptor.replicaGroups.back().loadBalancing = make_shared<RandomLoadBalancingPolicy>();
_descriptor.replicaGroups.back().loadBalancing->nReplicas = "0";
}
}
@@ -272,23 +272,23 @@ ApplicationDescriptorBuilder::finishReplicaGroup()
void
ApplicationDescriptorBuilder::setLoadBalancing(const XmlAttributesHelper& attrs)
{
- LoadBalancingPolicyPtr policy;
+ shared_ptr<LoadBalancingPolicy> policy;
string type = attrs("type");
if(type == "random")
{
- policy = new RandomLoadBalancingPolicy();
+ policy = make_shared<RandomLoadBalancingPolicy>();
}
else if(type == "ordered")
{
- policy = new OrderedLoadBalancingPolicy();
+ policy = make_shared<OrderedLoadBalancingPolicy>();
}
else if(type == "round-robin")
{
- policy = new RoundRobinLoadBalancingPolicy();
+ policy = make_shared<RoundRobinLoadBalancingPolicy>();
}
else if(type == "adaptive")
{
- AdaptiveLoadBalancingPolicyPtr alb = new AdaptiveLoadBalancingPolicy();
+ auto alb = make_shared<AdaptiveLoadBalancingPolicy>();
alb->loadSample = attrs("load-sample", "1");
policy = alb;
}
@@ -498,7 +498,7 @@ NodeDescriptorBuilder::addServerInstance(const ServerInstanceDescriptor& desc)
}
void
-NodeDescriptorBuilder::addServer(const ServerDescriptorPtr& server)
+NodeDescriptorBuilder::addServer(const shared_ptr<ServerDescriptor>& server)
{
_descriptor.servers.push_back(server);
}
@@ -544,7 +544,7 @@ TemplateDescriptorBuilder::addParameter(const XmlAttributesHelper& attrs)
}
void
-TemplateDescriptorBuilder::setDescriptor(const CommunicatorDescriptorPtr& desc)
+TemplateDescriptorBuilder::setDescriptor(const shared_ptr<CommunicatorDescriptor>& desc)
{
_descriptor.descriptor = desc;
}
@@ -579,13 +579,13 @@ TemplateDescriptorBuilder::createService(const XmlAttributesHelper& attrs)
return new ServiceDescriptorBuilder(_application.getCommunicator(), attrs);
}
-CommunicatorDescriptorBuilder::CommunicatorDescriptorBuilder(const Ice::CommunicatorPtr& communicator) :
+CommunicatorDescriptorBuilder::CommunicatorDescriptorBuilder(const shared_ptr<Ice::Communicator>& communicator) :
_communicator(communicator)
{
}
void
-CommunicatorDescriptorBuilder::init(const CommunicatorDescriptorPtr& desc, const XmlAttributesHelper&)
+CommunicatorDescriptorBuilder::init(const shared_ptr<CommunicatorDescriptor>& desc, const XmlAttributesHelper&)
{
_descriptor = desc;
}
@@ -644,7 +644,7 @@ CommunicatorDescriptorBuilder::addAdapter(const XmlAttributesHelper& attrs)
else
{
string fqn = "${server}";
- if(ServiceDescriptorPtr::dynamicCast(_descriptor))
+ if(dynamic_pointer_cast<ServiceDescriptor>(_descriptor))
{
fqn += ".${service}";
}
@@ -702,64 +702,6 @@ CommunicatorDescriptorBuilder::addAllocatable(const XmlAttributesHelper& attrs)
}
void
-CommunicatorDescriptorBuilder::addDbEnv(const XmlAttributesHelper& attrs)
-{
- DbEnvDescriptor desc;
- desc.name = attrs("name");
-
- DbEnvDescriptorSeq::iterator p;
- for(p = _descriptor->dbEnvs.begin(); p != _descriptor->dbEnvs.end(); ++p)
- {
- //
- // We are re-opening the dbenv element to define more properties.
- //
- if(p->name == desc.name)
- {
- break;
- }
- }
-
- if(p != _descriptor->dbEnvs.end())
- {
- //
- // Remove the previously defined dbenv, we'll add it back again when
- // the dbenv element end tag is reached.
- //
- desc = *p;
- _descriptor->dbEnvs.erase(p);
- }
-
- if(desc.dbHome.empty())
- {
- desc.dbHome = attrs("home", "");
- }
-
- _descriptor->dbEnvs.push_back(desc);
-}
-
-void
-CommunicatorDescriptorBuilder::addDbEnvProperty(const XmlAttributesHelper& attrs)
-{
- if(!_descriptor->dbEnvs.back().dbHome.empty())
- {
- throw invalid_argument("can't add property to the database environment:\n"
- "properties are only allowed if the database\n"
- "environment home directory is managed by the node");
- }
-
- PropertyDescriptor prop;
- prop.name = attrs("name");
- prop.value = attrs("value", "");
- _descriptor->dbEnvs.back().properties.push_back(prop);
-}
-
-void
-CommunicatorDescriptorBuilder::setDbEnvDescription(const string& value)
-{
- _descriptor->dbEnvs.back().description = value;
-}
-
-void
CommunicatorDescriptorBuilder::addLog(const XmlAttributesHelper& attrs)
{
if(attrs.contains("property"))
@@ -802,20 +744,20 @@ ServiceInstanceDescriptorBuilder::addPropertySet(const PropertySetDescriptor& de
p.properties.insert(p.properties.end(), desc.properties.begin(), desc.properties.end());
}
-ServerDescriptorBuilder::ServerDescriptorBuilder(const Ice::CommunicatorPtr& communicator,
+ServerDescriptorBuilder::ServerDescriptorBuilder(const shared_ptr<Ice::Communicator>& communicator,
const XmlAttributesHelper& attrs) :
CommunicatorDescriptorBuilder(communicator)
{
- init(new ServerDescriptor(), attrs);
+ init(make_shared<ServerDescriptor>(), attrs);
}
-ServerDescriptorBuilder::ServerDescriptorBuilder(const Ice::CommunicatorPtr& communicator) :
+ServerDescriptorBuilder::ServerDescriptorBuilder(const shared_ptr<Ice::Communicator>& communicator) :
CommunicatorDescriptorBuilder(communicator)
{
}
void
-ServerDescriptorBuilder::init(const ServerDescriptorPtr& desc, const XmlAttributesHelper& attrs)
+ServerDescriptorBuilder::init(const shared_ptr<ServerDescriptor>& desc, const XmlAttributesHelper& attrs)
{
CommunicatorDescriptorBuilder::init(desc, attrs);
_descriptor = desc;
@@ -855,7 +797,7 @@ ServerDescriptorBuilder::addEnv(const string& v)
}
void
-ServerDescriptorBuilder::addService(const ServiceDescriptorPtr& /*desc*/)
+ServerDescriptorBuilder::addService(const shared_ptr<ServiceDescriptor>& /*desc*/)
{
assert(false);
}
@@ -866,15 +808,15 @@ ServerDescriptorBuilder::addServiceInstance(const ServiceInstanceDescriptor& /*d
assert(false);
}
-IceBoxDescriptorBuilder::IceBoxDescriptorBuilder(const Ice::CommunicatorPtr& communicator,
+IceBoxDescriptorBuilder::IceBoxDescriptorBuilder(const shared_ptr<Ice::Communicator>& communicator,
const XmlAttributesHelper& attrs) :
ServerDescriptorBuilder(communicator)
{
- init(new IceBoxDescriptor(), attrs);
+ init(make_shared<IceBoxDescriptor>(), attrs);
}
void
-IceBoxDescriptorBuilder::init(const IceBoxDescriptorPtr& desc, const XmlAttributesHelper& attrs)
+IceBoxDescriptorBuilder::init(const shared_ptr<IceBoxDescriptor>& desc, const XmlAttributesHelper& attrs)
{
ServerDescriptorBuilder::init(desc, attrs);
_descriptor = desc;
@@ -899,19 +841,13 @@ IceBoxDescriptorBuilder::addAdapter(const XmlAttributesHelper& /*attrs*/)
}
void
-IceBoxDescriptorBuilder::addDbEnv(const XmlAttributesHelper& /*attrs*/)
-{
- throw invalid_argument("<dbenv> element can't be a child of an <icebox> element");
-}
-
-void
IceBoxDescriptorBuilder::addServiceInstance(const ServiceInstanceDescriptor& desc)
{
_descriptor->services.push_back(desc);
}
void
-IceBoxDescriptorBuilder::addService(const ServiceDescriptorPtr& desc)
+IceBoxDescriptorBuilder::addService(const shared_ptr<ServiceDescriptor>& desc)
{
ServiceInstanceDescriptor instance;
assert(desc);
@@ -919,15 +855,15 @@ IceBoxDescriptorBuilder::addService(const ServiceDescriptorPtr& desc)
_descriptor->services.push_back(instance);
}
-ServiceDescriptorBuilder::ServiceDescriptorBuilder(const Ice::CommunicatorPtr& communicator,
+ServiceDescriptorBuilder::ServiceDescriptorBuilder(const shared_ptr<Ice::Communicator>& communicator,
const XmlAttributesHelper& attrs) :
CommunicatorDescriptorBuilder(communicator)
{
- init(new ServiceDescriptor(), attrs);
+ init(make_shared<ServiceDescriptor>(), attrs);
}
void
-ServiceDescriptorBuilder::init(const ServiceDescriptorPtr& desc, const XmlAttributesHelper& attrs)
+ServiceDescriptorBuilder::init(const shared_ptr<ServiceDescriptor>& desc, const XmlAttributesHelper& attrs)
{
CommunicatorDescriptorBuilder::init(desc, attrs);
_descriptor = desc;