diff options
author | Benoit Foucher <benoit@zeroc.com> | 2004-06-02 21:17:40 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2004-06-02 21:17:40 +0000 |
commit | c209ff436f4268b8db689a2dd17615456eea78ce (patch) | |
tree | 5feb8607988706851bfdfdd5ba2d3924ba5b8f6c /cpp/src/IcePack/ServiceBuilder.cpp | |
parent | Fixed to AMD code generation. (diff) | |
download | ice-c209ff436f4268b8db689a2dd17615456eea78ce.tar.bz2 ice-c209ff436f4268b8db689a2dd17615456eea78ce.tar.xz ice-c209ff436f4268b8db689a2dd17615456eea78ce.zip |
Merged icepack_refactoring2_branch, many IcePack changes.
Diffstat (limited to 'cpp/src/IcePack/ServiceBuilder.cpp')
-rw-r--r-- | cpp/src/IcePack/ServiceBuilder.cpp | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/cpp/src/IcePack/ServiceBuilder.cpp b/cpp/src/IcePack/ServiceBuilder.cpp deleted file mode 100644 index 39131265d72..00000000000 --- a/cpp/src/IcePack/ServiceBuilder.cpp +++ /dev/null @@ -1,188 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2004 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 <IcePack/ServiceBuilder.h> -#include <IcePack/ServerBuilder.h> - -using namespace std; -using namespace IcePack; - -namespace IcePack -{ - -class ServiceHandler : public ComponentHandler -{ -public: - - ServiceHandler(ServiceBuilder&); - - virtual void startElement(const string&, const IceXML::Attributes&, int, int); - -private: - - ServiceBuilder& _builder; -}; - -} - -IcePack::ServiceHandler::ServiceHandler(ServiceBuilder& builder) : - ComponentHandler(builder), - _builder(builder) -{ -} - -void -IcePack::ServiceHandler::startElement(const string& name, const IceXML::Attributes& attrs, int line, int column) -{ - ComponentHandler::startElement(name, attrs, line, column); - - if(!isCurrentTargetDeployable()) - { - return; - } - - if(name == "service") - { - string basedir = getAttributeValueWithDefault(attrs, "basedir", ""); - if(!basedir.empty()) - { - _builder.overrideBaseDir(basedir); - } - - string kind = getAttributeValue(attrs, "kind"); - if(kind == "standard") - { - _builder.setKind(ServiceBuilder::ServiceKindStandard); - } - else if(kind == "freeze") - { - _builder.setKind(ServiceBuilder::ServiceKindFreeze); - _builder.setDBEnv(getAttributeValueWithDefault(attrs, "dbenv", "")); - } - - _builder.createConfigFile(_builder.substitute("/config/config_${name}")); - _builder.setEntryPoint(getAttributeValue(attrs, "entry")); - } - else if(name == "adapter") - { - assert(!_currentAdapterId.empty()); - string adapterName = getAttributeValue(attrs, "name"); - bool registerProcess = getAttributeValueWithDefault(attrs, "register", "false") == "true"; - _builder.getServerBuilder().registerAdapter(adapterName, getAttributeValue(attrs, "endpoints"), - registerProcess, _currentAdapterId); - } - else if(name == "dbproperty") - { - string value = getAttributeValueWithDefault(attrs, "value", ""); - if(value.empty()) - { - value = _builder.toLocation(getAttributeValueWithDefault(attrs, "location", "")); - } - _builder.addDatabaseProperty(getAttributeValue(attrs, "name"), value); - } -} - -IcePack::ServiceBuilder::ServiceBuilder(const NodeInfoPtr& nodeInfo, - ServerBuilder& serverBuilder, - const map<string, string>& variables, - const vector<string>& targets) : - ComponentBuilder(nodeInfo->getCommunicator(), variables, targets), - _nodeInfo(nodeInfo), - _serverBuilder(serverBuilder), - _dbProperties(Ice::createProperties()) -{ - assert(_variables.back().find("parent") != _variables.back().end()); - assert(_variables.back().find("name") != _variables.back().end()); - assert(_variables.back().find("fqn") != _variables.back().end()); - assert(_variables.back().find("datadir") != _variables.back().end()); - - // - // Required for the component builder. - // - _objectRegistry = _nodeInfo->getObjectRegistry(); -} - -void -IcePack::ServiceBuilder::parse(const string& descriptor) -{ - ServiceHandler handler(*this); - - ComponentBuilder::parse(descriptor, handler); -} - -ServerBuilder& -IcePack::ServiceBuilder::getServerBuilder() const -{ - return _serverBuilder; -} - -void -IcePack::ServiceBuilder::setKind(ServiceKind kind) -{ - _kind = kind; -} - -void -IcePack::ServiceBuilder::setEntryPoint(const string& entry) -{ - assert(!_configFile.empty()); - _serverBuilder.addProperty("IceBox.Service." + getVariable("name"), entry + " --Ice.Config=" + _configFile); -} - -void -IcePack::ServiceBuilder::setDBEnv(const string& dir) -{ - if(_kind != ServiceKindFreeze) - { - throw IceXML::ParserException(__FILE__, __LINE__, "database environment is only allowed for Freeze services"); - } - - string path; - - if(dir.empty()) - { - // - // Provides database environment directory only if the - // database environment attribute is not specified. If it's - // specified, it's most likely because we share database - // environments and then it's the responsabilility of the user - // to manage the database environment directory. - // - createDirectory("/dbs/" + getVariable("name"), true); - path = getVariable("datadir") + "/dbs/" + getVariable("name"); - } - else - { - path = toLocation(dir); - } - _serverBuilder.addProperty("IceBox.DBEnvName." + getVariable("name"), getVariable("name")); - addProperty("Freeze.DbEnv." + getVariable("name") + ".DbHome", path); - - string dbConfigFile = path + "/DB_CONFIG"; - generateConfigFile(" ", "BdB.", dbConfigFile, _dbProperties); -} - -void -IcePack::ServiceBuilder::addDatabaseProperty(const string& name, const string& value) -{ - _dbProperties->setProperty("BdB." + name, value); -} - -// -// 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 + "-" + getVariable("parent") + "." + getVariable("name"); -} |