[openrtm-commit:00466] r2239 - trunk/OpenRTM-aist/src/lib/rtm
openrtm @ openrtm.org
openrtm @ openrtm.org
2011年 10月 25日 (火) 22:34:57 JST
Author: n-ando
Date: 2011-10-25 22:34:57 +0900 (Tue, 25 Oct 2011)
New Revision: 2239
Modified:
trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp
Log:
loadl service module loader
Modified: trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp 2011-10-25 09:32:34 UTC (rev 2238)
+++ trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp 2011-10-25 13:34:57 UTC (rev 2239)
@@ -40,6 +40,7 @@
#include <rtm/CORBA_IORUtil.h>
#include <rtm/SdoServiceConsumerBase.h>
#include <rtm/LocalServiceAdmin.h>
+#include <rtm/SystemLogger.h>
#if defined(minor)
#undef minor
@@ -265,6 +266,37 @@
return false;
}
+ std::vector<std::string> lsvc;
+ lsvc = coil::split(m_config["manager.local_service.modules"], ",");
+
+ for (int i(0), len(lsvc.size()); i < len; ++i)
+ {
+ std::string basename(coil::split(lsvc[i], ".").operator[](0));
+ basename += "Init";
+ try
+ {
+ m_module->load(lsvc[i], basename);
+ }
+ catch (ModuleManager::Error& e)
+ {
+ RTC_ERROR(("Module load error: %s", e.reason.c_str()));
+ }
+ catch (ModuleManager::SymbolNotFound& e)
+ {
+ RTC_ERROR(("Symbol not found: %s", e.name.c_str()));
+ }
+ catch (ModuleManager::ModuleNotFound& e)
+ {
+ RTC_ERROR(("Module not found: %s", e.name.c_str()));
+ }
+ catch (...)
+ {
+ RTC_ERROR(("Unknown Exception"));
+ }
+ }
+
+ initLocalService();
+
std::vector<std::string> mods;
mods = coil::split(m_config["manager.modules.preload"], ",");
@@ -297,8 +329,8 @@
m_config["sdo.service.consumer.available_services"]
= coil::flatten(SdoServiceConsumerFactory::instance().getIdentifiers());
- initLocalService();
+
if (m_initProc != NULL)
{
m_initProc(this);
@@ -1609,7 +1641,7 @@
coil::Properties p(comps[i]->getInstanceName());
p << comps[i]->getProperties();
rtclog.lock();
- rtclog.level(Logger::RTL_PARANOID) << p;
+ rtclog.level(::RTC::Logger::RTL_PARANOID) << p;
rtclog.unlock();
}
catch (...)
openrtm-commit メーリングリストの案内