[openrtm-commit:00137] r2151 - in trunk/OpenRTM-aist: . build etc examples examples/SimpleIO src/ext/sdo/observer src/lib/coil/win32 src/lib/rtm utils/rtm-skelwrapper win32/OpenRTM-aist win32/OpenRTM-aist/bin win32/OpenRTM-aist/etc win32/OpenRTM-aist/installer win32/OpenRTM-aist/rtm

openrtm @ openrtm.org openrtm @ openrtm.org
2011年 5月 31日 (火) 09:23:51 JST


Author: n-ando
Date: 2011-05-31 09:23:51 +0900 (Tue, 31 May 2011)
New Revision: 2151

Added:
   trunk/OpenRTM-aist/build/vsprops2cmake.py
Removed:
   trunk/OpenRTM-aist/win32/OpenRTM-aist/rtm/libRTCvc8.vcproj.yaml
Modified:
   trunk/OpenRTM-aist/
   trunk/OpenRTM-aist/build/Makefile.am
   trunk/OpenRTM-aist/build/makewrapper.py
   trunk/OpenRTM-aist/etc/rtc.conf.sample
   trunk/OpenRTM-aist/examples/SimpleIO/run.sh
   trunk/OpenRTM-aist/examples/rtc.vcproj.yaml
   trunk/OpenRTM-aist/examples/rtcdll.vcproj.yaml
   trunk/OpenRTM-aist/src/ext/sdo/observer/ComponentObserver.idl
   trunk/OpenRTM-aist/src/ext/sdo/observer/ComponentObserverConsumer.cpp
   trunk/OpenRTM-aist/src/lib/coil/win32/coil_config.props
   trunk/OpenRTM-aist/src/lib/coil/win32/coil_config.vsprops
   trunk/OpenRTM-aist/src/lib/rtm/ComponentActionListener.cpp
   trunk/OpenRTM-aist/src/lib/rtm/ComponentActionListener.h
   trunk/OpenRTM-aist/src/lib/rtm/ConfigurationListener.cpp
   trunk/OpenRTM-aist/src/lib/rtm/ConfigurationListener.h
   trunk/OpenRTM-aist/src/lib/rtm/ConnectorListener.cpp
   trunk/OpenRTM-aist/src/lib/rtm/ConnectorListener.h
   trunk/OpenRTM-aist/src/lib/rtm/InPort.h
   trunk/OpenRTM-aist/src/lib/rtm/InPortConsumer.h
   trunk/OpenRTM-aist/src/lib/rtm/InPortProvider.h
   trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp
   trunk/OpenRTM-aist/src/lib/rtm/OutPort.h
   trunk/OpenRTM-aist/src/lib/rtm/OutPortConsumer.h
   trunk/OpenRTM-aist/src/lib/rtm/OutPortProvider.h
   trunk/OpenRTM-aist/src/lib/rtm/PeriodicExecutionContext.cpp
   trunk/OpenRTM-aist/src/lib/rtm/PeriodicTaskFactory.h
   trunk/OpenRTM-aist/src/lib/rtm/PortAdmin.cpp
   trunk/OpenRTM-aist/src/lib/rtm/PortConnectListener.cpp
   trunk/OpenRTM-aist/src/lib/rtm/PortConnectListener.h
   trunk/OpenRTM-aist/src/lib/rtm/PublisherBase.h
   trunk/OpenRTM-aist/src/lib/rtm/SdoServiceAdmin.cpp
   trunk/OpenRTM-aist/src/lib/rtm/SdoServiceConsumerBase.h
   trunk/OpenRTM-aist/src/lib/rtm/libRTC.vcproj.yaml
   trunk/OpenRTM-aist/utils/rtm-skelwrapper/skel_wrapper.py
   trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc10.bat
   trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc8.bat
   trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc9.bat
   trunk/OpenRTM-aist/win32/OpenRTM-aist/bin/Makefile.am
   trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/etc.yaml
   trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.props
   trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.vsprops
   trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/License.rtf
   trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTM-aist.wxs.in
   trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTM-aist.wxs.yaml.in
   trunk/OpenRTM-aist/win32/OpenRTM-aist/rtm/Makefile.am
Log:
mergeed r2125-2150


Property changes on: trunk/OpenRTM-aist
___________________________________________________________________
Added: svn:mergeinfo
   + /branches/RELENG_1_1/OpenRTM-aist:2126-2150

Modified: trunk/OpenRTM-aist/build/Makefile.am
===================================================================
--- trunk/OpenRTM-aist/build/Makefile.am	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/build/Makefile.am	2011-05-31 00:23:51 UTC (rev 2151)
@@ -16,6 +16,7 @@
 	makedeffile.py             \
 	slntool.py                 \
 	vcprojtool.py              \
+	vsprops2cmake.py           \
 	makewxs.py                 \
 	makewrapper.pl             \
 	makewrapper.py             \

Modified: trunk/OpenRTM-aist/build/makewrapper.py
===================================================================
--- trunk/OpenRTM-aist/build/makewrapper.py	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/build/makewrapper.py	2011-05-31 00:23:51 UTC (rev 2151)
@@ -4,9 +4,8 @@
 # @date $Date: 2008-02-29 04:50:39 $
 # @author Norkai Ando <n-ando at aist.go.jp>
 #
-# Copyright (C) 2005-2006
+# Copyright (C) 2005-2011
 #     Noriaki Ando
-#     Task-intelligence Research Group,
 #     Intelligent Systems Research Institute,
 #     National Institute of
 #         Advanced Industrial Science and Technology (AIST), Japan
@@ -251,12 +250,26 @@
         self.data = data
 
     def gen(self, fname, temp_txt, data):
+
+        t = yat.Template(temp_txt)
+        text = t.generate(data)
+
+        if os.access(fname, os.F_OK): # file exists
+            f = file(fname, "r")
+            oldtext = f.read()
+            f.close()
+
+            newtext = re.sub(" \@date.*?\n", "", text)
+            oldtext2 = re.sub(" \@date.*?\n", "", oldtext)
+            if newtext == oldtext2:
+                print "\"", fname, \
+                    "\" already exists and it will be same as new one."
+                print "File is not need to be generated."
+                return
+            else:
+                print "\"", fname, "\" already exists but contents are not same"
+
         f = file(fname, "w")
-        #		s = StringIO.StringIO()
-        t = yat.Template(temp_txt)
-        text=t.generate(data)
-        #		gen_txt = s.getvalue().splitlines()
-        #		f.write(gen_txt)
         f.write(text)
         f.close()
         print "\"", fname, "\"" " was generated."

Copied: trunk/OpenRTM-aist/build/vsprops2cmake.py (from rev 2150, branches/RELENG_1_1/OpenRTM-aist/build/vsprops2cmake.py)
===================================================================
--- trunk/OpenRTM-aist/build/vsprops2cmake.py	                        (rev 0)
+++ trunk/OpenRTM-aist/build/vsprops2cmake.py	2011-05-31 00:23:51 UTC (rev 2151)
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+from xml.dom import minidom, Node
+import sys
+import re
+import os
+
+if __name__ == '__main__':
+    if len(sys.argv) < 2:
+        print "please specify vsprops file"
+        sys.exit(1)
+
+    fname = sys.argv[1]
+    if fname.split(".")[-1] != "vsprops":
+        print "please specify vsprops file"
+        sys.exit(1)
+
+    f = file(sys.argv[1], "r")
+    text = f.read().replace("shift_jis", "utf-8")
+    f.close()
+
+    doc = minidom.parseString(text)
+
+    cmakefname = fname.replace(".vsprops", ".cmake")
+    cf = file(cmakefname, "w")
+
+    for node in doc.getElementsByTagName('UserMacro'):
+        name = node.getAttribute("Name")
+        value = node.getAttribute("Value")
+
+        # escape backslash
+        value = value.replace("\\", "\\\\")
+        # escape quote
+        value = re.sub("\"", "\\\"", value)
+        # replace environment variable specifier
+        value = re.sub("\%(.*?)\%", "$ENV{\\1}", value)
+        # repalce variable expression (vsprops->cmake)
+        value = re.sub("\$\((.*?)\)", "${\\1}", value)
+        # keep solution directory variable
+        value = re.sub("{SolutionDir}", "(SolutionDir)", value)
+
+        cf.write("set (" + name + " \"" + value + "\")\n")
+
+    cf.close()

Modified: trunk/OpenRTM-aist/etc/rtc.conf.sample
===================================================================
--- trunk/OpenRTM-aist/etc/rtc.conf.sample	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/etc/rtc.conf.sample	2011-05-31 00:23:51 UTC (rev 2151)
@@ -345,3 +345,18 @@
 # The execution cycle of ExecutionContext
 #
 exec_cxt.periodic.rate: 1000
+
+#============================================================
+# SDO service settings
+#============================================================
+#
+# SDO service consumer settings
+#
+sdo.service.consumer.available_services: [read only]
+sdo.service.consumer.allowed_services: ALL
+#
+# SDO service provider settings
+#
+sdo.service.provider.available_services: [read only]
+sdo.service.provider.allowed_services: ALL
+sdo.service.provider.providing_services: [read only]

Modified: trunk/OpenRTM-aist/examples/SimpleIO/run.sh
===================================================================
--- trunk/OpenRTM-aist/examples/SimpleIO/run.sh	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/examples/SimpleIO/run.sh	2011-05-31 00:23:51 UTC (rev 2151)
@@ -38,7 +38,7 @@
 
 ../../utils/rtm-naming/rtm-naming $nsport
 
-echo 'corba.nameservers: '$hostname':'$nsport > ./rtc.conf
+echo 'corba.nameservers: 127.0.0.1:'$nsport > ./rtc.conf
 echo 'naming.formats: %n.rtc' >> ./rtc.conf
 echo 'logger.log_level: TRACE' >> ./rtc.conf
 
@@ -46,7 +46,7 @@
 $term -e ./ConsoleOutComp &
 
 sleep 5
-./ConnectorComp &
+./ConnectorComp --port $nsport --flush &
 
 #sleep 10
 #nspid=`ps -ax | grep 9876 | awk '{print $1}'`

Modified: trunk/OpenRTM-aist/examples/rtc.vcproj.yaml
===================================================================
--- trunk/OpenRTM-aist/examples/rtc.vcproj.yaml	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/examples/rtc.vcproj.yaml	2011-05-31 00:23:51 UTC (rev 2151)
@@ -24,12 +24,12 @@
         Value: |
           set PATH=$(rtm_path);%PYTHON_ROOT%\\\\;%PATH%
           for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
-          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x
+          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) -Wbdll_includes %%x
     VCCLCompilerTool:
       - Key: Optimization
         Value: 0
       - Key: PreprocessorDefinitions
-        Value: "USE_stub_in_nt_dll;WIN32;_DEBUG;_CONSOLE;__WIN32__;__x86__;_WIN32_WINNT=0x0400;__NT__;__OSVERSION__=4;_CRT_SECURE_NO_DEPRECATE"
+        Value: "INCLUDE_stub_in_nt_dll;WIN32;_DEBUG;_CONSOLE;__WIN32__;__x86__;_WIN32_WINNT=0x0400;__NT__;__OSVERSION__=4;_CRT_SECURE_NO_DEPRECATE"
       - Key: MinimalRebuild
         Value: "true"
       - Key: BasicRuntimeChecks
@@ -66,12 +66,12 @@
         Value: |
           set PATH=$(rtm_path);%PYTHON_ROOT%\\\\;%PATH%
           for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
-          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x
+          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) -Wbdll_includes %%x
     VC10_VCCLCompilerTool:
       - Key: Optimization
         Value: "Disabled"
       - Key: PreprocessorDefinitions
-        Value: "USE_stub_in_nt_dll;WIN32;_DEBUG;_CONSOLE;__WIN32__;__x86__;_WIN32_WINNT=0x0400;__NT__;__OSVERSION__=4;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)"
+        Value: "INCLUDED_stub_in_nt_dll;WIN32;_DEBUG;_CONSOLE;__WIN32__;__x86__;_WIN32_WINNT=0x0400;__NT__;__OSVERSION__=4;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)"
       - Key: MinimalRebuild
         Value: "true"
       - Key: BasicRuntimeChecks
@@ -112,7 +112,7 @@
         Value: |
           set PATH=$(rtm_path);%PYTHON_ROOT%\\\\;%PATH%
           for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
-          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x
+          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) -Wbdll_includes %%x
     VCPostBuildEventTool:
       - Key: CommandLine
         Value: |
@@ -120,7 +120,7 @@
           copy "$(OutDir)\\\\__PROJECT_NAME__.exe" "$(SolutionDir)\\\\components"
     VCCLCompilerTool:
       - Key: PreprocessorDefinitions
-        Value: "USE_stub_in_nt_dll;WIN32;NDEBUG;_CONSOLE;__WIN32__;__x86__;_WIN32_WINNT=0x0400;__NT__;__OSVERSION__=4;_CRT_SECURE_NO_DEPRECATE"
+        Value: "INCLUDED_stub_in_nt_dll;WIN32;NDEBUG;_CONSOLE;__WIN32__;__x86__;_WIN32_WINNT=0x0400;__NT__;__OSVERSION__=4;_CRT_SECURE_NO_DEPRECATE"
       - Key: RuntimeLibrary
         Value: "2"
       - Key: UsePrecompiledHeader
@@ -159,7 +159,7 @@
         Value: |
           set PATH=$(rtm_path);%PYTHON_ROOT%\\\\;%PATH%
           for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
-          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x
+          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) -Wbdll_includes %%x
     VC10_VCPostBuildEventTool:
       - Key: Command
         Value: |

Modified: trunk/OpenRTM-aist/examples/rtcdll.vcproj.yaml
===================================================================
--- trunk/OpenRTM-aist/examples/rtcdll.vcproj.yaml	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/examples/rtcdll.vcproj.yaml	2011-05-31 00:23:51 UTC (rev 2151)
@@ -24,12 +24,12 @@
         Value: |
           set PATH=$(rtm_path);%PYTHON_ROOT%\\\\;%PATH%
           for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
-          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x
+          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) -Wbdll_includes %%x
     VCCLCompilerTool:
       - Key: Optimization
         Value: "0"
       - Key: PreprocessorDefinitions
-        Value: "USE_stub_in_nt_dll;WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE"
+        Value: "INCLUDED_stub_in_nt_dll;WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE"
       - Key: MinimalRebuild
         Value: "true"
       - Key: BasicRuntimeChecks
@@ -70,7 +70,7 @@
         Value: |
           set PATH=$(rtm_path);%PYTHON_ROOT%\\\\;%PATH%
           for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
-          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x
+          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) -Wbdll_includes %%x
     VC10_VCCLCompilerTool:
       - Key: Optimization
         Value: "Disabled"
@@ -120,7 +120,7 @@
         Value: |
           set PATH=$(rtm_path);%PYTHON_ROOT%\\\\;%PATH%
           for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
-          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x
+          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) -Wbdll_includes %%x
     VCPostBuildEventTool:
       - Key: CommandLine
         Value: |
@@ -128,7 +128,7 @@
           copy "$(OutDir)\\\\__PROJECT_NAME__.dll" "$(SolutionDir)\\\\components"
     VCCLCompilerTool:
       - Key: PreprocessorDefinitions
-        Value: "USE_stub_in_nt_dll;WIN32;NDEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE"
+        Value: "INCLUDED_stub_in_nt_dll;WIN32;NDEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE"
       - Key:         RuntimeLibrary
         Value: "2"
       - Key:         UsePrecompiledHeader
@@ -167,7 +167,7 @@
         Value: |
           set PATH=$(rtm_path);%PYTHON_ROOT%\\\\;%PATH%
           for %%x in (*.idl) do rtm-skelwrapper.py --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=%%x
-          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) %%x
+          for %%x in (*.idl) do $(rtm_idlc) $(rtm_idlflags) -Wbdll_includes %%x
     VC10_VCPostBuildEventTool:
       - Key: Command
         Value: |

Modified: trunk/OpenRTM-aist/src/ext/sdo/observer/ComponentObserver.idl
===================================================================
--- trunk/OpenRTM-aist/src/ext/sdo/observer/ComponentObserver.idl	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/ext/sdo/observer/ComponentObserver.idl	2011-05-31 00:23:51 UTC (rev 2151)
@@ -216,7 +216,7 @@
      * 
      * Configurationの状態が変化したことを示す列挙子。Configurationに対
      * して、コンフィギュレーションパラメータが更新された
-     * (UPDATE_CONFIG_PARAM)、アクティブコンフィギュレーションが変更さ
+     * (UPDATE_CONFIG_PARAM)、コンフィギュレーションがセット(更新)さ
      * れた (SET_CONFIG_SET)、コンフィギュレーションセットが追加された
      * (ADD_CONFIG_SET)、コンフィギュレーションが更新された
      * (UPDATE_CONFIG_SET)、コンフィギュレーションセットが削除された
@@ -225,11 +225,17 @@
      * 知される。
      *
      * - UPDATE_CONFIG_PARAM: <config set name>.<config param name>
+     *   - SDOPackage::Configuration::set_configuration_parameter
      * - SET_CONFIG_SET: <config set name>
+     *   - SDOPackage::Configuration::set_configuration_set_values
      * - ADD_CONFIG_SET: <config set name>
+     *   - SDOPackage::Configuration::add_configuration_set
      * - UPDATE_CONFIG_SET: <config set name>
+     *   - 内部のコンフィグセットを実際の変数に反映する
      * - REMOVE_CONFIG_SET: <config set name>
+     *   - SDOPackage::Configuration::remove_configuration_set
      * - ACTIVATE_CONFIG_SET:  <config set name>
+     *   - SDOPackage::Configuration::activate_configuration_set
      * 
      * @else
      *
@@ -237,16 +243,25 @@
      * 
      * This is enumerator which notifies that configuration is
      * changed.  To the configuration, a configuration parameter has
-     * been updated, the active configuration set has been changed, a
-     * configuration set has been updated, a configuration set has
-     * been added or removed, these actions would be notified.
+     * been updated (UPDATE_CONFIG_PARAM), a configuration-set is set
+     * (SET_CONFIG_SET), a configuration set has been updated
+     * (UPDATE_CONFIG_SET), a configuration set has been added
+     * (ADD_CONFIG_SET) or removed (REMOVE_CONFIG_SET), the active
+     * configuration set has been changed (ACTIVATE_CONFIG_SET), these
+     * actions would be notified.
      *
      * - UPDATE_CONFIG_PARAM: <config set name>.<config param name>
+     *   - SDOPackage::Configuration::set_configuration_parameter
      * - SET_CONFIG_SET: <config set name>
+     *   - SDOPackage::Configuration::set_configuration_set_values
      * - ADD_CONFIG_SET: <config set name>
+     *   - SDOPackage::Configuration::add_configuration_set
      * - UPDATE_CONFIG_SET: <config set name>
+     *   - Apply configuration-set values into actual variables.
      * - REMOVE_CONFIG_SET: <config set name>
+     *   - SDOPackage::Configuration::remove_configuration_set
      * - ACTIVATE_CONFIG_SET:  <config set name>
+     *   - SDOPackage::Configuration::activate_configuration_set
      *
      * @endif
      */

Modified: trunk/OpenRTM-aist/src/ext/sdo/observer/ComponentObserverConsumer.cpp
===================================================================
--- trunk/OpenRTM-aist/src/ext/sdo/observer/ComponentObserverConsumer.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/ext/sdo/observer/ComponentObserverConsumer.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -637,7 +637,7 @@
    * @else
    * @brief Unsetting Configurationlistener
    * @endif
-     */
+   */
   void ComponentObserverConsumer::unsetConfigurationListeners()
   {
 

Modified: trunk/OpenRTM-aist/src/lib/coil/win32/coil_config.props
===================================================================
--- trunk/OpenRTM-aist/src/lib/coil/win32/coil_config.props	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/coil/win32/coil_config.props	2011-05-31 00:23:51 UTC (rev 2151)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Label="UserMacros">
-    <coil_dllver />
+    <coil_dllver>110</coil_dllver>
     <coil_version>1.0.0</coil_version>
     <coil_includes>$(coil_root);..</coil_includes>
     <coil_libdir>$(coil_root)\bin</coil_libdir>

Modified: trunk/OpenRTM-aist/src/lib/coil/win32/coil_config.vsprops
===================================================================
--- trunk/OpenRTM-aist/src/lib/coil/win32/coil_config.vsprops	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/coil/win32/coil_config.vsprops	2011-05-31 00:23:51 UTC (rev 2151)
@@ -18,11 +18,11 @@
 	/>
 	<UserMacro
 		Name="coil_dllver"
-		Value=""
+		Value="110"
 	/>
 	<UserMacro
 		Name="coil_version"
-		Value="1.0.0"
+		Value="1.1.0"
 	/>
 	<!-- coil macros -->
 	<UserMacro

Modified: trunk/OpenRTM-aist/src/lib/rtm/ComponentActionListener.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/ComponentActionListener.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/ComponentActionListener.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -77,6 +77,7 @@
   
   PreComponentActionListenerHolder::~PreComponentActionListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -87,15 +88,19 @@
   }
 
   
-  void PreComponentActionListenerHolder::addListener(PreComponentActionListener* listener,
-                                                     bool autoclean)
+  void PreComponentActionListenerHolder::
+  addListener(PreComponentActionListener* listener,
+              bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
   
   
-  void PreComponentActionListenerHolder::removeListener(PreComponentActionListener* listener)
+  void PreComponentActionListenerHolder::
+  removeListener(PreComponentActionListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     
     for (; it != m_listeners.end(); ++it)
@@ -116,6 +121,7 @@
   
   void PreComponentActionListenerHolder::notify(UniqueId ec_id)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(ec_id);
@@ -137,6 +143,7 @@
 
   PostComponentActionListenerHolder::~PostComponentActionListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -150,6 +157,7 @@
   void PostComponentActionListenerHolder::
   addListener(PostComponentActionListener* listener, bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
 
@@ -157,6 +165,7 @@
   void PostComponentActionListenerHolder::
   removeListener(PostComponentActionListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     for (; it != m_listeners.end(); ++it)
       {
@@ -177,6 +186,7 @@
   void PostComponentActionListenerHolder::notify(UniqueId ec_id,
                                                  ReturnCode_t ret)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(ec_id, ret);
@@ -198,6 +208,7 @@
   
   PortActionListenerHolder::~PortActionListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -211,12 +222,14 @@
   void PortActionListenerHolder::addListener(PortActionListener* listener,
                                              bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
   
   
   void PortActionListenerHolder::removeListener(PortActionListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     
     for (; it != m_listeners.end(); ++it)
@@ -237,6 +250,7 @@
   
   void PortActionListenerHolder::notify(const RTC::PortProfile& pprofile)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(pprofile);
@@ -259,6 +273,7 @@
   
   ExecutionContextActionListenerHolder::~ExecutionContextActionListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -269,15 +284,19 @@
   }
 
   
-  void ExecutionContextActionListenerHolder::addListener(ExecutionContextActionListener* listener,
-                                             bool autoclean)
+  void ExecutionContextActionListenerHolder::
+  addListener(ExecutionContextActionListener* listener,
+              bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
   
   
-  void ExecutionContextActionListenerHolder::removeListener(ExecutionContextActionListener* listener)
+  void ExecutionContextActionListenerHolder::
+  removeListener(ExecutionContextActionListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     
     for (; it != m_listeners.end(); ++it)
@@ -298,6 +317,7 @@
   
   void ExecutionContextActionListenerHolder::notify(UniqueId ec_id)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(ec_id);

Modified: trunk/OpenRTM-aist/src/lib/rtm/ComponentActionListener.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/ComponentActionListener.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/ComponentActionListener.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -21,6 +21,8 @@
 
 #include <vector>
 #include <utility>
+#include <coil/Mutex.h>
+#include <coil/Guard.h>
 #include <rtm/RTC.h>
 #include <rtm/idl/RTCSkel.h>
 #include <rtm/ConnectorBase.h>
@@ -592,6 +594,7 @@
   class PreComponentActionListenerHolder
   {
     typedef std::pair<PreComponentActionListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -674,6 +677,7 @@
       
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
 
@@ -696,6 +700,7 @@
   class PostComponentActionListenerHolder
   {
     typedef std::pair<PostComponentActionListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -779,6 +784,7 @@
     
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
 
@@ -802,6 +808,7 @@
   class PortActionListenerHolder
   {
     typedef std::pair<PortActionListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -885,6 +892,7 @@
     
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
   /*!
@@ -906,6 +914,7 @@
   class ExecutionContextActionListenerHolder
   {
     typedef std::pair<ExecutionContextActionListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -989,6 +998,7 @@
     
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
 

Modified: trunk/OpenRTM-aist/src/lib/rtm/ConfigurationListener.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/ConfigurationListener.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/ConfigurationListener.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -65,6 +65,7 @@
   
   ConfigurationParamListenerHolder::~ConfigurationParamListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -79,6 +80,7 @@
   addListener(ConfigurationParamListener* listener,
               bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
   
@@ -86,6 +88,7 @@
   void ConfigurationParamListenerHolder::
   removeListener(ConfigurationParamListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     
     for (; it != m_listeners.end(); ++it)
@@ -107,6 +110,7 @@
   void ConfigurationParamListenerHolder::notify(const char* config_set_name,
                                                 const char* config_param_name)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(config_set_name, config_param_name);
@@ -129,6 +133,7 @@
   
   ConfigurationSetListenerHolder::~ConfigurationSetListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -143,6 +148,7 @@
   addListener(ConfigurationSetListener* listener,
               bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
   
@@ -150,6 +156,7 @@
   void ConfigurationSetListenerHolder::
   removeListener(ConfigurationSetListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     
     for (; it != m_listeners.end(); ++it)
@@ -171,6 +178,7 @@
   void ConfigurationSetListenerHolder::
   notify(const coil::Properties& config_set)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(config_set);
@@ -192,6 +200,7 @@
 
   ConfigurationSetNameListenerHolder::~ConfigurationSetNameListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -205,6 +214,7 @@
   void ConfigurationSetNameListenerHolder::
   addListener(ConfigurationSetNameListener* listener, bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
 
@@ -212,6 +222,7 @@
   void ConfigurationSetNameListenerHolder::
   removeListener(ConfigurationSetNameListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     for (; it != m_listeners.end(); ++it)
       {
@@ -231,6 +242,7 @@
     
   void ConfigurationSetNameListenerHolder::notify(const char* config_set_name)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(config_set_name);

Modified: trunk/OpenRTM-aist/src/lib/rtm/ConfigurationListener.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/ConfigurationListener.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/ConfigurationListener.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -21,6 +21,8 @@
 
 #include <vector>
 #include <coil/Properties.h>
+#include <coil/Mutex.h>
+#include <coil/Guard.h>
 
 namespace RTC
 {
@@ -380,6 +382,7 @@
   class ConfigurationParamListenerHolder
   {
     typedef std::pair<ConfigurationParamListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -463,6 +466,7 @@
     
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
 
@@ -486,6 +490,7 @@
   class ConfigurationSetListenerHolder
   {
     typedef std::pair<ConfigurationSetListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -569,6 +574,7 @@
     
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
 
@@ -592,6 +598,7 @@
   class ConfigurationSetNameListenerHolder
   {
     typedef std::pair<ConfigurationSetNameListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -674,6 +681,7 @@
       
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
   //------------------------------------------------------------

Modified: trunk/OpenRTM-aist/src/lib/rtm/ConnectorListener.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/ConnectorListener.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/ConnectorListener.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -53,6 +53,7 @@
 
   ConnectorDataListenerHolder::~ConnectorDataListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -66,6 +67,7 @@
   void ConnectorDataListenerHolder::
   addListener(ConnectorDataListener* listener, bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
 
@@ -73,6 +75,7 @@
   void ConnectorDataListenerHolder::
   removeListener(ConnectorDataListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     for (; it != m_listeners.end(); ++it)
       {
@@ -93,6 +96,7 @@
   void ConnectorDataListenerHolder::notify(const ConnectorInfo& info,
                                            const cdrMemoryStream& cdrdata)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(info, cdrdata);
@@ -114,6 +118,7 @@
   
   ConnectorListenerHolder::~ConnectorListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -127,12 +132,14 @@
   void ConnectorListenerHolder::addListener(ConnectorListener* listener,
                                             bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
   
 
   void ConnectorListenerHolder::removeListener(ConnectorListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     
     for (; it != m_listeners.end(); ++it)
@@ -153,6 +160,7 @@
   
   void ConnectorListenerHolder::notify(const ConnectorInfo& info)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(info);

Modified: trunk/OpenRTM-aist/src/lib/rtm/ConnectorListener.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/ConnectorListener.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/ConnectorListener.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -22,6 +22,8 @@
 
 #include <vector>
 #include <utility>
+#include <coil/Mutex.h>
+#include <coil/Guard.h>
 #include <rtm/RTC.h>
 #include <rtm/ConnectorBase.h>
 
@@ -602,6 +604,7 @@
   class ConnectorDataListenerHolder
   {
     typedef std::pair<ConnectorDataListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -686,6 +689,7 @@
     
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
 
@@ -707,6 +711,7 @@
   class ConnectorListenerHolder
   {
     typedef std::pair<ConnectorListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -789,6 +794,7 @@
       
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
   
   /*!

Modified: trunk/OpenRTM-aist/src/lib/rtm/InPort.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/InPort.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/InPort.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -52,8 +52,6 @@
    * なっているが、コンストラクタ引数によりサイズを指定することができる。
    * データはフラグによって未読、既読状態が管理され、isNew(), write(), read(),
    * isFull(), isEmpty() 等のメソッドによりハンドリングすることができる。
-   *
-   *
    *   
    * OnRead系コールバック (読み出しに起因するイベントによりコールされる)
    *
@@ -65,90 +63,6 @@
    *     データの変換を行う。引数にはバッファから読み出された値が与えられ、
    *     変換後のデータを戻り値として返す。この値がread()の返す値となる。
    *
-   *
-   * OnBuffer系コールバック (バッファに起因するイベントによりコールされる)
-   *
-   * - void OnBufferOverwrite::operator(ConnectorId):
-   *     ConnectorBase::write() コール時に、バッファが上書きモードに設定
-   *     されており、バッファがいっぱいの場合に呼び出されるコールバック。
-   *     コネクタのIDが引数に与えられる。
-   *
-   * - void OnBufferEmpty::operator(ConnectorId): 
-   *     コネクタがバッファを読みだす際に、バッファが空の場合に呼び出される。
-   *     コネクタのIDが引数に与えられる。
-   *
-   * - void OnBufferReadTimeout::operator(ConnectorId):
-   *     コネクタがバッファを読みだす際に、バッファが空でかつ、読み出しが
-   *     タイムアウトした場合に呼び出されるコールバック。コネクタのID
-   *     が引数に与えられる。
-   *
-   * - void OnBufferFull::operator(ConnectorId, DataType):
-   *     ConnectorBase::write() コール時に、バッファがいっぱいの場合に
-   *     呼び出されるコールバック。コネクタのIDおよび書き込めなかったデータ
-   *     が引数に与えられる。
-   *
-   * - void OnBufferWriteTimeout::operator(ConnectorId, DataType):
-   *     ConnectorBase::write() コール時に、バッファがいっぱいで書込みが
-   *     タイムアウトした場合に呼び出されるコールバック。コネクタのID
-   *     および書き込めなかったデータが引数に与えられる。
-   *
-   *
-   * OnConnect系コールバック (接続に起因するイベントによりコールされる)
-   * 
-   * - void OnConnect::operator(ConnectorProfile):
-   *      ポートの接続時に呼び出されるコールバック。引数にConnectorProfile
-   *      が与えられる。
-   *
-   * - void OnDisconnect::operator(ConnectorId):
-   *      ポートの接続切断時に呼び出されるコールバック。引数にコネクタID
-   *      が与えられる。  
-   *
-   * - void OnConnectionLost::operator(ConnectorId):
-   *      ポートの接続がロストした場合に呼び出されるコールバック。
-   *      引数にコネクタIDが与えられる。InPortは、相手側OutPortとの
-   *      接続をロストした場合、接続を強制的に切断するので、
-   *      引き続き OnDisconnect コールバックが呼び出される。
-   *
-   *
-   * OnReceive系コールバック (送信側に起因するイベントによりコールされる)
-   *
-   * - void OnSend::operator(ConnectorId):
-   *      データがInPortに対して送られる際に呼び出されるコールバック。
-   *      引数にコネクタIDが与えられる。
-   *
-   * - void OnSenderTimeout::operator(ConnectorId):
-   *      データがInPortに対して送られたが、送信がタイムアウトした際に
-   *      呼び出されるコールバック。引数にコネクタIDが与えられる。
-   *      InPortのプロバイダおよびコンシューマが対応している場合に限り有効。
-   *
-   * - void OnSenderError::operator(ConnectorId):
-   *      データがInPortに対して送られたが、何らかのエラーをInPort側が
-   *      返した場合に呼び出されるコールバック。
-   *      引数には、コネクタIDが与えられる。
-   *
-   *
-   * OnReceive系コールバック (受信側に起因するイベントによりコールされる)
-   * 
-   * - void OnReceiverFull::operator(ConnectorId):
-   *      データがInPortに送られるものの、InPort側のバッファがいっぱいの場合に
-   *      これを通知するために呼ばれるコールバック。
-   *       引数には、コネクタIDが与えられる。
-   *
-   * - void OnReceiverTimeout::operator(ConnectorId):
-   *      データがInPortに送られるものの、InPort側のバッファがいっぱいで
-   *      タイムアウトした場合にこれを通知するために呼ばれるコールバック。
-   *       引数には、コネクタIDが与えられる。
-   *
-   * - void OnReceiverError::operator(ConnectorId):
-   *       データがInPortに送られるものの、InPort側で何らかのエラーを返した
-   *       場合に呼び出されるコールバック。
-   *       引数には、コネクタIDが与えられる。
-   *
-   * - void OnReceived::operator(ConnectorId):
-   *       データの送信および受信が完了した際に呼び出されるコールバック。
-   *       引数には、コネクタIDが与えられる。
-   *
-   *
    * @since 0.2.0
    *
    * @else
@@ -157,15 +71,15 @@
    *
    * @brief InPort template class
    *
-   * This is a template class that implements InPort.
-   * <T> is the type defined in BasicDataType.idl and must be the structure which
-   * has both Time type tm and type-T data as a member. InPort has a ring
-   * buffer internally, and stores the received data externally in this buffer
-   * one by one. The size of ring buffer can be specified according to 
-   * the argument of constructor, though the default size is 64. Unread
-   * data and data which is already read are managed with the flag, and the
-   * data can be handled by the isNew(), write(), read(), isFull() and isEmpty()
-   * method etc. 
+   * This is a template class that implements InPort.  <T> is the type
+   * defined in BasicDataType.idl and must be the structure which has
+   * both Time type tm and type-T data as a member. InPort has a ring
+   * buffer internally, and stores the received data externally in
+   * this buffer one by one. The size of ring buffer can be specified
+   * according to the argument of constructor, though the default size
+   * is 64. Unread data and data which is already read are managed
+   * with the flag, and the data can be handled by the isNew(),
+   * write(), read(), isFull() and isEmpty() method etc.
    *
    * @since 0.2.0
    *

Modified: trunk/OpenRTM-aist/src/lib/rtm/InPortConsumer.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/InPortConsumer.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/InPortConsumer.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -253,6 +253,10 @@
   };
 
   typedef ::coil::GlobalFactory<InPortConsumer> InPortConsumerFactory;
+
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+  EXTERN template class DLL_PLUGIN ::coil::GlobalFactory<InPortConsumer>;
+#endif
 };     // namespace RTC
 
 #endif // RTC_INPORTCONSUMER_H

Modified: trunk/OpenRTM-aist/src/lib/rtm/InPortProvider.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/InPortProvider.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/InPortProvider.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -527,5 +527,8 @@
    */
   typedef ::coil::GlobalFactory<InPortProvider> InPortProviderFactory;
 
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+  EXTERN template class DLL_PLUGIN ::coil::GlobalFactory<InPortProvider>;
+#endif
 };     // namespace RTC
 #endif // RTC_INPORTPROVIDER_H

Modified: trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -38,6 +38,7 @@
 #include <coil/OS.h>
 #include <rtm/FactoryInit.h>
 #include <rtm/CORBA_IORUtil.h>
+#include <rtm/SdoServiceConsumerBase.h>
 
 #if defined(minor)
 #undef minor
@@ -289,6 +290,9 @@
 	  }
       }
 
+    m_config["sdo.service.consumer.available_services"]
+      = coil::flatten(SdoServiceConsumerFactory::instance().getIdentifiers());
+
     if (m_initProc != NULL)
       {
         m_initProc(this);
@@ -1751,7 +1755,7 @@
 		else if (c == 'v')  str += prop["version"];
 		else if (c == 'V')  str += prop["vendor"];
 		else if (c == 'c')  str += prop["category"];
-		else if (c == 'h')  str += m_config["manager.os.hostname"];
+		else if (c == 'h')  str += m_config["os.hostname"];
 		else if (c == 'M')  str += m_config["manager.name"];
 		else if (c == 'p')  str += m_config["manager.pid"];
 		else str.push_back(c);

Modified: trunk/OpenRTM-aist/src/lib/rtm/OutPort.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/OutPort.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/OutPort.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -78,7 +78,6 @@
    * 扱うデータ型 DataType をとる。
    *
    *
-   *
    * OnWrite系コールバック (書込みに起因するイベントによりコールされる)
    *
    * - void OnWrite<DataType>::operator()(const DataType): 
@@ -89,118 +88,6 @@
    *     データの変換を行う。operator()()の戻り値がシリアライズされバッファに
    *     書き込まれる。
    *
-   *
-   * OnBuffer系コールバック (バッファに起因するイベントによりコールされる)
-   *
-   * 2種類のコールバックファンクタのシグニチャ
-   * ConnectorDataCallback::operator()(ConnectorId, const cdrStream&)
-   * ConnectorCallback::operator()(ConnectorId)
-   *
-   * - void OnBufferWrite::operator()(ConnectorId, cdrStream):
-   *     BufferBase::write() コール時に単純に呼び出されるコールバック。
-   *     引数にはwrite()されるシリアライズ済みのデータが与えられる。        
-   *   
-   * - void OnBufferFull::operator()(ConnectorId, cdrStream):
-   *     BufferBase::write() コール時に、バッファがいっぱいの場合に
-   *     呼び出されるコールバック。コネクタのIDおよび書き込めなかったデータ
-   *     が引数に与えられる。
-   *
-   * - void OnBufferWriteTimeout::operator()(ConnectorId, cdrStream):
-   *     ConnectorBase::write() コール時に、バッファがいっぱいで書込みが
-   *     タイムアウトした場合に呼び出されるコールバック。コネクタのID
-   *     および書き込めなかったデータが引数に与えられる。
-   *
-   * - void OnBufferOverwrite::operator()(ConnectorId, cdrStream):
-   *     BufferBase::write() コール時に、バッファが上書きモードに設定
-   *     されており、バッファがいっぱいの場合に呼び出されるコールバック。
-   *     コネクタのIDが引数に与えられる。
-   *
-   *
-   * - void OnBufferRead::operator()(ConnectorId, cdrStream):
-   *     BufferBase::read() コール時に単純に呼び出されるコールバック。
-   *     引数には read() で返されるシリアライズ済みのデータが与えられる。
-   *
-   * - void OnBufferEmpty::operator()(ConnectorId): 
-   *     コネクタがバッファを読みだす際に、バッファが空の場合に呼び出される。
-   *     コネクタのIDが引数に与えられる。
-   *
-   * - void OnBufferReadTimeout::operator()(ConnectorId):
-   *     コネクタがバッファを読みだす際に、バッファが空でかつ、読み出しが
-   *     タイムアウトした場合に呼び出されるコールバック。コネクタのID
-   *     が引数に与えられる。
-   *
-   *
-   * OnConnect系コールバック (接続に起因するイベントによりコールされる)
-   *
-   * 1種類のコールバックファンクタのシグニチャ
-   * ConnectionCallback::operator()(ConnectorProfile)
-   * 
-   * - void OnConnect::operator()(ConnectorProfile):
-   *     ポートの接続時に呼び出されるコールバック。引数にConnectorProfile
-   *     が与えられる。
-   *
-   * - void OnDisconnect::operator()(ConnectorId):
-   *     ポートの接続切断時に呼び出されるコールバック。引数にコネクタID
-   *     が与えられる。  
-   *
-   * - void OnConnectionLost::operator()(ConnectorId):
-   *     ポートの接続がロストした場合に呼び出されるコールバック。
-   *     引数にコネクタIDが与えられる。OutPortは、相手側InPortとの
-   *     接続をロストした場合、接続を強制的に切断するので、
-   *     引き続き OnDisconnect コールバックが呼び出される。
-   *
-
-   *
-   *
-   * - void OnSend:operator()(ConnectorId, cdrStream):
-   *     データがInPortに対して送られる際に呼び出されるコールバック。
-   *     引数にコネクタIDが与えられる。
-   *
-   * - void OnReceived::operator()(ConnectorId, cdrStream):
-   *     データの送信および受信が完了した際に呼び出されるコールバック。
-   *     引数には、コネクタIDが与えられる。
-   *
-
-   *
-   *
-   * OnSender系コールバック (送信側に起因するイベントによりコールされる)
-   *   以下は、パブリッシャが存在する接続、すなわち dataflow type = push 
-   *   のときのみ有効。
-   *
-   * - void OnSenderTimeout::operator()(ConnectorId, cdrStream):
-   *     データがInPortに対して送られたが、送信がタイムアウトした際に
-   *     呼び出されるコールバック。引数にコネクタIDが与えられる。
-   *     InPortのプロバイダおよびコンシューマが対応している場合に限り有効。
-   *
-   * - void OnSenderError::operator()(ConnectorId, cdrStream):
-   *     データがInPortに対して送られたが、何らかのエラーをInPort側が
-   *     返した場合に呼び出されるコールバック。
-   *     引数には、コネクタIDが与えられる。
-   *
-   *
-   * OnReceiver系コールバック (受信側に起因するイベントによりコールされる)
-   *   以下は、パブリッシャが存在する接続、すなわち dataflow type = push 
-   *   のときのみ有効。
-   * 
-   * - void OnReceiverFull::operator()(ConnectorId, cdrStream):
-   *     データがInPortに送られるものの、InPort側のバッファがいっぱいの場合に
-   *     これを通知するために呼ばれるコールバック。
-   *     引数には、コネクタIDが与えられる。
-   *
-   * - void OnReceiverTimeout::operator()(ConnectorId, cdrStream):
-   *     データがInPortに送られるものの、InPort側のバッファがいっぱいで
-   *     タイムアウトした場合にこれを通知するために呼ばれるコールバック。
-   *     引数には、コネクタIDが与えられる。
-   *
-   * - void OnReceiverError::operator()(ConnectorId, cdrStream):
-   *     データがInPortに送られるものの、InPort側で何らかのエラーを返した
-   *     場合に呼び出されるコールバック。
-   *     引数には、コネクタIDが与えられる。
-   *
-   *
-   *
-   *
-   *
    * @since 0.2.0
    *
    * @else

Modified: trunk/OpenRTM-aist/src/lib/rtm/OutPortConsumer.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/OutPortConsumer.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/OutPortConsumer.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -413,6 +413,9 @@
    */
   typedef ::coil::GlobalFactory<OutPortConsumer> OutPortConsumerFactory;
 
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+  EXTERN template class DLL_PLUGIN ::coil::GlobalFactory<OutPortConsumer>;
+#endif
 };     // namespace RTC
 #endif // RTC_OUTPORTCONSUMER_H
 

Modified: trunk/OpenRTM-aist/src/lib/rtm/OutPortProvider.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/OutPortProvider.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/OutPortProvider.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -547,5 +547,8 @@
    */
   typedef ::coil::GlobalFactory<OutPortProvider> OutPortProviderFactory;
 
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+  EXTERN template class DLL_PLUGIN ::coil::GlobalFactory<OutPortProvider>;
+#endif
 }; // namespace RTC
 #endif // RTC_OUTPORTPROVIDER_H

Modified: trunk/OpenRTM-aist/src/lib/rtm/PeriodicExecutionContext.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/PeriodicExecutionContext.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/PeriodicExecutionContext.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -141,6 +141,7 @@
   int PeriodicExecutionContext::svc(void)
   {
     RTC_TRACE(("svc()"));
+    int count(0);
     do 
       {
         m_worker.mutex_.lock();
@@ -155,17 +156,25 @@
 	  }
 	m_worker.mutex_.unlock();
         coil::TimeValue t1(coil::gettimeofday());
-        RTC_PARANOID(("Period:    %f [s]", (double)m_period));
-        RTC_PARANOID(("Execution: %f [s]", (double)(t1 - t0)));
-        RTC_PARANOID(("Sleep:     %f [s]", (double)(m_period - (t1 - t0))));
+        if (count > 1000)
+          {
+            RTC_PARANOID(("Period:    %f [s]", (double)m_period));
+            RTC_PARANOID(("Execution: %f [s]", (double)(t1 - t0)));
+            RTC_PARANOID(("Sleep:     %f [s]", (double)(m_period - (t1 - t0))));
+          }
         coil::TimeValue t2(coil::gettimeofday());
         if (!m_nowait && m_period > (t1 - t0))
           {
-            RTC_PARANOID(("sleeping..."));
+            if (count > 1000) { RTC_PARANOID(("sleeping...")); }
             coil::sleep((coil::TimeValue)(m_period - (t1 - t0)));
           }
-        coil::TimeValue t3(coil::gettimeofday());
-        RTC_PARANOID(("Slept:     %f [s]", (double)(t3 - t2)));
+        if (count > 1000)
+          {
+            coil::TimeValue t3(coil::gettimeofday());
+            RTC_PARANOID(("Slept:     %f [s]", (double)(t3 - t2)));
+            count = 0;
+          }
+        ++count;
       } while (m_svc);
 
     return 0;

Modified: trunk/OpenRTM-aist/src/lib/rtm/PeriodicTaskFactory.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/PeriodicTaskFactory.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/PeriodicTaskFactory.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -26,8 +26,12 @@
 namespace RTC
 {
 
-  typedef coil::GlobalFactory<coil::PeriodicTaskBase> PeriodicTaskFactory;
+  typedef ::coil::GlobalFactory<coil::PeriodicTaskBase> PeriodicTaskFactory;
 
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+  EXTERN template class DLL_PLUGIN
+                     ::coil::GlobalFactory<coil::PeriodicTaskBase>;
+#endif
 };
 
 #endif // RTC_PERIODICTASKFACTORY_H

Modified: trunk/OpenRTM-aist/src/lib/rtm/PortAdmin.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/PortAdmin.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/PortAdmin.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -35,16 +35,24 @@
     find_port_name(const char* name) : m_name(name) {};
     bool operator()(const PortService_ptr& p)
     {
+      try
+        {
 #ifndef ORB_IS_RTORB
-      PortProfile_var prof(p->get_port_profile());
-      std::string name(prof->name);
+          PortProfile_var prof(p->get_port_profile());
+          std::string name(prof->name);
 #else // ORB_IS_RTORB
-      PortProfile *pp;
-      pp = p->get_port_profile();
-      std::string name( pp->name);
-      delete pp;
+          PortProfile *pp;
+          pp = p->get_port_profile();
+          std::string name( pp->name);
+          delete pp;
 #endif // ORB_IS_RTORB
-      return m_name == name;
+          return m_name == name;
+        }
+      catch (...)
+        {
+          return false;
+        }
+      return false;
     }
     const std::string m_name;
   };
@@ -128,9 +136,16 @@
 
     for (CORBA::ULong i (0); i < len; ++i)
       {
-        pp = m_portRefs[i]->get_port_profile();
-        port_profs[i] = *(pp);
-        delete pp;
+        try
+          {
+            pp = m_portRefs[i]->get_port_profile();
+            port_profs[i] = *(pp);
+            delete pp;
+          }
+        catch (...)
+          {
+            ;
+          }
       }
 #endif // ORB_IS_RTORB
     return port_profs;
@@ -199,15 +214,24 @@
   bool PortAdmin::addPort(PortService_ptr port)
   {
     // Check for duplicate
-    PortProfile_var prof(port->get_port_profile());
-    std::string name(prof->name);
+    try
+      {
+        PortProfile_var prof(port->get_port_profile());
+        std::string name(prof->name);
+        
 // Why RtORB delete _var object explicitly?
 #ifdef ORB_IS_RTORB
-    delete prof._retn();
+        delete prof._retn();
 #endif
-    if (CORBA_SeqUtil::find(m_portRefs, find_port_name(name.c_str())) != -1)
-      return false;
-
+        if (CORBA_SeqUtil::find(m_portRefs, find_port_name(name.c_str())) != -1)
+          {
+            return false;
+          }
+      }
+    catch (...)
+      {
+        return false;
+      }
     CORBA_SeqUtil::push_back(m_portRefs, RTC::PortService::_duplicate(port));
     return true;
   }

Modified: trunk/OpenRTM-aist/src/lib/rtm/PortConnectListener.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/PortConnectListener.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/PortConnectListener.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -101,6 +101,7 @@
   
   PortConnectListenerHolder::~PortConnectListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -114,12 +115,14 @@
   void PortConnectListenerHolder::addListener(PortConnectListener* listener,
                                               bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
   
   
   void PortConnectListenerHolder::removeListener(PortConnectListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     
     for (; it != m_listeners.end(); ++it)
@@ -141,6 +144,7 @@
   void PortConnectListenerHolder::notify(const char* portname,
                                          RTC::ConnectorProfile& profile)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(portname, profile);
@@ -162,6 +166,7 @@
 
   PortConnectRetListenerHolder::~PortConnectRetListenerHolder()
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         if (m_listeners[i].second)
@@ -175,6 +180,7 @@
   void PortConnectRetListenerHolder::
   addListener(PortConnectRetListener* listener, bool autoclean)
   {
+    Guard guard(m_mutex);
     m_listeners.push_back(Entry(listener, autoclean));
   }
 
@@ -182,6 +188,7 @@
   void PortConnectRetListenerHolder::
   removeListener(PortConnectRetListener* listener)
   {
+    Guard guard(m_mutex);
     std::vector<Entry>::iterator it(m_listeners.begin());
     for (; it != m_listeners.end(); ++it)
       {
@@ -203,6 +210,7 @@
                                             RTC::ConnectorProfile& profile,
                                             ReturnCode_t ret)
   {
+    Guard guard(m_mutex);
     for (int i(0), len(m_listeners.size()); i < len; ++i)
       {
         m_listeners[i].first->operator()(portname, profile, ret);

Modified: trunk/OpenRTM-aist/src/lib/rtm/PortConnectListener.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/PortConnectListener.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/PortConnectListener.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -21,6 +21,8 @@
 
 #include <vector>
 #include <utility>
+#include <coil/Mutex.h>
+#include <coil/Guard.h>
 #include <rtm/RTC.h>
 #include <rtm/idl/RTCSkel.h>
 
@@ -274,6 +276,7 @@
   class PortConnectListenerHolder
   {
     typedef std::pair<PortConnectListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -356,6 +359,7 @@
       
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
 
@@ -378,6 +382,7 @@
   class PortConnectRetListenerHolder
   {
     typedef std::pair<PortConnectRetListener*, bool> Entry;
+    typedef coil::Guard<coil::Mutex> Guard;
   public:
     /*!
      * @if jp
@@ -463,6 +468,7 @@
     
   private:
     std::vector<Entry> m_listeners;
+    coil::Mutex m_mutex;
   };
 
   /*!

Modified: trunk/OpenRTM-aist/src/lib/rtm/PublisherBase.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/PublisherBase.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/PublisherBase.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -363,5 +363,8 @@
 
   typedef coil::GlobalFactory<PublisherBase> PublisherFactory;
 
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+  EXTERN template class DLL_PLUGIN coil::GlobalFactory<PublisherBase>;
+#endif
 };
 #endif // RTC_PUBLISHERBASE_H

Modified: trunk/OpenRTM-aist/src/lib/rtm/SdoServiceAdmin.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/SdoServiceAdmin.cpp	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/SdoServiceAdmin.cpp	2011-05-31 00:23:51 UTC (rev 2151)
@@ -64,11 +64,16 @@
 
     // getting consumer types from RTC's properties
     ::coil::Properties& prop(m_rtobj.getProperties());
-    ::std::string constypes = prop["sdo_service.consumer_types"];
+    ::std::string constypes = prop["sdo.service.consumer.allowed_services"];
     m_consumerTypes = ::coil::split(constypes, ",", true);
-    RTC_DEBUG(("sdo_service.consumer_types: %s",
+    RTC_DEBUG(("sdo.service.consumer.allowed_services: %s",
                coil::flatten(m_consumerTypes).c_str()));
 
+    prop["sdo.service.consumer.available_services"]
+      = coil::flatten(SdoServiceConsumerFactory::instance().getIdentifiers());
+    RTC_DEBUG(("sdo.service.consumer.allowed_services: %s",
+               prop["sdo.service.consumer.available_services"].c_str()));
+
     // If types include '[Aa][Ll][Ll]', all types allowed in this RTC
     for (size_t i(0); i < m_consumerTypes.size(); ++i)
       {
@@ -77,7 +82,7 @@
         if (tmp == "all")
           {
             m_allConsumerAllowed = true;
-            RTC_DEBUG(("sdo_service.consumer_types: ALL"));
+            RTC_DEBUG(("sdo.service.consumer.allowed_services: ALL"));
           }
       }
   }
@@ -128,21 +133,21 @@
   bool SdoServiceAdmin::
   addSdoServiceConsumer(const SDOPackage::ServiceProfile& sProfile)
   {
+    Guard guard(m_consumer_mutex);
     RTC_TRACE(("addSdoServiceConsumer(IFR = %s)",
                static_cast<const char*>(sProfile.interface_type)));
-    SDOPackage::ServiceProfile profile(sProfile);
     
     // Not supported consumer type -> error return
     if (!isAllowedConsumerType(sProfile))  { return false; }
     if (!isExistingConsumerType(sProfile)) { return false; }
-    if (strncmp(profile.id, "", 1) == 0)   
+    RTC_DEBUG(("Valid SDO service required"));
+    if (strncmp(sProfile.id, "", 1) == 0)   
       {
         RTC_WARN(("No id specified. It should be given by clients."));
         return false;
       }
-
+    RTC_DEBUG(("Valid ID specified"));
     { // re-initialization
-      Guard guard(m_consumer_mutex);
       std::string id(sProfile.id);
       for (size_t i(0); i < m_consumers.size(); ++i)
         {
@@ -155,17 +160,20 @@
             }
         }
     }
+    RTC_DEBUG(("SDO service properly initialized."));
 
     // new pofile
     SdoServiceConsumerFactory& 
       factory(SdoServiceConsumerFactory::instance());
-    const char* ctype = static_cast<const char*>(profile.interface_type);
+    const char* ctype = static_cast<const char*>(sProfile.interface_type);
+    if (ctype == NULL) { return false; }
     SdoServiceConsumerBase* consumer(factory.createObject(ctype));
     if (consumer == NULL) 
       {
         RTC_ERROR(("Hmm... consumer must be created."));
         return false; 
       }
+    RTC_DEBUG(("An SDO service consumer created."));
 
     // initialize
     if (!consumer->init(m_rtobj, sProfile))
@@ -180,9 +188,14 @@
         RTC_INFO(("SDO consumer was deleted by initialization failure"));
         return false;
       }
+    RTC_DEBUG(("An SDO service consumer initialized."));
+    RTC_DEBUG(("id:         %s", static_cast<const char*>(sProfile.id)));
+    RTC_DEBUG(("IFR:        %s",
+               static_cast<const char*>(sProfile.interface_type)));
+    RTC_DEBUG(("properties: %s",
+               NVUtil::toString(sProfile.properties).c_str()));
 
     // store consumer
-    Guard guard(m_consumer_mutex);
     m_consumers.push_back(consumer);
     
     return true;
@@ -197,6 +210,7 @@
    */
   bool SdoServiceAdmin::removeSdoServiceConsumer(const char* id)
   {
+    Guard guard(m_consumer_mutex);
     if (id == NULL || id[0] == '\0')
       {
         RTC_ERROR(("removeSdoServiceConsumer(): id is invalid."));
@@ -204,7 +218,6 @@
       }
     RTC_TRACE(("removeSdoServiceConsumer(id = %s)", id));
 
-    Guard guard(m_consumer_mutex);
     std::string strid(id);
     std::vector<SdoServiceConsumerBase*>::iterator it = m_consumers.begin();
     std::vector<SdoServiceConsumerBase*>::iterator it_end = m_consumers.end();
@@ -213,10 +226,10 @@
         if (strid == static_cast<const char*>((*it)->getProfile().id))
           {
             (*it)->finalize();
-            m_consumers.erase(it);
             SdoServiceConsumerFactory& 
               factory(SdoServiceConsumerFactory::instance());
             factory.deleteObject(*it);
+            m_consumers.erase(it);
             RTC_INFO(("SDO service has been deleted: %s", id));
             return true;
           }

Modified: trunk/OpenRTM-aist/src/lib/rtm/SdoServiceConsumerBase.h
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/SdoServiceConsumerBase.h	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/SdoServiceConsumerBase.h	2011-05-31 00:23:51 UTC (rev 2151)
@@ -12,7 +12,7 @@
  *         Advanced Industrial Science and Technology (AIST), Japan
  *     All rights reserved.
  *
- * $Id: SdoConfiguration.cpp 1971 2010-06-03 08:46:40Z n-ando $
+ * $Id$
  *
  */
 
@@ -22,44 +22,233 @@
 
 #include <coil/Mutex.h>
 #include <coil/Factory.h>
+#include <coil/Timer.h>
 #include <rtm/RTObject.h>
 #include <rtm/idl/SDOPackageStub.h>
-#include <coil/Timer.h>
+
 namespace RTC
 {
-
   /*!
    * @if jp
    *
-   * ::RTC::SdoServiceConsumerFactory&
-   *                     factory(::RTC::SdoServiceConsumerFactory::instance());
+   * @brief SdoServiceConsumer 基底クラス
    *
-   * factory.addFactory(toRepositoryId<IDL Type>(),
-   *                   ::coil::Creator< ::RTC::SdoServiceConsumerBase,
-   *                                    your_sdo_service_consumer_subclass>,
-   *                   ::coil::Destructor< ::RTC::SdoServiceConsumerBase,
-   *                                    your_sdo_service_consumer_subclass>);
+   * SDOで定義されているSDOサービスのコンシューマを実装するための基底ク
+   * ラス。SDOサービスには、外部から提供サービスをRTC(SDO)側で利用する
+   * SDOサービスコンシューマと、RTC(SDO)自身がSDOサービスを提供するSDO
+   * サービスプロバイダがある。すべてのSDOサービスコンシューマはこの基
+   * 底クラスを継承して実装される。
    *
-   * @else
+   * このオブジェクトのライフサイクルは以下の通り。
    *
+   * -# オブジェクトは通常、共有オブジェクト (so, DLL) としてコンパイル・
+   *    リンクされる。
+   * -# マネージャに対してロードされるとモジュール初期化関数によりオブ
+   *    ジェクトファクトリが、SdoServiceConsumerFactory に対して登録さ
+   *    れる。登録のキーにはサービスインターフェースの IFR (interface
+   *    repository) ID が利用され、これによりサービスが区別される。
+   * -# 外部のツールなどからサービスプロバイダがアタッチされた場合、サー
+   *    ビスインターフェースの IFR ID が同一である SDO コンシューマがイ
+   *    ンスタンス化され、提供されたSDOサービスの ServiceProfile (この
+   *    構造体はサービスのオブジェクトリファレンスを含む) がコンシュー
+   *    マにアタッチされる。
+   * -# このときのアタッチシーケンスは以下の通り。
+   *   -# SDO::get_configuration() により Configuration オブジェクトを取得
+   *   -# Configuration::add_service_profile() により外部側の
+   *      SdoServiceProvider を ServiceProfile により RTC に与える。
+   *   -# RTC側でサービスを呼び出す必要が有った場合、この
+   *      SdoServiceConsumer が保持しているサービスオブジェクトプロキシ
+   *      に対して呼び出しを行う
+   * -# 最終的に SdoServiceConsumer が不要になった場合には、
+   *     Configuration::remove_service_profile() が id とともに呼び出され
+   *     SDOサービスコンシューマが RTC から削除される。
    *
+   * <pre>
+   * 
+   *   [RTC] [SDO consumer] [Configuration]  [SDO service]    [Other]
+   *     |          :             |                 |            |
+   *     |          :         get_configuration()   |            |
+   *     |<---------:-------------------------------|------------|
+   *     |          :             |                 |            |
+   *     |          :             |   add_service_profile(prof)  |
+   *     |          :  create()   |<----------------|------------|
+   *     |          |<------------|                 |            |
+   *     |          |         call_sdo_service()    |            |
+   *     |          |-------------|---------------->|            |
+   *     |          |         call_sdo_service2()   |            |
+   *     |          |-------------|---------------->|            |
+   *     |          |             |       :         |            |
+   *     |          |             |                 |            |
+   *     |          |             | remove_service_profile(id)   |
+   *     |          |  delete()   |<----------------|------------|
+   *     |          x<------------|                 |            |
+   *     |                        |                 x            x
    *
+   * </pre>
+   *
+   * このクラスの実装に当たっては、少なくとも以下の純粋仮想関数を実装す
+   * る必要がある。
+   *
+   * - init(): 初期化関数。与えられた RTObject および ServiceProfile か
+   *   ら、当該オブジェクトを初期化する。
+   * - reinit(): 再初期化関数。ServiceProfile は設定情報更新のため同一
+   *   IDで呼び出されることが有るが、その際にこの関数が新たな
+   *   ServiceProfile とともに呼び出される。関数内では、設定の変更など
+   *   再初期化処理を実装する。
+   * - getProfile(): 設定されたプロファイルを返す関数。
+   * - finalize(): 終了処理。コンシューマがデタッチされる際に呼び出され
+   *   る関数。関数内では終了処理を実装する。
+   *
+   * SdoServiceConsumer は通常共有オブジェクトとしてコンパイル・リンク
+   * される。共有オブジェクトのエントリポイントは通常コンパイルされたファ
+   * イル名の basename + "Init" にしておく。以下に、クラス名、ファイル
+   * 名、エントリポイント関数名の推奨例を示す。
+   *
+   * - 実装クラス名: MySdoServiceConusmer 
+   * - ファイル名: MySdoServiceConsumer.h. MySdoServiceConsumer.cpp
+   * - 共有オブジェクト名: MySdoServiceConsumer.so (or DLL)
+   * - エントリポイント関数名: MySdoServiceConsumerInit()
+   *
+   * エントリポイント関数は通常以下のように、SdoServiceConsumerFactory
+   * に当該コンシューマのファクトリ (と解体ファンクタ) を登録する以下の
+   * ような関数になる。
+   *
+   * <pre>
+   * extern "C"
+   * {
+   *   void MySdoServiceConsumerInit()
+   *   {
+   *     RTC::SdoServiceConsumerFactory& factory
+   *       = RTC::SdoServiceConsumerFactory::instance();
+   *     factory.addFactory(CORBA_Util::toRepositoryId<OpenRTM::MySdoService>(),
+   *                        ::coil::Creator< ::RTC::SdoServiceConsumerBase,
+   *                        ::RTC::MySdoServiceConsumer>,
+   *                        ::coil::Destructor< ::RTC::SdoServiceConsumerBase,
+   *                        ::RTC::MySdoServiceConsumer>);
+   *   }
+   * };
+   * </pre>
+   * 
+   * @else
+   *
    * @endif
    *
    */
   class SdoServiceConsumerBase
   {
   public:
+    /*!
+     * @if jp
+     * @brief 仮想デストラクタ
+     * @else
+     * @brief virtual destructor
+     * @endif
+     */
+    virtual ~SdoServiceConsumerBase() {};
+
+    /*!
+     * @if jp
+     * @brief コンシューマクラスの初期化関数
+     *
+     * このオブジェクトの初期化を行う。外部からSDOサービスが
+     * ServiceProfile とともにアタッチされると、SDOコンシューマがインス
+     * タンス化され、その直後に SDO サービスがアタッチされた RTC と与え
+     * られた ServiceProfile を引数としてこの関数が呼ばれる。
+     *
+     * 関数内では、ServiceProfile 内の SDO サービスリファレンスを
+     * CorbaConsumer クラス等を利用しオブジェクト内に保持するとともに、
+     * properties から設定内容を読み込みサービス固有の設定等を行う。与
+     * えられたサービスのオブジェクトリファレンスが不正、あるいは
+     * properties の内容が不正、等の場合は戻り値に false を返す。
+     *
+     * @param rtobj このオブジェクトがインスタンス化された RTC
+     * @param profile 外部から与えられた SDO ServiceProfile
+     * @return 与えられた SDO Service や ServiceProfile が不正の場合 false
+     *
+     * @else
+     * @brief Initialization function of the consumer class
+     *
+     * @endif
+     */
     virtual bool init(RTObject_impl& rtobj,
                       const SDOPackage::ServiceProfile& profile) = 0;
+    /*!
+     * @if jp
+     * @brief コンシューマクラスの再初期化関数
+     *
+     * このオブジェクトの再初期化を行う。ServiceProfile には id フィー
+     * ルドにセッション固有の UUID がセットされているが、同一の id の場
+     * 合、properties に設定された設定情報の変更や、service フィールド
+     * のサービスの参照の変更が行われる。その際に呼ばれるのがこの
+     * reinit() 関数である。実装では、service フィールドのオブジェクト
+     * リファレンスの同一性を確認し、異なっている場合保持しているリファ
+     * レンスを更新する必要がある。また properties には新たな設定が与え
+     * られている可能性があるので、内容を読み込み設定を更新する。
+     *
+     * @param profile 新たに与えられた SDO ServiceProfile
+     * @return 不正な ServiceProfile が与えられた場合は false
+     *
+     * @else
+     * @brief Reinitialization function of the consumer class
+     *
+     * @endif
+     */
     virtual bool reinit(const SDOPackage::ServiceProfile& profile) = 0;
+
+    /*!
+     * @if jp
+     * @brief ServiceProfile を返す
+     *
+     * init()/reinit()で与えられた ServiceProfile は通常オブジェクト内
+     * で保持される。SDO Service 管理フレームワークは管理上このオブジェ
+     * クトに対応する ServiceProfile を必要とするので、この関数では保持
+     * されている ServiceProfile を返す。
+     * 
+     * @return このオブジェクトが保持している ServiceProfile
+     *
+     * @else
+     * @brief Getting ServiceProfile
+     * @endif
+     */
     virtual const SDOPackage::ServiceProfile& getProfile() const = 0;
+
+    /*!
+     * @if jp
+     * @brief 終了処理
+     *
+     * SDOサービスがでタッチされる際に呼び出される終了処理用関数。サー
+     * ビスのでタッチに際して、当該オブジェクトが保持するリソースを解放
+     * するなどの処理を行う。
+     *
+     * @else
+     * @brief Finalization
+     *
+     * @endif
+     */
     virtual void finalize() = 0;
   };
 
+    /*!
+     * @if jp
+     * @brief SdoServiceConsumerFactory の typedef
+     * @else
+     * @brief typedef of sdoServiceConsumerFactory
+     * @endif
+     */
   typedef ::coil::GlobalFactory<
     ::RTC::SdoServiceConsumerBase > SdoServiceConsumerFactory;
-  
+
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+    /*!
+     * @if jp
+     * @brief クラステンプレートの明示的インスタンス化
+     * @else
+     * @brief Explicit instantiation of class template
+     * @endif
+     */
+  EXTERN template class DLL_PLUGIN 
+                     ::coil::GlobalFactory< ::RTC::SdoServiceConsumerBase >;
+#endif  
 }; // namespace RTC
 
 #endif // RTC_SDOSERVICECONSUMERBASE_H

Modified: trunk/OpenRTM-aist/src/lib/rtm/libRTC.vcproj.yaml
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/libRTC.vcproj.yaml	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/src/lib/rtm/libRTC.vcproj.yaml	2011-05-31 00:23:51 UTC (rev 2151)
@@ -23,7 +23,7 @@
       - Key: Optimization
         Value: "0"
       - Key: PreprocessorDefinitions
-        Value: "WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE"
+        Value: "LIBRARY_EXPORTS;WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE"
       - Key: MinimalRebuild
         Value: "true"
       - Key: BasicRuntimeChecks
@@ -76,7 +76,7 @@
       - Key: Optimization
         Value: "Disabled"
       - Key: PreprocessorDefinitions
-        Value: "WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)"
+        Value: "LIBRARY_EXPORTS;WIN32;_DEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)"
       - Key: MinimalRebuild
         Value: "true"
       - Key: BasicRuntimeChecks
@@ -131,7 +131,7 @@
     WholeProgramOptimization: "0"
     VCCLCompilerTool:
       - Key: PreprocessorDefinitions
-        Value: "WIN32;NDEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE"
+        Value: "LIBRARY_EXPORTS;WIN32;NDEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE"
       - Key:         RuntimeLibrary
         Value: "2"
       - Key:         UsePrecompiledHeader
@@ -180,7 +180,7 @@
     VC10_LinkIncrementalCondition: "false"
     VC10_VCCLCompilerTool:
       - Key: PreprocessorDefinitions
-        Value: "WIN32;NDEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)"
+        Value: "LIBRARY_EXPORTS;WIN32;NDEBUG;_WINDOWS;_USRDLL;__WIN32__;__NT__;__OSVERSION__=4;__x86__;_WIN32_WINNT=0x0400;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)"
       - Key:         RuntimeLibrary
         Value: "MultiThreadedDLL"
       - Key: PrecompiledHeader

Modified: trunk/OpenRTM-aist/utils/rtm-skelwrapper/skel_wrapper.py
===================================================================
--- trunk/OpenRTM-aist/utils/rtm-skelwrapper/skel_wrapper.py	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/utils/rtm-skelwrapper/skel_wrapper.py	2011-05-31 00:23:51 UTC (rev 2151)
@@ -6,8 +6,7 @@
 #  @date $Date: 2008-03-06 06:51:10 $
 #  @author Noriaki Ando <n-ando at aist.go.jp>
 # 
-#  Copyright (C) 2004-2007
-#      Task-intelligence Research Group,
+#  Copyright (C) 2004-2011
 #      Intelligent Systems Research Institute,
 #      National Institute of
 #          Advanced Industrial Science and Technology (AIST), Japan
@@ -247,43 +246,53 @@
 			self.data["include_openrtm_idl_decls"] = ""
 		else:
 			self.data["include_openrtm_idl_decls"] = "#  include \"OpenRTM-aist-decls.h\"\n"
-		
 		return
 
-	def print_skel_h(self):
-		f = file(self.data["output_dir"] + self.data["skel_h"], "w")
-		t = yat.Template(skel_h)
-		text=t.generate(self.data)
+	def gen(self, fname, temp_txt):
+		data = self.data
+		t = yat.Template(temp_txt)
+		text = t.generate(data)
+
+		if os.access(fname, os.F_OK): # file exists
+			f = file(fname, "r")
+			oldtext = f.read()
+			f.close()
+
+			newtext = re.sub(" \@date.*?\n", "", text)
+			oldtext2 = re.sub(" \@date.*?\n", "", oldtext)
+			if newtext == oldtext2:
+				print "\"" + fname + \
+			    "\" exists and contents is same."
+				print "No need to generate the file."
+				return
+			else:
+				print "\"", fname, \
+			    "\" already exists but contents are not same"
+
+		f = file(fname, "w")
 		f.write(text)
 		f.close()
-		print self.data["skel_h"], " was generated."
+		print "\"" + fname + "\"" " was generated."
 		return
 
+	def print_skel_h(self):
+		fname = self.data["output_dir"] + self.data["skel_h"]
+		self.gen(fname, skel_h)
+		return
+
 	def print_skel_cpp(self):
-		f = file(self.data["output_dir"] + self.data["skel_cpp"], "w")
-		t = yat.Template(skel_cpp)
-		text=t.generate(self.data)
-                f.write(text)
-                f.close()
-		print self.data["skel_cpp"], " was generated."
+		fname = self.data["output_dir"] + self.data["skel_cpp"]
+		self.gen(fname, skel_cpp)
 		return
 
 	def print_stub_h(self):
-		f = file(self.data["output_dir"] + self.data["stub_h"], "w")
-		t = yat.Template(stub_h)
-		text=t.generate(self.data)
-                f.write(text)
-                f.close()
-		print self.data["stub_h"], " was generated."
+		fname = self.data["output_dir"] + self.data["stub_h"]
+		self.gen(fname, stub_h)
 		return
 
 	def print_stub_cpp(self):
-		f = file(self.data["output_dir"] + self.data["stub_cpp"], "w")
-		t = yat.Template(stub_cpp)
-		text=t.generate(self.data)
-                f.write(text)
-                f.close()
-		print self.data["stub_cpp"], " was generated."
+		fname = self.data["output_dir"] + self.data["stub_cpp"]
+		self.gen(fname, stub_cpp)
 		return
 
 	def print_all(self):

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc10.bat
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc10.bat	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc10.bat	2011-05-31 00:23:51 UTC (rev 2151)
@@ -1,52 +1,64 @@
- at rem
- at rem @brief Visual Studio automatic build script
- at rem @date $Date: 2008-03-06 06:55:42 $
- at rem @author Norkai Ando <n-ando at aist.go.jp>
- at rem
- at rem Copyright (C) 2008-2010
- at rem     Noriaki Ando
- at rem     Task-intelligence Research Group,
- at rem     Intelligent Systems Research Institute,
- at rem     National Institute of
- at rem         Advanced Industrial Science and Technology (AIST), Japan
- at rem     All rights reserved.
- at rem
- at rem $Id: autobuild_vc10.bat 726 2008-05-14 03:05:42Z n-ando $
- at rem
-
- at rem ------------------------------------------------------------
- at rem Notice:
- at rem   omniORB should be under the following OMNI_ROOT directory.
- at rem   RTSE should be under the following OMNI_ROOT directory.
- at rem ------------------------------------------------------------
- at set RTM_ROOT=%~dp0
- at set PATH="C:\Program Files\Microsoft Visual Studio 10.0\VC\vcpackages";%PATH%
- at set OMNI_ROOT=C:\distribution\omniORB-4.1.4_vc10
- at set RTSE_ROOT=C:\distribution\OpenRTP\RTSystemEditor
- at set VC_VERSION=Visual C++ 2010
-
- at rem ============================================================
- at rem copy property sheet
- at rem ============================================================
-copy   etc\rtm_config_omni414.vsprops rtm_config.vsprops
-copy   etc\rtm_config_omni414.props rtm_config.props
-copy   etc\rtm_config_omni414.props examples\USBCamera\rtm_config.props
-copy   coil_config.props examples\USBCamera\coil_config.props
-
- at rem ============================================================
- at rem build OpenRTM-aist
- at rem ============================================================
-
-msbuild /M:2 /t:rebuild /p:configuration=debug OpenRTM-aist_vc10.sln
-msbuild /M:2 /t:rebuild /p:configuration=release OpenRTM-aist_vc10.sln
-
- at rem ============================================================
- at rem build USBCamera examples
- at rem ============================================================
-msbuild /M:2 /t:rebuild /p:configuration=debug examples\USBCamera\USBCamera_vc10.sln
-msbuild /M:2 /t:rebuild /p:configuration=release examples\USBCamera\USBCamera_vc10.sln
-
-cd installer
-call autowix.cmd
-cd ..
-
+ at rem
+ at rem @brief Visual Studio automatic build script
+ at rem @date $Date: 2008-03-06 06:55:42 $
+ at rem @author Norkai Ando <n-ando at aist.go.jp>
+ at rem
+ at rem Copyright (C) 2008-2010
+ at rem     Noriaki Ando
+ at rem     Task-intelligence Research Group,
+ at rem     Intelligent Systems Research Institute,
+ at rem     National Institute of
+ at rem         Advanced Industrial Science and Technology (AIST), Japan
+ at rem     All rights reserved.
+ at rem
+ at rem $Id: autobuild_vc10.bat 726 2008-05-14 03:05:42Z n-ando $
+ at rem
+
+ at rem ------------------------------------------------------------
+ at rem Notice:
+ at rem   omniORB should be under the following OMNI_ROOT directory.
+ at rem   RTSE should be under the following OMNI_ROOT directory.
+ at rem ------------------------------------------------------------
+ at set RTM_ROOT=%~dp0
+ at set PATH="C:\Program Files\Microsoft Visual Studio 10.0\VC\vcpackages";%PATH%
+ at set OMNI_ROOT=C:\distribution\omniORB-4.1.4_vc10
+ at set RTSE_ROOT=C:\distribution\OpenRTP\RTSystemEditor
+ at set VC_VERSION=Visual C++ 2010
+
+ at rem ============================================================
+ at rem copy property sheet
+ at rem ============================================================
+copy   etc\rtm_config_omni414.vsprops rtm_config.vsprops
+copy   etc\rtm_config_omni414.props rtm_config.props
+copy   etc\rtm_config_omni414.props examples\USBCamera\rtm_config.props
+copy   coil_config.props examples\USBCamera\coil_config.props
+
+ at rem ============================================================
+ at rem convert property sheet to cmake
+ at rem ============================================================
+if not exist rtm_config.cmake (
+
+   set TMP_PYTHONPATH=%PYTHONPATH%
+   set PYTHONPATH=./bin;%PYTHONPATH%
+   echo Generating cmake file
+   build\vsprops2cmake.py rtm_config.vsprops
+   set PYTHONPATH=%TMP_PYTHONPATH%
+)
+
+ at rem ============================================================
+ at rem build OpenRTM-aist
+ at rem ============================================================
+
+msbuild /M:2 /t:rebuild /p:configuration=debug OpenRTM-aist_vc10.sln
+msbuild /M:2 /t:rebuild /p:configuration=release OpenRTM-aist_vc10.sln
+
+ at rem ============================================================
+ at rem build USBCamera examples
+ at rem ============================================================
+msbuild /M:2 /t:rebuild /p:configuration=debug examples\USBCamera\USBCamera_vc10.sln
+msbuild /M:2 /t:rebuild /p:configuration=release examples\USBCamera\USBCamera_vc10.sln
+
+cd installer
+call autowix.cmd
+cd ..
+

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc8.bat
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc8.bat	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc8.bat	2011-05-31 00:23:51 UTC (rev 2151)
@@ -33,6 +33,18 @@
 copy   etc\rtm_config_omni414.vsprops rtm_config.vsprops
 
 @rem ============================================================
+ at rem convert property sheet to cmake
+ at rem ============================================================
+if not exist rtm_config.cmake (
+
+   set TMP_PYTHONPATH=%PYTHONPATH%
+   set PYTHONPATH=./bin;%PYTHONPATH%
+   echo Generating cmake file
+   build\vsprops2cmake.py rtm_config.vsprops
+   set PYTHONPATH=%TMP_PYTHONPATH%
+)
+
+ at rem ============================================================
 @rem build OpenRTM-aist
 @rem ============================================================
 

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc9.bat
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc9.bat	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/autobuild_vc9.bat	2011-05-31 00:23:51 UTC (rev 2151)
@@ -33,6 +33,18 @@
 copy   etc\rtm_config_omni414.vsprops rtm_config.vsprops
 
 @rem ============================================================
+ at rem convert property sheet to cmake
+ at rem ============================================================
+if not exist rtm_config.cmake (
+
+   set TMP_PYTHONPATH=%PYTHONPATH%
+   set PYTHONPATH=./bin;%PYTHONPATH%
+   echo Generating cmake file
+   build\vsprops2cmake.py rtm_config.vsprops
+   set PYTHONPATH=%TMP_PYTHONPATH%
+)
+
+ at rem ============================================================
 @rem build OpenRTM-aist
 @rem ============================================================
 

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/bin/Makefile.am
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/bin/Makefile.am	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/bin/Makefile.am	2011-05-31 00:23:51 UTC (rev 2151)
@@ -7,15 +7,15 @@
 
 VER = $(RTM_SHORT_VERSION)
 WINLIBS = libRTCSkel.lib \
-	libRTCSkeld.lib \
-	RTC$(VER).lib \
-	RTC$(VER)d.lib \
-	RTC$(VER).dll \
-	RTC$(VER)d.dll \
-	coil.lib \
-	coild.lib \
-	coil.dll \
-	coild.dll
+	libRTCSkeld.lib  \
+	RTC$(VER).l\ib   \
+	RTC$(VER)d.lib   \
+	RTC$(VER).dll    \
+	RTC$(VER)d.dll   \
+	coil$(VER).lib   \
+	coil$(VER)d.lib  \
+	coil$(VER).dll   \
+	coil$(VER)d.dll
 
 clean-local:
 	rm -f *~ *.dll *.lib *.exe

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/etc.yaml
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/etc.yaml	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/etc.yaml	2011-05-31 00:23:51 UTC (rev 2151)
@@ -17,3 +17,7 @@
       ShortName: rtc.con
       Name: rtc.conf.sample
       Source: ..\\etc\\rtc.conf.sample
+    - Id: Etc0005
+      ShortName: rtm_c000.cma
+      Name: rtm_config.cmake
+      Source: ..\\rtm_config.cmake

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.props
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.props	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.props	2011-05-31 00:23:51 UTC (rev 2151)
@@ -5,7 +5,7 @@
     <omnithread_dllver>34</omnithread_dllver>
     <rtm_dllver>110</rtm_dllver>
     <rtm_version>1.1.0</rtm_version>
-    <coil_dllver />
+    <coil_dllver>110</coil_dllver>
     <coil_lib>coil$(coil_dllver).lib</coil_lib>
     <coil_libd>coil$(coil_dllver)d.lib</coil_libd>
     <omni_includes>$(omni_root)\include</omni_includes>

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.vsprops
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.vsprops	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/etc/rtm_config_omni414.vsprops	2011-05-31 00:23:51 UTC (rev 2151)
@@ -39,7 +39,7 @@
 	/>
 	<UserMacro
 		Name="coil_dllver"
-		Value=""
+		Value="110"
 	/>
 	<!-- omniORB macros -->
 	<UserMacro

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/License.rtf
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/License.rtf	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/License.rtf	2011-05-31 00:23:51 UTC (rev 2151)
@@ -1,19 +1,19 @@
 {\rtf1\adeflang1025\ansi\ansicpg932\uc2\adeff0\deff0\stshfdbch31505\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1041\themelang1033\themelangfe1041\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
 {\f11\fbidi \froman\fcharset128\fprq1{\*\panose 02020609040205080304}\'82\'6c\'82\'72 \'96\'be\'92\'a9{\*\falt MS Mincho};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
-{\f37\fbidi \froman\fcharset128\fprq1{\*\panose 00000000000000000000}@\'82\'6c\'82\'72 \'96\'be\'92\'a9;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
+{\f37\fbidi \froman\fcharset128\fprq1{\*\panose 02020609040205080304}@\'82\'6c\'82\'72 \'96\'be\'92\'a9;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
 {\fdbmajor\f31501\fbidi \fmodern\fcharset128\fprq1{\*\panose 020b0609070205080204}\'82\'6c\'82\'72 \'83\'53\'83\'56\'83\'62\'83\'4e{\*\falt MS Gothic};}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
 {\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
 {\fdbminor\f31505\fbidi \froman\fcharset128\fprq1{\*\panose 02020609040205080304}\'82\'6c\'82\'72 \'96\'be\'92\'a9{\*\falt MS Mincho};}{\fhiminor\f31506\fbidi \froman\fcharset0\fprq2{\*\panose 02040604050505020304}Century;}
-{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
-{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f64\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f65\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
-{\f67\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f68\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f69\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f70\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
-{\f71\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f72\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f156\fbidi \froman\fcharset0\fprq1 MS Mincho Western{\*\falt MS Mincho};}
-{\f154\fbidi \froman\fcharset238\fprq1 MS Mincho CE{\*\falt MS Mincho};}{\f155\fbidi \froman\fcharset204\fprq1 MS Mincho Cyr{\*\falt MS Mincho};}{\f157\fbidi \froman\fcharset161\fprq1 MS Mincho Greek{\*\falt MS Mincho};}
-{\f158\fbidi \froman\fcharset162\fprq1 MS Mincho Tur{\*\falt MS Mincho};}{\f161\fbidi \froman\fcharset186\fprq1 MS Mincho Baltic{\*\falt MS Mincho};}{\f384\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
-{\f385\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f387\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f388\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f391\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
-{\f416\fbidi \froman\fcharset0\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Western;}{\f414\fbidi \froman\fcharset238\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 CE;}{\f415\fbidi \froman\fcharset204\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Cyr;}
-{\f417\fbidi \froman\fcharset161\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Greek;}{\f418\fbidi \froman\fcharset162\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Tur;}{\f421\fbidi \froman\fcharset186\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Baltic;}
+{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
+{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f65\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f66\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
+{\f68\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f69\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f70\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f71\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
+{\f72\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f73\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f157\fbidi \froman\fcharset0\fprq1 MS Mincho Western{\*\falt MS Mincho};}
+{\f155\fbidi \froman\fcharset238\fprq1 MS Mincho CE{\*\falt MS Mincho};}{\f156\fbidi \froman\fcharset204\fprq1 MS Mincho Cyr{\*\falt MS Mincho};}{\f158\fbidi \froman\fcharset161\fprq1 MS Mincho Greek{\*\falt MS Mincho};}
+{\f159\fbidi \froman\fcharset162\fprq1 MS Mincho Tur{\*\falt MS Mincho};}{\f162\fbidi \froman\fcharset186\fprq1 MS Mincho Baltic{\*\falt MS Mincho};}{\f385\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
+{\f386\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f388\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f389\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f392\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
+{\f417\fbidi \froman\fcharset0\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Western;}{\f415\fbidi \froman\fcharset238\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 CE;}{\f416\fbidi \froman\fcharset204\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Cyr;}
+{\f418\fbidi \froman\fcharset161\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Greek;}{\f419\fbidi \froman\fcharset162\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Tur;}{\f422\fbidi \froman\fcharset186\fprq1 @\'82\'6c\'82\'72 \'96\'be\'92\'a9 Baltic;}
 {\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
 {\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
 {\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31520\fbidi \fmodern\fcharset0\fprq1 MS Gothic Western{\*\falt MS Gothic};}
@@ -47,9 +47,9 @@
 \sbasedon0 \snext17 \slink18 \ssemihidden \sunhideused \styrsid15817640 header;}{\*\cs18 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\lang0\langfe1033\kerning0\langnp0\langfenp1033 \sbasedon10 \slink17 \slocked \ssemihidden \styrsid15817640 
 \'83\'77\'83\'62\'83\'5f\'81\'5b (\'95\'b6\'8e\'9a);}{\s19\ql \li0\ri0\widctlpar\tqc\tx4252\tqr\tx8504\wrapdefault\aspalpha\aspnum\faauto\nosnaplinegrid\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 
 \fs24\lang1033\langfe1033\loch\f0\hich\af0\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext19 \slink20 \ssemihidden \sunhideused \styrsid15817640 footer;}{\*\cs20 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 
-\fs24\lang0\langfe1033\kerning0\langnp0\langfenp1033 \sbasedon10 \slink19 \slocked \ssemihidden \styrsid15817640 \'83\'74\'83\'62\'83\'5e\'81\'5b (\'95\'b6\'8e\'9a);}}{\*\rsidtbl \rsid686100\rsid3112477\rsid4468361\rsid7360708\rsid8144500\rsid8941819
-\rsid10307380\rsid12669558\rsid13774519\rsid14950620\rsid15817640}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\title Common Public License Version 1}
-{\author Bob Arnson}{\operator n-ando}{\creatim\yr2005\mo7\dy28\hr23\min4}{\revtim\yr2010\mo1\dy16\hr13\min26}{\version8}{\edmins14}{\nofpages2}{\nofwords483}{\nofchars2925}{\*\company None of Your Business, Inc.}{\nofcharsws3402}{\vern32769}}
+\fs24\lang0\langfe1033\kerning0\langnp0\langfenp1033 \sbasedon10 \slink19 \slocked \ssemihidden \styrsid15817640 \'83\'74\'83\'62\'83\'5e\'81\'5b (\'95\'b6\'8e\'9a);}}{\*\rsidtbl \rsid686100\rsid1852927\rsid3112477\rsid4468361\rsid7360708\rsid8144500
+\rsid8941819\rsid10307380\rsid12669558\rsid13774519\rsid14950620\rsid15817640}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\title Common Public License Version 1}
+{\author Bob Arnson}{\operator n-ando}{\creatim\yr2005\mo7\dy28\hr23\min4}{\revtim\yr2011\mo5\dy28\hr2\min42}{\version9}{\edmins17}{\nofpages2}{\nofwords495}{\nofchars2823}{\*\company None of Your Business, Inc.}{\nofcharsws3312}{\vern32771}}
 {\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1701\margr1701\margt1985\margb1701\gutter0\ltrsect 
 \ftnbj\aenddoc\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\noxlattoyen
 \expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1701\dgvorigin1985\dghshow1\dgvshow1
@@ -67,88 +67,84 @@
 {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \dbch (}{\pntxta \dbch )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang 
 {\pntxtb \dbch (}{\pntxta \dbch )}}\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4468361 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 
 \fs24\lang1033\langfe1033\loch\af0\hich\af0\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid4468361\charrsid4468361 
-\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 Copyright (C) 2003-2010
+\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1852927 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 \hich\af0\dbch\af31505\loch\f0 Copyright (C) 2003-2011
 \par \hich\af0\dbch\af31505\loch\f0      Noriaki Ando and the OpenRTM-aist Project team
 \par \hich\af0\dbch\af31505\loch\f0      Intelligent Systems Research Institute,
 \par \hich\af0\dbch\af31505\loch\f0      National Institute of Advanced Industrial Science and Technology (AIST),
-\par \hich\af0\dbch\af31505\loch\f0      Tsukuba, Japan, All rights reserved.
+\par \hich\af0\dbch\af31505\loch\f0      Tsukuba, Japan, All rights reserved.}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 
+\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4468361 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 
 \par 
-\par 
-\par \hich\af0\dbch\af31505\loch\f0 NOTICE
+\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1852927 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 \hich\af0\dbch\af31505\loch\f0 NOTICE
 \par ------
-\par \hich\af0\dbch\af31505\loch\f0 THIS IS A LEGAL CONTRAC\hich\af0\dbch\af31505\loch\f0 T BETWEEN YOU AND THE COPYRIGHT HOLDER.  YOU}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{
-\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 SHOULD CAREFULLY READ AND ACCEPT ALL THE TERMS AND CONDITIONS SET}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 FORTH IN THIS DOCUMENT BEFORE USING ALL OR ANY PORTION OF THIS}{
-\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
-SOFTWARE. BY USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY ALL}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 OF THE TERMS \hich\af0\dbch\af31505\loch\f0 AND CONDITION OF THIS LICENSE AND ALSO AGREE THAT THIS}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
-AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN NEGOTIATED AGREEMENT SIGNED}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 BY YOU.
+\par \hich\af0\dbch\af31505\loch\f0 THIS IS A LEGAL CONTRACT BETWEEN YOU AND THE COPYRIGHT HOLDER.  YOU}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 
+\ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 \hich\af0\dbch\af31505\loch\f0 SHOULD CAREFULLY READ AND ACCEPT ALL THE TERMS AND CONDITIONS SET}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 
+\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 \hich\af0\dbch\af31505\loch\f0 FORTH IN THIS DOCUMENT BEFORE USING ALL OR ANY PORTION OF THIS}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
+\fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 \hich\af0\dbch\af31505\loch\f0 SOFTWARE. BY USING THE SOFTWARE, YOU ARE AGREEING TO BE BOU
+\hich\af0\dbch\af31505\loch\f0 ND BY ALL}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 
+\hich\af0\dbch\af31505\loch\f0 OF THE TERMS AND CONDITION OF THIS LICENSE AND ALSO AGREE THAT THIS}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 
+\ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 \hich\af0\dbch\af31505\loch\f0 AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN NEGOTIATED AGREEMENT SIGNED}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 
+\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 \hich\af0\dbch\af31505\loch\f0 BY YOU.}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 
+\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4468361 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 
 \par 
-\par 
 \par \hich\af0\dbch\af31505\loch\f0 LICENSE
 \par -------
 \par \hich\af0\dbch\af31505\loch\f0 The OpenRTM-aist is the dual-licensed open source software. You can}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 
-\ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 use, copy, distribute and/or modify this library under the terms and}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
-\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 conditions of either of the licenses below.
+\ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 use, copy, distribute and/or modify t\hich\af0\dbch\af31505\loch\f0 his library under the terms and}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
+\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 conditions of either of the licenses below.
 \par 
-\par \hich\af0\dbch\af31505\loch\f0 1) EPL (Eclipse Public License - v 1.0)
-\par \hich\af0\dbch\af31505\loch\f0 See
-\par \hich\af0\dbch\af31505\loch\f0 http://www.eclipse.org/legal/epl-v10.html
-\par \hich\af0\dbch\af31505\loch\f0 http://www.eclipse.org/org/documents/epl-v10.php
-\par \hich\af0\dbch\af31505\loch\f0 or
-\par \hich\af0\dbch\af31505\loch\f0 COPY\hich\af0\dbch\af31505\loch\f0 ING.LIB.
-\par 
+\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1852927 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid1852927\charrsid1852927 \hich\af0\dbch\af31505\loch\f0 
+1) LGPL (GNU LESSER GENERAL PUBLIC LICENSE)
+\par \hich\af0\dbch\af31505\loch\f0 See COPYING.LIB.}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid1852927 
+\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4468361 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 
 \par \hich\af0\dbch\af31505\loch\f0 2) Individual Licnese
 \par \hich\af0\dbch\af31505\loch\f0 You can purchase license from AIST and/or AIST's TLO to copy,}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 distribute, modify and/or sublicense the library without any}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{
 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 limitation in the terms of LGPL. The individual license should be}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 concluded with a negotiated agreeme
-\hich\af0\dbch\af31505\loch\f0 nt between you and AIST and/or AIST}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 TLO. To conclude individual license, contact the person responsible of}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
+\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
+concluded with a negotiated agreement between you and AIST and/or A\hich\af0\dbch\af31505\loch\f0 IST}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 
+\ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 TLO. To conclude individual license, contact the person responsible of}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 AIST.
 \par 
 \par 
 \par \hich\af0\dbch\af31505\loch\f0 SUBMISSIONS
 \par -----------
 \par \hich\af0\dbch\af31505\loch\f0 The OpenRTM-aist is maintained by the National Institute of Advanced}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 
-\ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 Industrial Science and Technology (AIST), Tsukub\hich\af0\dbch\af31505\loch\f0 a, Japan for the}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 development of open-source software as part of the open-source}{
-\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
+\ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 Industrial Science and Technology (AIST), Tsukuba, Japan for the}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
+\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 development of \hich\af0\dbch\af31505\loch\f0 open-source software as part of the open-source}{\rtlch\fcs1 \af0\afs20 
+\ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
 software community.  By submitting comments, suggestions, code, code}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 snippets, techniques (including that of usage) and algorithms}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{
-\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 (collectively ``Submissions''), submitters ac\hich\af0\dbch\af31505\loch\f0 knowledge that they have}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
-the right to do so, that any such Submissions are given freely and
+\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 (collectively ``Submissions''), submitters acknowledge that they have}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
+\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 the rig\hich\af0\dbch\af31505\loch\f0 
+ht to do so, that any such Submissions are given freely and
 \par \hich\af0\dbch\af31505\loch\f0 unreservedly, and that they waive any claims to copyright or}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 ownership. In addition, submitters acknowledge that any such}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{
 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 Submission might become part of the copyright maintained on the}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
-overall body of code that comprises the OpenRTM-aist. By making a}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 Submission, submitter agree to these terms. Moreover, submitters}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  
-}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 acknowledge that the incorporation or modification of such Su\hich\af0\dbch\af31505\loch\f0 bmissions}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
-is entirely at the discretion of the moderators of the open-source}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 software projects or their designees.
+\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 overall bo\hich\af0\dbch\af31505\loch\f0 
+dy of code that comprises the OpenRTM-aist. By making a}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 
+\hich\af0\dbch\af31505\loch\f0 Submission, submitter agree to these terms. Moreover, submitters}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
+\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 acknowledge that the incorporation or modification of such Submissions}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
+\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 is entirely at the discretion of the moderators of the open-sour\hich\af0\dbch\af31505\loch\f0 ce}{\rtlch\fcs1 
+\af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 software projects or their designees.}{
+\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid4468361\charrsid4468361 
+\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 
 \par 
-\par 
 \par \hich\af0\dbch\af31505\loch\f0 DISCLAIMER
 \par ----------
 \par \hich\af0\dbch\af31505\loch\f0 THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 
-\ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT \hich\af0\dbch\af31505\loch\f0 NOT LIMITED TO, THE}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
-\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 CONSEQUENTIAL DAMAGES (INCLUDING\hich\af0\dbch\af31505\loch\f0 
-, BUT NOT LIMITED TO, PROCUREMENT OF}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 
-\hich\af0\dbch\af31505\loch\f0 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
-\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
-\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 OR OTHERWISE) AR\hich\af0\dbch\af31505\loch\f0 
-ISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 
-\hich\af0\dbch\af31505\loch\f0 IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+\ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
+\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR \hich\af0\dbch\af31505\loch\f0 A PARTICULAR}{\rtlch\fcs1 
+\af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
+\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
+\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
+\fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR}
+{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 
+\fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 
+\hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF TH\hich\af0\dbch\af31505\loch\f0 IS SOFTWARE, EVEN}{\rtlch\fcs1 
+\af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid8144500 \hich\af0\dbch\af31505\loch\f0  }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\insrsid4468361\charrsid4468361 \hich\af0\dbch\af31505\loch\f0 
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 \par 
 \par 
 \par \hich\af0\dbch\af31505\loch\f0 CONTACT INFORMATION
@@ -156,7 +152,7 @@
 \par \hich\af0\dbch\af31505\loch\f0 Noriaki Ando <n-ando at aist.go.jp>
 \par \hich\af0\dbch\af31505\loch\f0 National Institute of Advanced Industrial Science and Technology
 \par \hich\af0\dbch\af31505\loch\f0 Intelligent Systems Research Institute
-\par \hich\af0\dbch\af31505\loch\f0 Tsukuba Central 2, 1-1-1 Umezono, Tsukuba, Ibaraki 305-8568 JAPAN. 
+\par \hich\af0\dbch\af31505\loch\f0 Tsukuba Centr\hich\af0\dbch\af31505\loch\f0 al 2, 1-1-1 Umezono, Tsukuba, Ibaraki 305-8568 JAPAN. 
 \par \hich\af0\dbch\af31505\loch\f0 TEL: +81-29-861-5981 FAX: +81-29-861-6631}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs18\lang1033\langfe1041\langfenp1041\insrsid4468361\charrsid4468361 
 \par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
 72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
@@ -263,8 +259,8 @@
 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000308b
-46196496ca01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000c00e
+ec79951ccc01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTM-aist.wxs.in
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTM-aist.wxs.in	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTM-aist.wxs.in	2011-05-31 00:23:51 UTC (rev 2151)
@@ -19,19 +19,19 @@
     <Property Id='USERPROFILEDIR' Value='%USERPROFILE%' />
     <!-- アップグレード -->
     <Upgrade Id="{% Product.UpgradeCode %}">
-     <UpgradeVersion OnlyDetect="yes"
-		      Minimum="1.0.0.1"
-		      Maximum="1.1.0"
+      <UpgradeVersion OnlyDetect="yes"
+		      Minimum="1.1.0.1"
+		      Maximum="1.2.0"
 		      Property="NEWERVERSIONDETECTED"
 		      IncludeMinimum="no" /> 
       <UpgradeVersion OnlyDetect="no"
-		      Minimum="1.0.0"
-		      Maximum="1.0.0.1"
+		      Minimum="1.1.0"
+		      Maximum="1.1.0.1"
 		      Property="OLDERVERSIONBEINGUPGRADED"
 		      IncludeMaximum="no" /> 
       <UpgradeVersion OnlyDetect='no' Property='PREVIOUSFOUND'
-                      Minimum='1.0.0' IncludeMinimum='yes'
-                      Maximum='1.1.0' IncludeMaximum='no' />
+                      Minimum='1.1.0' IncludeMinimum='yes'
+                      Maximum='1.2.0' IncludeMaximum='no' />
     </Upgrade>
     <InstallExecuteSequence>
       <RemoveExistingProducts Before="InstallInitialize"/>
@@ -54,7 +54,7 @@
 			     System='yes' Part='all' Value='[Version]' />
 		<Environment Id='UpdatePath' Name='PATH' Action='set'
 			     System='yes' Part='last'
-			     Value='[bin]' />
+			     Value='%RTM_ROOT%\bin' />
 		{% for file in Bin.Files %}
 		<File Id="{% file.Id %}"
 		      Name="{% file.Name %}" DiskId="1"
@@ -209,7 +209,7 @@
 		<Component Id="RtcTemplate" Guid="{% RtcTemplate.GUID %}">
 		  <Environment Id='UpdatePath2' Name='PATH' Action='set'
 			       System='yes' Part='last'
-			       Value='[rtc_template]' />
+			       Value='%RTM_ROOT%\utils\rtc-template' />
 	      	  {% for file in RtcTemplate.Files %}
 		  <File Id="{% file.Id %}"
 			Name="{% file.Name %}" DiskId="1"
@@ -270,27 +270,29 @@
 		</Component>
 	      </Directory>
 	    </Directory>
+
+	    <!-- omniORB components -->
+	    <?if $(env.INCLUDE_OMNIORB) = YES ?>
+	    <?include omniORB_inc.wxs ?>
+	    <?endif ?>
+	    <!-- end of omniORB -->
+	    
+	    <!-- rtmtools components -->
+	    <?if $(env.INCLUDE_OPENRTP) = YES ?>
+	    <?include OpenRTP_inc.wxs ?>
+	    <?endif ?>
+	    <!-- end of rtmtools -->
+	    
+	    <!-- OpenCV components -->
+	    <?if $(env.INCLUDE_OPENCV) = YES ?>
+	    <?include OpenCV_inc.wxs ?>
+	    <?endif ?>
+	    <!-- end of OpenCV -->
+	    
 	  </Directory>
 	</Directory><!--end of OpenRTM-aist-->
 
-	<!-- omniORB components -->
-	<?if $(env.INCLUDE_OMNIORB) = YES ?>
-	<?include omniORB_inc.wxs ?>
-	<?endif ?>
-	<!-- end of omniORB -->
 
-	<!-- rtmtools components -->
-	<?if $(env.INCLUDE_OPENRTP) = YES ?>
-	<?include OpenRTP_inc.wxs ?>
-	<?endif ?>
-	<!-- end of rtmtools -->
-
-	<!-- OpenCV components -->
-	<?if $(env.INCLUDE_OPENCV) = YES ?>
-	<?include OpenCV_inc.wxs ?>
-	<?endif ?>
-	<!-- end of OpenCV -->
-
       </Directory>
 
       <!-- システムフォルダ -->

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTM-aist.wxs.yaml.in
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTM-aist.wxs.yaml.in	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/installer/OpenRTM-aist.wxs.yaml.in	2011-05-31 00:23:51 UTC (rev 2151)
@@ -7,7 +7,7 @@
   Version: __VERSION__
   ShortVersion: __SHORT_VERSION__
   Manufacturer: AIST
-  UpgradeCode: 572C59A1-4637-4624-AD55-FC4533CE4C8B
+  UpgradeCode: 44461E5D-84EF-11E0-9AC9-000C290BB873
 Package:
   Description: OpenRTM-aist Installer
   InstallerVersion: "300"

Modified: trunk/OpenRTM-aist/win32/OpenRTM-aist/rtm/Makefile.am
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/rtm/Makefile.am	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/rtm/Makefile.am	2011-05-31 00:23:51 UTC (rev 2151)
@@ -11,7 +11,7 @@
 
 clean-local:
 	rm -rf Debug Release
-	rm -f *~ *.cpp *.h *.cc *.hh
+	rm -f *~ *.cpp *.h *.cc *.hh version.txt
 	rm -f *.sln *.suo *.ncb *.user *.vcproj *.vcxproj *.def
 
 src:

Deleted: trunk/OpenRTM-aist/win32/OpenRTM-aist/rtm/libRTCvc8.vcproj.yaml
===================================================================
--- trunk/OpenRTM-aist/win32/OpenRTM-aist/rtm/libRTCvc8.vcproj.yaml	2011-05-30 14:02:12 UTC (rev 2150)
+++ trunk/OpenRTM-aist/win32/OpenRTM-aist/rtm/libRTCvc8.vcproj.yaml	2011-05-31 00:23:51 UTC (rev 2151)
@@ -1,5 +0,0 @@
-Version: 0.4.1
-RootNamespace: libRTC
-InheritedPropertySheets: ..\OpenRTM-aist.vsprops
-DebugLibs: ACEd.lib libRTCSkeld.lib omniORB407_rtd.lib omniDynamic407_rtd.lib omnithread32_rtd.lib advapi32.lib ws2_32.lib mswsock.lib
-ReleaseLibs: ACE.lib libRTCSkel.lib omniORB407_rt.lib omniDynamic407_rt.lib omnithread32_rt.lib advapi32.lib ws2_32.lib mswsock.lib



openrtm-commit メーリングリストの案内