summaryrefslogtreecommitdiffstats
path: root/tags/cpp-0.1.incubating-M1-RC3/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tags/cpp-0.1.incubating-M1-RC3/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp')
-rw-r--r--tags/cpp-0.1.incubating-M1-RC3/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp355
1 files changed, 0 insertions, 355 deletions
diff --git a/tags/cpp-0.1.incubating-M1-RC3/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp b/tags/cpp-0.1.incubating-M1-RC3/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp
deleted file mode 100644
index 9da3e547e9..0000000000
--- a/tags/cpp-0.1.incubating-M1-RC3/sca/runtime/core/src/tuscany/sca/core/SCARuntime.cpp
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Rev$ $Date: 2005/12/22 11:33:21 $ */
-
-#include "tuscany/sca/core/SCARuntime.h"
-#include "tuscany/sca/core/ComponentServiceWrapper.h"
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/util/Utils.h"
-#include "tuscany/sca/util/Exceptions.h"
-
-#include "tuscany/sca/model/System.h"
-#include "tuscany/sca/model/Subsystem.h"
-#include "tuscany/sca/model/ModelLoader.h"
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#endif
-
-namespace tuscany
-{
- namespace sca
- {
- /**
- * Environment variable names
- */
- static const char* TUSCANY_SCACPP = "TUSCANY_SCACPP";
- static const char* TUSCANY_SCACPP_SYSTEM_ROOT = "TUSCANY_SCACPP_SYSTEM_ROOT";
- static const char* TUSCANY_SCACPP_DEFAULT_MODULE = "TUSCANY_SCACPP_DEFAULT_MODULE";
-
-
- // ==========================================================
- // Initialize static class member to not pointing at anything
- // ==========================================================
- SCARuntime* SCARuntime::instance = 0;
- string SCARuntime::systemRoot = "";
- string SCARuntime::defaultModuleName = "";
-
-
- // ==========================================================
- // Set the system configuration root
- // ==========================================================
- void SCARuntime::setSystemRoot(const string& root)
- {
- LOGENTRY(1, "SCARuntime::");
- systemRoot = root;
- LOGINFO_1(3, "SCARuntime::setSystemRoot - set to %s", root.c_str());
- LOGEXIT(1, "SCARuntime::setSystemRoot");
- }
-
- // ==========================================================
- // Set the default ModuleComponent name
- // ==========================================================
- void SCARuntime::setDefaultModuleComponent(const string& moduleComponent)
- {
- LOGENTRY(1, "SCARuntime::setDefaultModuleComponent");
- defaultModuleName = moduleComponent;
- LOGINFO_1(3, "SCARuntime::setDefaultModuleComponent - set to %s", moduleComponent.c_str());
- LOGEXIT(1, "SCARuntime::setDefaultModuleComponent");
- }
-
- // ===================================================================
- // Constructor for the SCARuntime class. This will be a singleton that
- // holds all the information about the current runtime.
- // ===================================================================
- SCARuntime::SCARuntime() : system(new System()), defaultModule(0)
- {
- LOGENTRY(1, "SCARuntime::constructor");
-
- // Locate the SCA install root
- char* root = 0;
- root = getenv(TUSCANY_SCACPP);
- if (root == 0)
- {
- string msg = TUSCANY_SCACPP;
- msg += " environment variable not set";
- throw SystemConfigurationException(msg.c_str());
- }
- else
- {
- SCARoot = root;
- }
-
- LOGEXIT(1, "SCARuntime::constructor");
- }
-
- // ===================================================================
- // Destructor for the SCARuntime class.
- // ===================================================================
- SCARuntime::~SCARuntime()
- {
- LOGENTRY(1, "SCARuntime::destructor");
-
- if (system)
- {
- delete system;
- }
-
- LOGEXIT(1, "SCARuntime::destructor");
- }
-
- // =============================================================
- // Get the instance of the runtime, creates it if does not exist
- // static method
- // =============================================================
- SCARuntime* SCARuntime::getInstance()
- {
- LOGENTRY(1, "SCARuntime::getInstance");
-
- if (instance == NULL)
- {
- instance = new SCARuntime();
-
- if (systemRoot == "")
- {
-
- // Load the runtime
- // Get root from environment variable TUSCANY_SCACPP_SYSTEM_ROOT
- char* systemRootEnv = getenv(TUSCANY_SCACPP_SYSTEM_ROOT);
- if (systemRootEnv == 0)
- {
- string msg = TUSCANY_SCACPP_SYSTEM_ROOT;
- msg += " environment variable not set";
- throw SystemConfigurationException(msg.c_str());
- }
-
- systemRoot = systemRootEnv;
- }
-
- instance->load(systemRoot);
- }
-
- LOGEXIT(1, "SCARuntime::getInstance");
-
- return instance;
-
- }
-
-
- // =============================================================
- // Release the instance of the runtime.
- // =============================================================
- void SCARuntime::releaseInstance()
- {
- LOGENTRY(1, "SCARuntime::releaseInstance");
-
- if (instance)
- {
- delete instance;
- instance = 0;
- systemRoot = "";
- defaultModuleName = "";
- }
-
- LOGEXIT(1, "SCARuntime::releaseInstance");
- }
-
- // ======================================
- // Load up all the details of the runtime
- // ======================================
- void SCARuntime::load(const string& configurationRoot)
- {
- LOGENTRY(1, "SCARuntime::load");
-
- LOGINFO_1(2,"configuration root: %s", configurationRoot.c_str());
-
- ModelLoader loader(system);
- // Load details of the module
- loader.load(configurationRoot);
-
- LOGEXIT(1, "SCARuntime::load");
- }
-
-
- // ===================================
- // Return the top of the runtime model
- // ===================================
- System* SCARuntime::getSystem()
- {
- return system;
- }
-
-
- // ===================================================
- // setCurrentComponent: push component for this thread
- // ===================================================
- void SCARuntime::setCurrentComponent(Component* component)
- {
-
-#if defined(WIN32) || defined (_WINDOWS)
- DWORD currentThreadId = GetCurrentThreadId();
-#else
- pthread_t currentThreadId = pthread_self();
-#endif
- COMPONENTS_MAP::iterator iter = components.find(currentThreadId);
- if (iter == components.end())
- {
- components[currentThreadId] = COMPONENT_STACK();
- iter = components.find(currentThreadId);
- }
-
- COMPONENT_STACK& compStack = iter->second;
- compStack.push(component);
- }
-
-
- // ====================================================
- // unsetCurrentComponent: pop component for this thread
- // ====================================================
- Component* SCARuntime::unsetCurrentComponent()
- {
-#if defined(WIN32) || defined (_WINDOWS)
- DWORD currentThreadId = GetCurrentThreadId();
-#else
- pthread_t currentThreadId = pthread_self();
-#endif
-
- COMPONENTS_MAP::iterator iter = components.find(currentThreadId);
- if (iter != components.end())
- {
- COMPONENT_STACK& compStack = iter->second;
- if (compStack.size() > 0)
- {
- Component* component = compStack.top();
- compStack.pop();
- return component;
- }
- }
-
- return 0;
- }
-
- // =============================================================
- // getCurrentComponent: return current component for this thread
- // =============================================================
- Component* SCARuntime::getCurrentComponent()
- {
-#if defined(WIN32) || defined (_WINDOWS)
- DWORD currentThreadId = GetCurrentThreadId();
-#else
- pthread_t currentThreadId = pthread_self();
-#endif
-
- COMPONENTS_MAP::iterator iter = components.find(currentThreadId);
- if (iter == components.end())
- {
- components[currentThreadId] = COMPONENT_STACK();
- iter = components.find(currentThreadId);
- }
-
- COMPONENT_STACK& compStack = iter->second;
- if (compStack.size() > 0)
- {
- return compStack.top();
- }
- else
- {
- return 0;
- }
-
- }
-
-
- // ===========================================
- // getCurrentModule: return the current module
- // ===========================================
- Module* SCARuntime::getCurrentModule()
- {
- // ---------------------------------------------
- // Get module from current component if possible
- // ---------------------------------------------
- Component* comp = getCurrentComponent();
- if (comp != 0)
- {
- return comp->getModule();
- }
-
- // ----------------------
- // Get the default Module
- // ----------------------
- string message;
- if (!defaultModule)
- {
- // -------------------------------------------
- // Get the default module from the environment
- // -------------------------------------------
- if (defaultModuleName == "")
- {
- const char* defMod = getenv(TUSCANY_SCACPP_DEFAULT_MODULE);
- if (!defMod)
- {
- message = TUSCANY_SCACPP_DEFAULT_MODULE;
- message += " environment variable not set";
- throw SystemConfigurationException(message.c_str());
- }
- defaultModuleName = defMod;
- }
- string subsystemName, moduleName;
- Utils::tokeniseUri(defaultModuleName, subsystemName, moduleName);
-
- // ---------------------------
- // Subsystem must be specified
- // ---------------------------
- Subsystem* subsystem = system->findSubsystem(subsystemName);
- if (!subsystem)
- {
- message = "Default subsystem \'" + subsystemName + "\' not found";
- throw SystemConfigurationException(message.c_str());
- }
-
- // --------------------------------------------------------------------------
- // If module is not specified then get the default module for this subsystem.
- // This will be the ONLY module for this subsystem
- // --------------------------------------------------------------------------
- if (moduleName == "")
- {
- defaultModule = subsystem->getDefaultModule();
- if (!defaultModule)
- {
- message = "Default module not found for subsystem \'" + subsystemName + "\'";
- throw SystemConfigurationException(message.c_str());
- }
- }
- else
- {
- // -----------------------------
- // get the named ModuleComponent
- // -----------------------------
- defaultModule = subsystem->findModuleByComponentName(moduleName);
- if (!defaultModule)
- {
- message = "Default module \'" + moduleName + "\' not found in subsystem \'" + subsystemName +"\'";
- throw SystemConfigurationException(message.c_str());
- }
- }
- }
- return defaultModule;
- }
-
- } // End namespace sca
-} // End namespace tuscany