summaryrefslogtreecommitdiff
path: root/cpp/src/IcePack/ServiceBuilder.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2002-09-17 21:24:51 +0000
committerBenoit Foucher <benoit@zeroc.com>2002-09-17 21:24:51 +0000
commit77f2ff38b10a12f7189ab10dba239f7b53417986 (patch)
treee203c24868f907dc8c3f8e5525e1c4c68aa308fb /cpp/src/IcePack/ServiceBuilder.cpp
parentAdded support for --case-sensitive option (attribute casesensitive). (diff)
downloadice-77f2ff38b10a12f7189ab10dba239f7b53417986.tar.bz2
ice-77f2ff38b10a12f7189ab10dba239f7b53417986.tar.xz
ice-77f2ff38b10a12f7189ab10dba239f7b53417986.zip
Added ${parent} variable to get the name of the parent component.
Added attribute targets to server and service elements. More clean up.
Diffstat (limited to 'cpp/src/IcePack/ServiceBuilder.cpp')
-rw-r--r--cpp/src/IcePack/ServiceBuilder.cpp38
1 files changed, 22 insertions, 16 deletions
diff --git a/cpp/src/IcePack/ServiceBuilder.cpp b/cpp/src/IcePack/ServiceBuilder.cpp
index 37adeaed70a..129a3a1e464 100644
--- a/cpp/src/IcePack/ServiceBuilder.cpp
+++ b/cpp/src/IcePack/ServiceBuilder.cpp
@@ -75,34 +75,29 @@ IcePack::ServiceHandler::startElement(const XMLCh *const name, AttributeList &at
}
else if(str == "adapter")
{
+ assert(!_currentAdapterId.empty());
string name = getAttributeValue(attrs, "name");
- string id = getAttributeValueWithDefault(attrs, "id", "");
-
- //
- // If the adapter id is not specified or empty, generate one
- // from the server, service and adapter name: <adapter
- // name>-<server name>-<service name>
- //
- if(id.empty())
- {
- id = name + "-" + _builder.getServerBuilder().substitute("${name}") + _builder.substitute("${name}");
- }
- _builder.getServerBuilder().registerAdapter(name, getAttributeValue(attrs, "endpoints"), id);
+ _builder.getServerBuilder().registerAdapter(name, getAttributeValue(attrs, "endpoints"), _currentAdapterId);
}
}
IcePack::ServiceBuilder::ServiceBuilder(const NodeInfoPtr& nodeInfo,
ServerBuilder& serverBuilder,
const map<string, string>& variables,
- const string& componentPath,
const vector<string>& targets) :
- ComponentBuilder(nodeInfo->getCommunicator(), componentPath, targets),
+ ComponentBuilder(nodeInfo->getCommunicator(), variables, targets),
_nodeInfo(nodeInfo),
_serverBuilder(serverBuilder)
{
- _yellowAdmin = nodeInfo->getYellowAdmin();
+ assert(_variables.find("parent") != _variables.end());
+ assert(_variables.find("name") != _variables.end());
+ assert(_variables.find("fqn") != _variables.end());
+ assert(_variables.find("datadir") != _variables.end());
- _variables = variables;
+ //
+ // Required for the component builder.
+ //
+ _yellowAdmin = nodeInfo->getYellowAdmin();
}
void
@@ -168,3 +163,14 @@ IcePack::ServiceBuilder::setDBEnv(const string& dir)
_serverBuilder.addProperty("IceBox.DBEnvName." + _variables["name"], path);
}
+//
+// Compute an adapter id for a given adapter name.
+//
+string
+IcePack::ServiceBuilder::getDefaultAdapterId(const string& name)
+{
+ //
+ // Concatenate the server and service name to the adapter name.
+ //
+ return name + "-" + _variables["parent"] + "." + _variables["name"];
+}