[openrtm-commit:00233] r499 - in trunk/jp.go.aist.rtm.RTC: . src/RTMExamples/ExtTrigger src/RTMExamples/SeqIO src/RTMExamples/SeqIO/view src/RTMExamples/SimpleService src/jp/go/aist/rtm/RTC src/jp/go/aist/rtm/RTC/SDOPackage src/jp/go/aist/rtm/RTC/buffer src/jp/go/aist/rtm/RTC/executionContext src/jp/go/aist/rtm/RTC/log src/jp/go/aist/rtm/RTC/port src/jp/go/aist/rtm/RTC/port/publisher src/jp/go/aist/rtm/RTC/util
openrtm @ openrtm.org
openrtm @ openrtm.org
2011年 7月 13日 (水) 10:03:14 JST
Author: fsi-katami
Date: 2011-07-13 10:03:13 +0900 (Wed, 13 Jul 2011)
New Revision: 499
Added:
trunk/jp.go.aist.rtm.RTC/rtcd.jsmooth.in
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ComponentActionListeners.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationListeners.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListener.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerArgument.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerType.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListener.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerType.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListener.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerType.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListener.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerType.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListener.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerType.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListener.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerArgument.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerType.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListener.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerType.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceAdmin.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderFactory.java
Removed:
trunk/jp.go.aist.rtm.RTC/rtcd.jsmooth
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/DataInPort.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/DataOutPort.java
Modified:
trunk/jp.go.aist.rtm.RTC/
trunk/jp.go.aist.rtm.RTC/build.xml
trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConnectorComp.java
trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConsoleInImpl.java
trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConsoleOutImpl.java
trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/SeqInImpl.java
trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/SeqOutImpl.java
trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/view/SeqView.java
trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/view/SeqViewApp.java
trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SimpleService/rtc.conf
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/BufferFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/Config.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigAdmin.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/CorbaNaming.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DataFlowComponentBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DefaultConfiguration.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DefaultNumberingPolicy.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryGlobal.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryInit.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryJava.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InPortConsumerFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InPortProviderFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InterceptorInitializer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/IopIorInterceptor.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/Manager.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerConfig.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerServant.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ModuleInitProc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ModuleManager.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingManager.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingOnCorba.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NumberingPolicy.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectCreator.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectDestructor.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectManager.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/OutPortConsumerFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/OutPortProviderFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTask.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTaskBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTaskFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PublisherBaseFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RTObject_impl.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RegisterModuleFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RtcDeleteFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RtcNewFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SDOPackage/Configuration_impl.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SDOPackage/Organization_impl.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateAction.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateMachine.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SyncCallback.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/TaskFuncBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/TimeMeasure.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/BufferBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/CdrRingBuffer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/NullBuffer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/ReturnCode.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/RingBuffer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/ExtTrigExecutionContext.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/OpenHRPExecutionContext.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECOrganization.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECSharedComposite.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECSharedComposite_impl.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicExecutionContext.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/log/Logbuf.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListener.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListenerArgument.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListenerT.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/CorbaPort.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPort.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortConnector.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortConsumer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortCorbaCdrConsumer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortCorbaCdrProvider.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortProvider.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortPullConnector.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortPushConnector.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnDisconnect.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnOverflow.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnUnderflow.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnWrite.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPort.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortConnector.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortConsumer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortCorbaCdrConsumer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortCorbaCdrProvider.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortProvider.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortPullConnector.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortPushConnector.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/PortAdmin.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/PortBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherFlush.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherNew.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherPeriodic.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ByteHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/CORBA_SeqUtil.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/CallbackFunction.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ConnectorProfileFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/DataRef.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/DoubleHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/FloatHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/IntegerHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ListenerBase.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ListenerObject.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/LongHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NVListHolderFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NVUtil.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NameValueFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ORBUtil.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnActivateSetCallbackFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnAddConfigurationAddCallbackFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnRemoveConfigurationSetCallbackFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnSetConfigurationSetCallbackFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnUpdateCallbackFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnUpdateParamCallbackFunc.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/POAUtil.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortInterfaceProfileFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortListHolderFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortProfileFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortServiceListHolderFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/Properties.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/RTCUtil.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ShortHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/StringHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/StringUtil.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TimeValue.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TimedFloatFactory.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/Timer.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TypeCast.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ValueHolder.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/equalFunctor.java
trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/operatorFunc.java
Log:
Merged RELENG_1_0.
Property changes on: trunk/jp.go.aist.rtm.RTC
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/RELENG_1_0/jp.go.aist.rtm.RTC:408-498
/branches/RELENG_1_0_0/jp.go.aist.rtm.RTC:60-401
Modified: trunk/jp.go.aist.rtm.RTC/build.xml
===================================================================
--- trunk/jp.go.aist.rtm.RTC/build.xml 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/build.xml 2011-07-13 01:03:13 UTC (rev 499)
@@ -249,6 +249,13 @@
<target name="createExe" description="exeファイルを作成します">
+ <delete file="rtcd.jsmooth" />
+
+ <copy file="rtcd.jsmooth.in" tofile="rtcd.jsmooth"/>
+
+ <replace file="rtcd.jsmooth" token="@version@"
+ value="${version}" />
+
<taskdef name="jsmoothgen"
classname="net.charabia.jsmoothgen.ant.JSmoothGen"
classpath="${dir.jsmooth}/lib/jsmoothgen-ant.jar"/>
@@ -275,12 +282,17 @@
<javac srcdir="${util.source}" destdir="${util.source}"
encoding="Shift-JIS" />
+ <mkdir dir="${build.doc}" />
+
<javadoc
+ Locale="ja_JP"
+ packagenames="jp.go.aist.rtm.*,jp.go.aist.rtm.RTC.*,_SDOPackage.*,RTC.*,OpenRTM.*,RTM.*"
sourcepath="${source}" destdir="${build.doc}"
- packagenames="jp.go.aist.rtm.*,jp.go.aist.rtm.RTC.*,RTMExamples.*,_SDOPackage.*,RTC.*,OpenRTM.*,RTM.*"
encoding="UTF-8"
+ docencoding="UTF-8"
+
author="true" doctitle="OpenRTM-aist Java"
nodeprecated="false" nodeprecatedlist="false"
@@ -293,13 +305,17 @@
<taglet name="JaOnTaglet" path="./util"/>
<taglet name="EnOffTaglet" path="./util"/>
</javadoc>
+ <mkdir dir="${build.doc.us}" />
+
<javadoc
Locale="en_US"
- packagenames="jp.go.aist.rtm.*,jp.go.aist.rtm.RTC.*,RTMExamples.*,_SDOPackage.*,RTC.*,OpenRTM.*,RTM.*"
+ packagenames="jp.go.aist.rtm.*,jp.go.aist.rtm.RTC.*,_SDOPackage.*,RTC.*,OpenRTM.*,RTM.*"
sourcepath="${source}" destdir="${build.doc.us}"
encoding="UTF-8"
+ docencoding="UTF-8"
+
author="true" doctitle="OpenRTM-aist Java"
nodeprecated="false" nodeprecatedlist="false"
Deleted: trunk/jp.go.aist.rtm.RTC/rtcd.jsmooth
===================================================================
--- trunk/jp.go.aist.rtm.RTC/rtcd.jsmooth 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/rtcd.jsmooth 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<jsmoothproject>
-<JVMSearchPath>registry</JVMSearchPath>
-<JVMSearchPath>javahome</JVMSearchPath>
-<JVMSearchPath>jrepath</JVMSearchPath>
-<JVMSearchPath>jdkpath</JVMSearchPath>
-<JVMSearchPath>exepath</JVMSearchPath>
-<JVMSearchPath>jview</JVMSearchPath>
-<arguments>-f rtcd_java.conf</arguments>
-<classPath>..\jar\rtcd.jar</classPath>
-<classPath>..\jar\OpenRTM-aist-1.0.0.jar</classPath>
-<classPath>..\jar\commons-cli-1.1.jar</classPath>
-<currentDirectory>${EXECUTABLEPATH}</currentDirectory>
-<embeddedJar>false</embeddedJar>
-<executableName>rtcd_java.exe</executableName>
-<initialMemoryHeap>-1</initialMemoryHeap>
-<mainClassName>rtcd.rtcd</mainClassName>
-<maximumMemoryHeap>-1</maximumMemoryHeap>
-<maximumVersion></maximumVersion>
-<minimumVersion></minimumVersion>
-<skeletonName>Console Wrapper</skeletonName>
-<skeletonProperties>
-<key>Message</key>
-<value>This program needs Java to run.
-Please download it at http://www.java.com</value>
-</skeletonProperties>
-<skeletonProperties>
-<key>PressKey</key>
-<value>0</value>
-</skeletonProperties>
-<skeletonProperties>
-<key>Debug</key>
-<value>0</value>
-</skeletonProperties>
-</jsmoothproject>
Copied: trunk/jp.go.aist.rtm.RTC/rtcd.jsmooth.in (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/rtcd.jsmooth.in)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/rtcd.jsmooth.in (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/rtcd.jsmooth.in 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<jsmoothproject>
+<JVMSearchPath>registry</JVMSearchPath>
+<JVMSearchPath>javahome</JVMSearchPath>
+<JVMSearchPath>jrepath</JVMSearchPath>
+<JVMSearchPath>jdkpath</JVMSearchPath>
+<JVMSearchPath>exepath</JVMSearchPath>
+<JVMSearchPath>jview</JVMSearchPath>
+<arguments>-f rtcd_java.conf</arguments>
+<classPath>..\jar\rtcd.jar</classPath>
+<classPath>..\jar\OpenRTM-aist- at version@.jar</classPath>
+<classPath>..\jar\commons-cli-1.1.jar</classPath>
+<currentDirectory>${EXECUTABLEPATH}</currentDirectory>
+<embeddedJar>false</embeddedJar>
+<executableName>rtcd_java.exe</executableName>
+<initialMemoryHeap>-1</initialMemoryHeap>
+<mainClassName>rtcd.rtcd</mainClassName>
+<maximumMemoryHeap>-1</maximumMemoryHeap>
+<maximumVersion></maximumVersion>
+<minimumVersion></minimumVersion>
+<skeletonName>Console Wrapper</skeletonName>
+<skeletonProperties>
+<key>Message</key>
+<value>This program needs Java to run.
+Please download it at http://www.java.com</value>
+</skeletonProperties>
+<skeletonProperties>
+<key>PressKey</key>
+<value>0</value>
+</skeletonProperties>
+<skeletonProperties>
+<key>Debug</key>
+<value>0</value>
+</skeletonProperties>
+</jsmoothproject>
Modified: trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConnectorComp.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConnectorComp.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConnectorComp.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -9,6 +9,7 @@
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
import jp.go.aist.rtm.RTC.util.NVUtil;
import jp.go.aist.rtm.RTC.util.ORBUtil;
+import jp.go.aist.rtm.RTC.util.StringUtil;
import org.omg.CORBA.ORB;
import org.omg.CosNaming.NamingContextPackage.CannotProceed;
@@ -34,9 +35,10 @@
public static void main(String[] args) {
- String subs_type = "";
+ String subs_type = "flush";
String period = "";
- for( int intIdx=1;intIdx<args.length;++intIdx ) {
+ String endian = "little,big";
+ for( int intIdx=0;intIdx<args.length;++intIdx ) {
String arg = new String(args[intIdx]);
if( arg.equals("--flush") ) {
subs_type = "Flush";
@@ -49,6 +51,11 @@
} else {
period = "1.0";
}
+ } else if( arg.equals("--endian") ) {
+ if( ++intIdx<args.length) {
+ endian = args[intIdx];
+ }
+ endian = StringUtil.normalize(endian);
} else if( arg.equals("--help") ) {
usage();
} else {
@@ -69,8 +76,10 @@
e.printStackTrace();
}
- CorbaConsumer<DataFlowComponent> conin = new CorbaConsumer<DataFlowComponent>(DataFlowComponent.class);
- CorbaConsumer<DataFlowComponent> conout = new CorbaConsumer<DataFlowComponent>(DataFlowComponent.class);
+ CorbaConsumer<DataFlowComponent> conin
+ = new CorbaConsumer<DataFlowComponent>(DataFlowComponent.class);
+ CorbaConsumer<DataFlowComponent> conout
+ = new CorbaConsumer<DataFlowComponent>(DataFlowComponent.class);
CorbaConsumer<ExtTrigExecutionContextService> ec0 = new CorbaConsumer<ExtTrigExecutionContextService>(ExtTrigExecutionContextService.class);
CorbaConsumer<ExtTrigExecutionContextService> ec1 = new CorbaConsumer<ExtTrigExecutionContextService>(ExtTrigExecutionContextService.class);
PortServiceListHolder pin = new PortServiceListHolder();
@@ -135,12 +144,18 @@
NVListHolder nvholder = new NVListHolder();
nvholder.value = prof.properties;
if( nvholder.value==null ) nvholder.value = new NameValue[0];
- CORBA_SeqUtil.push_back(nvholder, NVUtil.newNV("dataport.interface_type","CORBA_Any", String.class));
- CORBA_SeqUtil.push_back(nvholder, NVUtil.newNV("dataport.dataflow_type", "Push", String.class));
- CORBA_SeqUtil.push_back(nvholder, NVUtil.newNV("dataport.subscription_type", subs_type, String.class));
+ CORBA_SeqUtil.push_back(nvholder,
+ NVUtil.newNVString("dataport.interface_type","corba_cdr"));
+ CORBA_SeqUtil.push_back(nvholder,
+ NVUtil.newNVString("dataport.dataflow_type", "push"));
+ CORBA_SeqUtil.push_back(nvholder,
+ NVUtil.newNVString("dataport.subscription_type", subs_type));
+ CORBA_SeqUtil.push_back(nvholder,
+ NVUtil.newNVString("dataport.serializer.cdr.endian", endian));
if( !period.equals("") )
- CORBA_SeqUtil.push_back(nvholder, NVUtil.newNV("dataport.push_interval", period, String.class));
+ CORBA_SeqUtil.push_back(nvholder,
+ NVUtil.newNV("dataport.push_interval", period, String.class));
prof.properties = nvholder.value;
ConnectorProfileHolder proflist = new ConnectorProfileHolder();
@@ -161,7 +176,8 @@
System.out.println("1: tick ConsoleOut component");
System.out.println("2: tick both components" );
System.out.println("cmd? >");
- BufferedReader buff = new BufferedReader(new InputStreamReader( System.in ));
+ BufferedReader buff
+ = new BufferedReader(new InputStreamReader( System.in ));
try {
cmd = buff.readLine();
} catch (NumberFormatException e) {
Modified: trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConsoleInImpl.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConsoleInImpl.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConsoleInImpl.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -17,7 +17,7 @@
public ConsoleInImpl(Manager manager) {
super(manager);
// <rtc-template block="initializer">
- m_out = new TimedLong();
+ m_out = new TimedLong(new RTC.Time(0,0),0);
m_out_holder = new DataRef<TimedLong>(m_out);
m_outOut = new OutPort<TimedLong>("out", m_out_holder);
// </rtc-template>
@@ -27,13 +27,14 @@
// Set InPort buffers
// Set OutPort buffer
+/*
try {
// registerOutPort(TimedLong.class, "out", m_outOut); //v042
registerOutPort("out", m_outOut);
} catch (Exception e) {
e.printStackTrace();
}
-
+*/
// Set service provider to Ports
// Set service consumers to Ports
@@ -47,9 +48,15 @@
// The initialize action (on CREATED->ALIVE transition)
// formaer rtc_init_entry()
// @Override
-// protected ReturnCode_t onInitialize() {
-// return super.onInitialize();
-// }
+ protected ReturnCode_t onInitialize() {
+
+ try {
+ addOutPort("out", m_outOut);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return super.onInitialize();
+ }
// The finalize action (on ALIVE->END transition)
// formaer rtc_exiting_entry()
// @Override
Modified: trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConsoleOutImpl.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConsoleOutImpl.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/RTMExamples/ExtTrigger/ConsoleOutImpl.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -22,13 +22,14 @@
// Set InPort buffers
// Set OutPort buffer
+/*
try {
// registerInPort(TimedLong.class, "in", m_inIn); //v042
registerInPort("in", m_inIn);
} catch (Exception e) {
e.printStackTrace();
}
-
+*/
// Set service provider to Ports
// Set service consumers to Ports
@@ -41,9 +42,15 @@
// The initialize action (on CREATED->ALIVE transition)
// formaer rtc_init_entry()
// @Override
-// protected ReturnCode_t onInitialize() {
-// return super.onInitialize();
-// }
+ protected ReturnCode_t onInitialize() {
+ try {
+ addInPort("in", m_inIn);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return super.onInitialize();
+ }
// The finalize action (on ALIVE->END transition)
// formaer rtc_exiting_entry()
// @Override
Modified: trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/SeqInImpl.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/SeqInImpl.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/SeqInImpl.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -13,6 +13,8 @@
import RTC.TimedLongSeq;
import RTC.TimedShort;
import RTC.TimedShortSeq;
+import RTC.TimedOctet;
+import RTC.TimedOctetSeq;
import RTMExamples.SeqIO.view.SeqViewApp;
public class SeqInImpl extends DataFlowComponentBase {
@@ -20,6 +22,9 @@
public SeqInImpl(Manager manager) {
super(manager);
// <rtc-template block="initializer">
+ m_Octet_val = new TimedOctet();
+ m_Octet = new DataRef<TimedOctet>(m_Octet_val);
+ m_OctetIn = new InPort<TimedOctet>("Octet", m_Octet);
m_Short_val = new TimedShort();
m_Short = new DataRef<TimedShort>(m_Short_val);
m_ShortIn = new InPort<TimedShort>("Short", m_Short);
@@ -33,6 +38,9 @@
m_Double = new DataRef<TimedDouble>(m_Double_val);
m_DoubleIn = new InPort<TimedDouble>("Double", m_Double);
//
+ m_OctetSeq_val = new TimedOctetSeq();
+ m_OctetSeq = new DataRef<TimedOctetSeq>(m_OctetSeq_val);
+ m_OctetSeqIn = new InPort<TimedOctetSeq>("OctetSeq", m_OctetSeq);
m_ShortSeq_val = new TimedShortSeq();
m_ShortSeq = new DataRef<TimedShortSeq>(m_ShortSeq_val);
m_ShortSeqIn = new InPort<TimedShortSeq>("ShortSeq", m_ShortSeq);
@@ -82,10 +90,12 @@
// formaer rtc_init_entry()
@Override
protected ReturnCode_t onInitialize() {
+ addInPort("Octet", m_OctetIn);
addInPort("Short", m_ShortIn);
addInPort("Long", m_LongIn);
addInPort("Float", m_FloatIn);
addInPort("Double", m_DoubleIn);
+ addInPort("OctetSeq", m_OctetSeqIn);
addInPort("ShortSeq", m_ShortSeqIn);
addInPort("LongSeq", m_LongSeqIn);
addInPort("FloatSeq", m_FloatSeqIn);
@@ -136,20 +146,24 @@
m_FloatIn.read();
m_LongIn.read();
m_ShortIn.read();
+ m_OctetIn.read();
m_DoubleSeqIn.read();
m_FloatSeqIn.read();
m_LongSeqIn.read();
m_ShortSeqIn.read();
+ m_OctetSeqIn.read();
if( m_Double.v!=null ) seqInView.setDoubleVal(m_Double.v.data);
if( m_Float.v!=null ) seqInView.setFloatVal(m_Float.v.data);
if( m_Long.v!=null ) seqInView.setLongVal(m_Long.v.data);
if( m_Short.v!=null ) seqInView.setShortVal(m_Short.v.data);
+ if( m_Octet.v!=null ) seqInView.setOctetVal(m_Octet.v.data);
//
if( m_DoubleSeq.v!=null ) seqInView.setDoubleSeqVal(m_DoubleSeq.v.data);
if( m_FloatSeq.v!=null ) seqInView.setFloatSeqVal(m_FloatSeq.v.data);
if( m_LongSeq.v!=null ) seqInView.setLongSeqVal(m_LongSeq.v.data);
if( m_ShortSeq.v!=null ) seqInView.setShortSeqVal(m_ShortSeq.v.data);
+ if( m_OctetSeq.v!=null ) seqInView.setOctetSeqVal(m_OctetSeq.v.data);
//
return super.onExecute(ec_id);
}
@@ -191,6 +205,9 @@
//
// DataInPort declaration
// <rtc-template block="inport_declare">
+ protected TimedOctet m_Octet_val;
+ protected DataRef<TimedOctet> m_Octet;
+ protected InPort<TimedOctet> m_OctetIn;
protected TimedShort m_Short_val;
protected DataRef<TimedShort> m_Short;
protected InPort<TimedShort> m_ShortIn;
@@ -204,6 +221,9 @@
protected DataRef<TimedDouble> m_Double;
protected InPort<TimedDouble> m_DoubleIn;
//
+ protected TimedOctetSeq m_OctetSeq_val;
+ protected DataRef<TimedOctetSeq> m_OctetSeq;
+ protected InPort<TimedOctetSeq> m_OctetSeqIn;
protected TimedShortSeq m_ShortSeq_val;
protected DataRef<TimedShortSeq> m_ShortSeq;
protected InPort<TimedShortSeq> m_ShortSeqIn;
Modified: trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/SeqOutImpl.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/SeqOutImpl.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/SeqOutImpl.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -13,6 +13,8 @@
import RTC.TimedLongSeq;
import RTC.TimedShort;
import RTC.TimedShortSeq;
+import RTC.TimedOctet;
+import RTC.TimedOctetSeq;
import RTMExamples.SeqIO.view.SeqViewApp;
public class SeqOutImpl extends DataFlowComponentBase {
@@ -20,6 +22,9 @@
public SeqOutImpl(Manager manager) {
super(manager);
// <rtc-template block="initializer">
+ m_Octet_val = new TimedOctet();
+ m_Octet = new DataRef<TimedOctet>(m_Octet_val);
+ m_OctetOut = new OutPort<TimedOctet>("Octet", m_Octet);
m_Short_val = new TimedShort();
m_Short = new DataRef<TimedShort>(m_Short_val);
m_ShortOut = new OutPort<TimedShort>("Short", m_Short);
@@ -33,6 +38,9 @@
m_Double = new DataRef<TimedDouble>(m_Double_val);
m_DoubleOut = new OutPort<TimedDouble>("Double", m_Double);
//
+ m_OctetSeq_val = new TimedOctetSeq();
+ m_OctetSeq = new DataRef<TimedOctetSeq>(m_OctetSeq_val);
+ m_OctetSeqOut = new OutPort<TimedOctetSeq>("OctetSeq", m_OctetSeq);
m_ShortSeq_val = new TimedShortSeq();
m_ShortSeq = new DataRef<TimedShortSeq>(m_ShortSeq_val);
m_ShortSeqOut = new OutPort<TimedShortSeq>("ShortSeq", m_ShortSeq);
@@ -81,25 +89,30 @@
m_FloatSeq.v.data = new float[10];
m_LongSeq.v.data = new int[10];
m_ShortSeq.v.data = new short[10];
+ m_OctetSeq.v.data = new byte[10];
m_Double.v.tm = new RTC.Time(0,0);
m_Float.v.tm = new RTC.Time(0,0);
m_Long.v.tm = new RTC.Time(0,0);
m_Short.v.tm = new RTC.Time(0,0);
+ m_Octet.v.tm = new RTC.Time(0,0);
m_DoubleSeq.v.tm = new RTC.Time(0,0);
m_FloatSeq.v.tm = new RTC.Time(0,0);
m_LongSeq.v.tm = new RTC.Time(0,0);
m_ShortSeq.v.tm = new RTC.Time(0,0);
+ m_OctetSeq.v.tm = new RTC.Time(0,0);
}
// The initialize action (on CREATED->ALIVE transition)
// formaer rtc_init_entry()
@Override
protected ReturnCode_t onInitialize() {
+ addOutPort("Octet", m_OctetOut);
addOutPort("Short", m_ShortOut);
addOutPort("Long", m_LongOut);
addOutPort("Float", m_FloatOut);
addOutPort("Double", m_DoubleOut);
+ addOutPort("OctetSeq", m_OctetSeqOut);
addOutPort("ShortSeq", m_ShortSeqOut);
addOutPort("LongSeq", m_LongSeqOut);
addOutPort("FloatSeq", m_FloatSeqOut);
@@ -146,6 +159,7 @@
// former rtc_active_do()
@Override
protected ReturnCode_t onExecute(int ec_id) {
+ m_Octet.v.data = (byte)(Math.random() * Byte.MAX_VALUE - Byte.MAX_VALUE/2);
m_Short.v.data = (short)(Math.random() * Short.MAX_VALUE - Short.MAX_VALUE/2);
m_Long.v.data = (int)(Math.random() * Integer.MAX_VALUE - Integer.MAX_VALUE/2);
m_Float.v.data = (float)(Math.random() * Float.MAX_VALUE) - Float.MAX_VALUE/2;
@@ -156,27 +170,32 @@
m_FloatSeq.v.data[intIdx] = (float)(Math.random() * Float.MAX_VALUE) - Float.MAX_VALUE/2;
m_LongSeq.v.data[intIdx] = (int)(Math.random() * Integer.MAX_VALUE - Integer.MAX_VALUE/2);
m_ShortSeq.v.data[intIdx] = (short)(Math.random() * Short.MAX_VALUE - Short.MAX_VALUE/2);
+ m_OctetSeq.v.data[intIdx] = (byte)(Math.random() * Byte.MAX_VALUE - Byte.MAX_VALUE/2);
}
m_DoubleOut.write();
m_FloatOut.write();
m_LongOut.write();
m_ShortOut.write();
+ m_OctetOut.write();
m_DoubleSeqOut.write();
m_FloatSeqOut.write();
m_LongSeqOut.write();
m_ShortSeqOut.write();
+ m_OctetSeqOut.write();
if( m_Double.v!=null ) seqOutView.setDoubleVal(m_Double.v.data);
if( m_Float.v!=null ) seqOutView.setFloatVal(m_Float.v.data);
if( m_Long.v!=null ) seqOutView.setLongVal(m_Long.v.data);
if( m_Short.v!=null ) seqOutView.setShortVal(m_Short.v.data);
+ if( m_Octet.v!=null ) seqOutView.setOctetVal(m_Octet.v.data);
//
if( m_DoubleSeq.v!=null ) seqOutView.setDoubleSeqVal(m_DoubleSeq.v.data);
if( m_FloatSeq.v!=null ) seqOutView.setFloatSeqVal(m_FloatSeq.v.data);
if( m_LongSeq.v!=null ) seqOutView.setLongSeqVal(m_LongSeq.v.data);
if( m_ShortSeq.v!=null ) seqOutView.setShortSeqVal(m_ShortSeq.v.data);
+ if( m_OctetSeq.v!=null ) seqOutView.setOctetSeqVal(m_OctetSeq.v.data);
try {
Thread.sleep(10);
@@ -224,6 +243,9 @@
//
// DataInPort declaration
// <rtc-template block="inport_declare">
+ protected TimedOctet m_Octet_val;
+ protected DataRef<TimedOctet> m_Octet;
+ protected OutPort<TimedOctet> m_OctetOut;
protected TimedShort m_Short_val;
protected DataRef<TimedShort> m_Short;
protected OutPort<TimedShort> m_ShortOut;
@@ -237,6 +259,9 @@
protected DataRef<TimedDouble> m_Double;
protected OutPort<TimedDouble> m_DoubleOut;
//
+ protected TimedOctetSeq m_OctetSeq_val;
+ protected DataRef<TimedOctetSeq> m_OctetSeq;
+ protected OutPort<TimedOctetSeq> m_OctetSeqOut;
protected TimedShortSeq m_ShortSeq_val;
protected DataRef<TimedShortSeq> m_ShortSeq;
protected OutPort<TimedShortSeq> m_ShortSeqOut;
Modified: trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/view/SeqView.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/view/SeqView.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/view/SeqView.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -13,11 +13,13 @@
private static final long serialVersionUID = 1L;
+ private JTextField _octetField;
private JTextField _shortField;
private JTextField _longField;
private JTextField _floatField;
private JTextField _doubleField;
+ private JTextField[] _octetSeqFields;
private JTextField[] _shortSeqFields;
private JTextField[] _longSeqFields;
private JTextField[] _floatSeqFields;
@@ -29,6 +31,10 @@
public SeqView() {
// ウィジェットを作成する
+ _octetField = new JTextField("----------");
+ _octetField.setEditable(false);
+ _octetField.setHorizontalAlignment(JTextField.RIGHT);
+
_shortField = new JTextField("----------");
_shortField.setEditable(false);
_shortField.setHorizontalAlignment(JTextField.RIGHT);
@@ -45,6 +51,13 @@
_doubleField.setEditable(false);
_doubleField.setHorizontalAlignment(JTextField.RIGHT);
+ _octetSeqFields = new JTextField[10];
+ for (int i = 0; i < _octetSeqFields.length; i++) {
+ _octetSeqFields[i] = new JTextField("----------");
+ _octetSeqFields[i].setEditable(false);
+ _octetSeqFields[i].setHorizontalAlignment(JTextField.RIGHT);
+ }
+
_shortSeqFields = new JTextField[10];
for (int i = 0; i < _shortSeqFields.length; i++) {
_shortSeqFields[i] = new JTextField("----------");
@@ -74,6 +87,12 @@
}
// ウィジェットを並べる
+ JPanel octetPane = new JPanel();
+ octetPane.setLayout(new BoxLayout(octetPane, BoxLayout.Y_AXIS));
+ octetPane.add(new JLabel("octet:"));
+ octetPane.add(_octetField);
+ octetPane.add(Box.createVerticalGlue());
+
JPanel shortPane = new JPanel();
shortPane.setLayout(new BoxLayout(shortPane, BoxLayout.Y_AXIS));
shortPane.add(new JLabel("short:"));
@@ -98,6 +117,13 @@
doublePane.add(_doubleField);
doublePane.add(Box.createVerticalGlue());
+ JPanel octetSeqPane = new JPanel();
+ octetSeqPane.setLayout(new BoxLayout(octetSeqPane, BoxLayout.Y_AXIS));
+ octetSeqPane.add(new JLabel("octet seq:"));
+ for (int i = 0; i < _octetSeqFields.length; i++) {
+ octetSeqPane.add(_octetSeqFields[i]);
+ }
+
JPanel shortSeqPane = new JPanel();
shortSeqPane.setLayout(new BoxLayout(shortSeqPane, BoxLayout.Y_AXIS));
shortSeqPane.add(new JLabel("short seq:"));
@@ -126,6 +152,12 @@
doubleSeqPane.add(_doubleSeqFields[i]);
}
+ JPanel octetGroupPane = new JPanel();
+ octetGroupPane.setLayout(new BoxLayout(octetGroupPane, BoxLayout.Y_AXIS));
+ octetGroupPane.add(octetPane);
+ octetGroupPane.add(octetSeqPane);
+ octetGroupPane.add(Box.createVerticalGlue());
+
JPanel shortGroupPane = new JPanel();
shortGroupPane.setLayout(new BoxLayout(shortGroupPane, BoxLayout.Y_AXIS));
shortGroupPane.add(shortPane);
@@ -151,6 +183,7 @@
doubleGroupPane.add(Box.createVerticalGlue());
setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
+ add(octetGroupPane);
add(shortGroupPane);
add(longGroupPane);
add(floatGroupPane);
@@ -160,7 +193,12 @@
_doubleFormat = new DecimalFormat("0.000000000000000E0");
_floatFormat = new DecimalFormat("0.000000000000000E0");
}
-
+
+ public void setOctetVal(byte value) {
+
+ _octetField.setText(String.format("0x%02X", value));
+ }
+
public void setShortVal(short value) {
_shortField.setText(Short.toString(value));
@@ -181,6 +219,14 @@
_doubleField.setText(_doubleFormat.format(value));
}
+ public void setOctetSeqVal(byte[] values) {
+
+ int len = Math.min(values.length, _octetSeqFields.length);
+ for (int i = 0; i < len; i++) {
+ _octetSeqFields[i].setText(String.format("0x%02X", values[i]));
+ }
+ }
+
public void setShortSeqVal(short[] values) {
int len = Math.min(values.length, _shortSeqFields.length);
Modified: trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/view/SeqViewApp.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/view/SeqViewApp.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SeqIO/view/SeqViewApp.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -36,6 +36,10 @@
frame.setTitle(title);
}
+ public void setOctetVal(byte oc) {
+ _updater.setOctetVal(oc);
+ }
+
public void setShortVal(short sh) {
_updater.setShortVal(sh);
}
@@ -52,8 +56,12 @@
_updater.setDoubleVal(db);
}
+ public void setOctetSeqVal(byte[] oc) {
+ _updater.setOctetSeqVal(oc);
+ }
+
public void setShortSeqVal(short[] sh) {
- _updater.setShrotSeqVal(sh);
+ _updater.setShortSeqVal(sh);
}
public void setLongSeqVal(int[] lg) {
@@ -81,6 +89,9 @@
synchronized (this) {
+ if (_octetValMarked) {
+ _view.setOctetVal(_octetVal);
+ }
if (_shortValMarked) {
_view.setShortVal(_shortVal);
}
@@ -94,6 +105,9 @@
_view.setDoubleVal(_doubleVal);
}
+ if (_octetSeqVal != null) {
+ _view.setOctetSeqVal(_octetSeqVal);
+ }
if (_shortSeqVal != null) {
_view.setShortSeqVal(_shortSeqVal);
}
@@ -111,6 +125,13 @@
}
}
+ synchronized public void setOctetVal(byte value) {
+
+ _octetValMarked = true;
+ _octetVal = value;
+ registInvoker();
+ }
+
synchronized public void setShortVal(short value) {
_shortValMarked = true;
@@ -139,8 +160,14 @@
registInvoker();
}
- synchronized public void setShrotSeqVal(short[] values) {
+ synchronized public void setOctetSeqVal(byte[] values) {
+ _octetSeqVal = values;
+ registInvoker();
+ }
+
+ synchronized public void setShortSeqVal(short[] values) {
+
_shortSeqVal = values;
registInvoker();
}
@@ -165,11 +192,13 @@
private void reset() {
+ _octetValMarked = false;
_shortValMarked = false;
_longValMarked = false;
_floatValMarked = false;
_doubleValMarked = false;
+ _octetSeqVal = null;
_shortSeqVal = null;
_longSeqVal = null;
_floatSeqVal = null;
@@ -186,6 +215,8 @@
}
}
+ private boolean _octetValMarked;
+ private byte _octetVal;
private boolean _shortValMarked;
private short _shortVal;
private boolean _longValMarked;
@@ -195,6 +226,7 @@
private boolean _doubleValMarked;
private double _doubleVal;
+ private byte[] _octetSeqVal;
private short[] _shortSeqVal;
private int[] _longSeqVal;
private float[] _floatSeqVal;
Modified: trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SimpleService/rtc.conf
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SimpleService/rtc.conf 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/RTMExamples/SimpleService/rtc.conf 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,5 +1,6 @@
corba.nameservers: localhost
naming.formats: %n.rtc
+logger.enable:NO
#manager.modules.load_path:./RTMExamples/SimpleIO
#manager.modules.preload: ConsoleOut
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/BufferFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/BufferFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/BufferFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,24 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>CdrBuffer用ファクトリの実装です。</p>
+ * {@.ja CdrBuffer用ファクトリの実装。}
+ * {@.en This class is a factory for CdrBuffer.}
*/
public class BufferFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*/
private BufferFactory() {
}
/**
- * <p> instance </p>
- *
- * @return BufferFactory object
+ * {@.ja BufferFactoryのインスタンスを生成する。}
+ * {@.en Creates a instance of BufferFactory.}
+ * @return
+ * {@.ja BufferFactoryオブジェクト}
+ * {@.en BufferFactory object}
*/
public static BufferFactory instance() {
if (factory_global == null) {
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ComponentActionListeners.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ComponentActionListeners.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ComponentActionListeners.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ComponentActionListeners.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,37 @@
+package jp.go.aist.rtm.RTC;
+
+ /**
+ * {@.ja ComponentActionListeners クラス}
+ * {@.en ComponentActionListeners class}
+ */
+
+public class ComponentActionListeners {
+ public PreComponentActionListenerHolder[] preaction_
+ = new PreComponentActionListenerHolder[PreComponentActionListenerType.PRE_COMPONENT_ACTION_LISTENER_NUM];
+
+ public PostComponentActionListenerHolder[] postaction_
+ = new PostComponentActionListenerHolder[PostComponentActionListenerType.POST_COMPONENT_ACTION_LISTENER_NUM];
+
+ public PortActionListenerHolder[] portaction_
+ = new PortActionListenerHolder[PortActionListenerType.PORT_ACTION_LISTENER_NUM];
+
+ public ExecutionContextActionListenerHolder[] ecaction_
+ = new ExecutionContextActionListenerHolder[ExecutionContextActionListenerType.EC_ACTION_LISTENER_NUM];
+
+ public ComponentActionListeners() {
+ for(int ic=0;ic<PreComponentActionListenerType.PRE_COMPONENT_ACTION_LISTENER_NUM;++ic){
+ preaction_[ic] = new PreComponentActionListenerHolder();
+ }
+ for(int ic=0;ic<PostComponentActionListenerType.POST_COMPONENT_ACTION_LISTENER_NUM;++ic){
+ postaction_[ic] = new PostComponentActionListenerHolder();
+ }
+ for(int ic=0;ic<PortActionListenerType.PORT_ACTION_LISTENER_NUM;++ic){
+ portaction_[ic] = new PortActionListenerHolder();
+ }
+ for(int ic=0;ic<ExecutionContextActionListenerType.EC_ACTION_LISTENER_NUM;++ic){
+ ecaction_[ic] = new ExecutionContextActionListenerHolder();
+ }
+ }
+
+}
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/Config.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/Config.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/Config.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,16 +3,24 @@
import jp.go.aist.rtm.RTC.util.ValueHolder;
/**
-* <p>コンフィギュレーション情報を保持するクラスです。</p>
-*/
+ * {@.ja コンフィギュレーション情報を保持するクラス。}
+ * {@.en Class to hold the configuration parameter information.}
+ */
public class Config extends ConfigBase{
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param name コンフィギュレーション名
- * @param var 設定値
- * @param def_val デフォルト値文字列表現
+ * @param name
+ * {@.ja コンフィギュレーション名}
+ * {@.en configuration name}
+ * @param var
+ * {@.ja 設定値}
+ * {@.en value}
+ * @param def_val
+ * {@.ja デフォルト値文字列表現}
+ * {@.en Default value}
*/
public Config(final String name, ValueHolder var, final String def_val) {
super(name, def_val);
@@ -20,12 +28,22 @@
}
/**
- *
- * <p>指定したコンフィギュレーションに設定した値で,バインドパラメータの値を変更します</p>
- *
- * @param val パラメータ値の文字列表現
- * @return 設定結果
- */
+ * {@.ja バインドパラメータ値を更新。}
+ * {@.en Update a bind parameter value}
+ * <p>
+ * {@.ja コンフィギュレーション設定値でコンフィギュレーションパラメータを
+ * 更新する}
+ * {@.en Update configuration paramater by the configuration value.}
+ *
+ * @param val
+ * {@.ja パラメータ値の文字列表現}
+ * {@.en The parameter values converted into character string format}
+ *
+ * @return
+ * {@.ja 更新処理結果(更新成功:true,更新失敗:false)}
+ * {@.en Update result (Successful:true, Failed:false)}
+ *
+ */
public boolean update(final String val){
try {
m_var.stringFrom(val);
@@ -40,7 +58,8 @@
}
/**
- * 設定値
+ * {@.ja コンフィギュレーションパラメータ格納用変数}
+ * {@.en Configuration parameter variable}
*/
protected ValueHolder m_var;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigAdmin.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigAdmin.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigAdmin.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,74 +3,300 @@
import java.util.Iterator;
import java.util.Vector;
+import jp.go.aist.rtm.RTC.util.OnActivateSetCallbackFunc;
+
+import jp.go.aist.rtm.RTC.util.OnAddConfigurationAddCallbackFunc;
+
+import jp.go.aist.rtm.RTC.util.OnRemoveConfigurationSetCallbackFunc;
+
+import jp.go.aist.rtm.RTC.util.OnSetConfigurationSetCallbackFunc;
+
+import jp.go.aist.rtm.RTC.util.OnUpdateCallbackFunc;
+
+import jp.go.aist.rtm.RTC.util.OnUpdateParamCallbackFunc;
+
+
import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.util.ValueHolder;
-import jp.go.aist.rtm.RTC.util.OnUpdateCallbackFunc;
-import jp.go.aist.rtm.RTC.util.OnUpdateParamCallbackFunc;
-import jp.go.aist.rtm.RTC.util.OnSetConfigurationSetCallbackFunc;
-import jp.go.aist.rtm.RTC.util.OnAddConfigurationAddCallbackFunc;
-import jp.go.aist.rtm.RTC.util.OnRemoveConfigurationSetCallbackFunc;
-import jp.go.aist.rtm.RTC.util.OnActivateSetCallbackFunc;
-import jp.go.aist.rtm.RTC.executionContext.PeriodicECOrganization;
/**
-* <p>コンフィギュレーション情報を管理するクラスです。</p>
-*/
+ *
+ * {@.ja 各種コンフィギュレーション情報を管理するクラス。}
+ * {@.en Class to manage various configuration information.}
+ *
+ * <p>
+ * {@.ja 用語を以下のように定義する。
+ * <ul>
+ * <li>コンフィギュレーション: コンポーネントの設定情報。
+ *
+ * <li>(コンフィギュレーション)パラメータ: key-value からなる設定情報。
+ * util.Properties 変数として扱われ、key、value 共に文字列として保
+ * 持される。key をコンフィギュレーションパラメータ名、value をコン
+ * フィギュレーションパラメータ値と呼ぶ。
+ *
+ * <li>コンフィギュレーションセット: コンフィギュレーションパラメータ
+ * のリストで、名前 (ID) によって区別される。IDをコンフィギュレーショ
+ * ンセットIDと呼ぶ。
+ *
+ * <li>(コンフィギュレーション)パラメータ変数:コンフィギュレーションパ
+ * ラメータをRTCのアクティビティ内で実際に利用する際に参照される変
+ * 数。パラメータごとに固有の型を持つ。
+ *
+ * <li>アクティブ(コンフィギュレーション)セット:現在有効なコンフィギュ
+ * レーションセットのことであり、唯一つ存在する。原則として、アクティ
+ * ブコンフィギュレーションセットのパラメータがコンフィギュレーショ
+ * ンパラメータ変数に反映される。
+ * </ul>
+ * このクラスでは、コンフィギュレーションのための以下の2つの情報を保
+ * 持している。
+ *
+ * <ul>
+ * <li># コンフィギュレーションセットのリスト
+ * <li># パラメータ変数のリスト
+ * </ul>
+ * 基本的には、(1) のコンフィギュレーションセットのリストのうち一つを、
+ * (2) のパラメータ変数へ反映させる、のが本クラスの目的である。通常、
+ * パラメータ変数の変更操作は、コンフィギュレーションセットの変更とパ
+ * ラメータ変数への反映の2段階で行われる。
+ *
+ * コンフィギュレーションセットのリストの操作には、以下の関数を用いる。
+ * <ul>
+ * <li>getConfigurationSets()
+ * <li>getConfigurationSet()
+ * <li>setConfigurationSetValues()
+ * <li>getActiveConfigurationSet()
+ * <li>addConfigurationSet()
+ * <li>removeConfigurationSet()
+ * <li>activateConfigurationSet()
+ * </ul>
+ *
+ * これらの関数により、コンフィギュレーションセットの変更、追加、削除、
+ * 取得、アクティブ化を行う。これらの操作により変更されたコンフィギュ
+ * レーションセットを、RTCのアクティビティから使用するパラメータ変数
+ * に反映させるには、以下の update() 関数を用いる。
+ *
+ * <ul>
+ * <li> update(void)
+ * <li> update(const char* config_set)
+ * <li> update(const char* config_set, const char* config_param)
+ * </ul>
+ *
+ * コンフィギュレーション操作をフックするためにコールバックファンクタ
+ * を与えることができる。フックできる操作は以下の通り。
+ *
+ * <ul>
+ * <li> ON_UPDATE : update() コール時
+ * <li> ON_UPDATE_PARAM : update(param) コール時
+ * <li> ON_SET_CONFIGURATIONSET : setConfigurationSet() コール時
+ * <li> ON_ADD_CONFIGURATIONSET : addConfigurationSet() コール時
+ * <li> ON_REMOVE_CONFIGURATIONSET : removeConfigurationSet() コール時
+ * <li> ON_ACTIVATE_CONFIGURATIONSET: activateConfigurationSet() コール時
+ * </ul>}
+ *
+ *
+ *
+ * {@.en Now terms for this class are defined as follows.
+ *
+ * <ul>
+ * <li> Configurations: The configuration information for the RTCs.
+ *
+ * <li> (Configuration) parameters: Configuration information that
+ * consists of a key-value pair. The "key" and the "value" are
+ * both stored as character string values in a util.Properties
+ * variable in this class. The "key" is called the "configuration
+ * parameter name", and the "value" is called the "configuration
+ * parameter value".
+ *
+ * <li> Configuration-sets: This is a list of configuration parameters,
+ * and it is distinguished by name (ID). The ID is called
+ * configuration-set ID.
+ *
+ * <li> (Configuration) parameter variables: The variables to be
+ * referred when configuration parameters are actually used within
+ * the activity of an RTC. Each variable has each type.
+ *
+ * <li> Active (configuration) set: This is the only configuration-set
+ * that is currently active. The parameter values of the active
+ * configuration-set are substituted into configuration variables
+ * in principle.
+ * </ul>
+ *
+ * The following two configuration informations are stored in this class.
+ *
+ * <ul>
+ * <li># A list of configuration-set
+ * <li># A list of configuration parameter variables
+ * </ul>
+ *
+ * Basically, the purpose of this class is to set one of the
+ * configuration-set in the list of (1) into parameter variables of
+ * (2). Usually, configuration parameter variables manipulation is
+ * performed with two-phases of configuration-set setting and
+ * parameter variables setting.
+ *
+ * The configuration-set manipulations are performed by the
+ * following functions.
+ *
+ * <ul>
+ * <li> getConfigurationSets()
+ * <li> getConfigurationSet()
+ * <li> setConfigurationSetValues()
+ * <li> getActiveConfigurationSet()
+ * <li> addConfigurationSet()
+ * <li> removeConfigurationSet()
+ * <li> activateConfigurationSet()
+ * </ul>
+ *
+ * Modification, addition, deletion, acquisition and activation of
+ * configuration-set are performed by these functions. In order to
+ * reflect configuration-set, which is manipulated by these
+ * functions, on parameter variables that are used from RTC
+ * activities, the following update() functions are used .
+ *
+ * <ul>
+ * <li> update(void)
+ * <li> update(const char* config_set)
+ * <li> update(const char* config_set, const char* config_param)
+ * </ul>
+ *
+ * Callback functors can be given to hook configuration
+ * operation. Operations to be hooked are as follows.
+ *
+ * <ul>
+ * <li> ON_UPDATE : when update() is called
+ * <li> ON_UPDATE_PARAM : when update(param) is called
+ * <li> ON_SET_CONFIGURATIONSET : when setConfigurationSet() is called
+ * <li> ON_ADD_CONFIGURATIONSET : when addConfigurationSet() is called
+ * <li> ON_REMOVE_CONFIGURATIONSET : when removeConfigurationSet() is called
+ * <li> ON_ACTIVATE_CONFIGURATIONSET: when activateConfigurationSet() is called
+ * </ul>}
+ *
+ *
+ */
public class ConfigAdmin {
/**
- * OnUpdateCallbackクラス
+ * {@.ja OnUpdateCallbackクラス}
+ * {@.en OnUpdateCallback class}
*/
- class OnUpdateCallback implements OnUpdateCallbackFunc {
- public void operator(String config_set) {
- }
- };
+// class OnUpdateCallback implements OnUpdateCallbackFunc {
+ /**
+ * {@.ja 対象のオブジェクトに対して操作を行う。}
+ * {@.en Operates the object.}
+ *
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en configuration}
+ */
+// public void operator(String config_set) {
+// }
+// };
+
/**
- * OnUpdateParamCallbackクラス
+ * {@.ja OnUpdateParamCallbackクラス}
+ * {@.en OnUpdateParamCallback class}
*/
- class OnUpdateParamCallback implements OnUpdateParamCallbackFunc {
- public void operator(String config_set, String config_param) {
- }
- };
+// class OnUpdateParamCallback implements OnUpdateParamCallbackFunc {
+ /**
+ * {@.ja 対象のオブジェクトに対して操作を行う。}
+ * {@.en Operates the object.}
+ *
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en configuration}
+ * @param config_param
+ * {@.ja パラメータ}
+ * {@.en paramter}
+ */
+// public void operator(String config_set, String config_param) {
+// }
+// };
+
/**
- * OnSetConfigurationSetCallbackクラス
+ * {@.ja OnSetConfigurationSetCallbackクラス}
+ * {@.en OnSetConfigurationSetCallback class}
*/
- class OnSetConfigurationSetCallback implements OnSetConfigurationSetCallbackFunc {
- public void operator(Properties config_set) {
- }
- };
+// class OnSetConfigurationSetCallback implements OnSetConfigurationSetCallbackFunc {
+ /**
+ * {@.ja 対象のオブジェクトに対して操作を行う。}
+ * {@.en Operates the object.}
+ *
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en configuration}
+ */
+// public void operator(Properties config_set) {
+// }
+// };
+
+
/**
- * OnAddConfigurationAddCallbackクラス
+ * {@.ja OnAddConfigurationAddCallbackクラス}
+ * {@.en OnAddConfigurationAddCallback class}
*/
- class OnAddConfigurationAddCallback implements OnAddConfigurationAddCallbackFunc {
- public void operator(Properties config_set) {
- }
- };
+// class OnAddConfigurationAddCallback implements OnAddConfigurationAddCallbackFunc {
+ /**
+ * {@.ja 対象のオブジェクトに対して操作を行う。}
+ * {@.en Operates the object.}
+ *
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en configuration}
+ */
+// public void operator(Properties config_set) {
+// }
+// };
+
/**
- * OnRemoveConfigurationSetCallbackクラス
+ * {@.ja OnRemoveConfigurationSetCallbackクラス}
+ * {@.en OnRemoveConfigurationSetCallback class}
*/
- class OnRemoveConfigurationSetCallback implements OnRemoveConfigurationSetCallbackFunc {
- public void operator(String config_set) {
- }
- };
+// class OnRemoveConfigurationSetCallback implements OnRemoveConfigurationSetCallbackFunc {
+ /**
+ * {@.ja 対象のオブジェクトに対して操作を行う。}
+ * {@.en Operates the object.}
+ *
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en configuration}
+ */
+// public void operator(String config_set) {
+// }
+// };
+
/**
- * OnActivateSetCallbackクラス
+ * {@.ja OnActivateSetCallbackクラス}
+ * {@.en OnActivateSetCallback class}
*/
- class OnActivateSetCallback implements OnActivateSetCallbackFunc {
- public void operator(String config_id) {
- }
- };
+// class OnActivateSetCallback implements OnActivateSetCallbackFunc {
+ /**
+ * {@.ja 対象のオブジェクトに対して操作を行う。}
+ * {@.en Operates the object.}
+ *
+ * @param config_id
+ * {@.ja コンフィグレーションID}
+ * {@.en configuration ID}
+ */
+// public void operator(String config_id) {
+// }
+// };
+
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
*
- * @param configsets 設定対象プロパティ
+ * @param configsets
+ * {@.ja 設定対象プロパティ}
+ * {@.en The target property name for setup}
+ *
*/
public ConfigAdmin(Properties configsets) {
this.m_configsets = configsets;
@@ -78,16 +304,19 @@
this.m_active = true;
this.m_changed = false;
+/*
this.m_updateCb = null;
this.m_updateParamCb = null;
this.m_setConfigSetCb = null;
this.m_addConfigSetCb = null;
this.m_removeConfigSetCb = null;
this.m_activateSetCb = null;
+*/
}
/**
- * <p>デストラクタです。</p>
+ * {@.ja デストラクタ}
+ * {@.en Virtual Destructor}
*/
public void destruct() {
for(int intIdx=0; intIdx<m_params.size(); ++intIdx) {
@@ -97,7 +326,8 @@
}
/**
- * <p>ファイナライザです。</p>
+ * {@.ja ファイナライザ}
+ * {@.en finalize}
*/
protected void finalize() throws Throwable {
@@ -109,13 +339,29 @@
}
/**
- * <p>指定したパラメータに値を設定すします。
- * 設定対象値の設定に失敗した場合は,デフォルト値をパラメータに設定します。</p>
+ * {@.ja コンフィギュレーションパラメータの設定。}
+ * {@.en Setup for configuration parameters}
*
- * @param param_name 設定対象パラメータ名
- * @param var 設定対象値
- * @param def_val デフォルト値
- * @return 設定結果
+ * <p>
+ * {@.ja コンフィギュレーションパラメータと変数をバインドする。
+ * 指定した名称のコンフィギュレーションパラメータが既に存在する場合は
+ * falseを返す。}
+ * {@.en Bind configuration parameter to its variable.
+ * Return false, if configuration parameter of specified name has already
+ * existed.}
+ *
+ * @param param_name
+ * {@.ja 設定対象パラメータ名}
+ * {@.en Configuration parameter name}
+ * @param var
+ * {@.ja 設定対象値}
+ * {@.en Configuration parameter variable}
+ * @param def_val
+ * {@.ja デフォルト値}
+ * {@.en Default value of configuration parameter}
+ * @return
+ * {@.ja 設定結果(設定成功:true,設定失敗:false)}
+ * {@.en Setup result (Successful:true, Failed:false)}
*/
public boolean bindParameter(final String param_name, ValueHolder var, final String def_val) {
if(isExist(param_name)) return false;
@@ -129,9 +375,33 @@
}
/**
- * <p>コンフィギュレーションセットに設定した値で,バインドパラメータの値を変更します。</p>
+ * {@.ja コンフィギュレーションパラメータの更新(ID指定)。}
+ * {@.en Update configuration parameter (By ID)}
*
- * @param config_set 設定対象のコンフィギュレーションセットID
+ * <p>
+ * {@.ja コンフィギュレーション変数の値を、指定したIDを持つコンフィギュレー
+ * ションセットの値で更新する。これにより、アクティブなコンフィギュ
+ * レーションセットは変更されない。したがって、アクティブコンフィギュ
+ * レーションセットとパラメータ変数の間に矛盾が発生する可能性がある
+ * ので注意が必要である。
+ *
+ * 指定したIDのコンフィギュレーションセットが存在しない場合は、何も
+ * せずに終了する。}
+ *
+ * {@.en This operation updates configuration variables by the
+ * configuration-set with specified ID. This operation does not
+ * change current active configuration-set. Since this operation
+ * causes inconsistency between current active configuration set
+ * and actual values of configuration variables, user should
+ * carefully use it.
+ *
+ * This operation ends without doing anything, if the
+ * configuration-set does not exist.}
+ *
+ * @param config_set
+ * {@.ja 設定対象のコンフィギュレーションセットID}
+ * {@.en The target configuration set's ID to setup}
+ *
*/
public void update(final String config_set) {
if( m_configsets.hasKey(config_set) == null) return;
@@ -146,7 +416,24 @@
}
/**
- * <p>現在アクティブなコンフィギュレーションの値で,バインドパラメータの値を変更します。</p>
+ * {@.ja コンフィギュレーションパラメータの更新
+ * (アクティブコンフィギュレーションセット)。}
+ * {@.en Update the values of configuration parameters
+ * (Active configuration set)}
+ *
+ * <p>
+ * {@.ja コンフィギュレーションセットが更新されている場合に、現在アクティ
+ * ブになっているコンフィギュレーションに設定した値で、コンフィギュ
+ * レーションパラメータの値を更新する。この処理での更新は、アクティ
+ * ブとなっているコンフィギュレーションセットが存在している場合、前
+ * 回の更新からコンフィギュレーションセットの内容が更新されている場
+ * 合のみ実行される。}
+ * {@.en When configuration set is updated, update the configuration
+ * parameter value to the value that is set to the current active
+ * configuration. This update will be executed, only when an
+ * active configuration set exists and the content of the
+ * configuration set has been updated from the last update.}
+ *
*/
public void update() {
if( m_changed && m_active ) {
@@ -157,11 +444,36 @@
}
/**
- * <p>指定したコンフィギュレーションに設定した値で,バインドパラメータの値を変更します。</p>
+ * {@.ja コンフィギュレーションパラメータの更新(名称指定)。}
+ * {@.en Update the values of configuration parameters (By name)}
*
- * @param config_set コンフィギュレーション名称
- * 「.」区切りで最後の要素を除いた名前
- * @param config_param コンフィギュレーションセットの最後の要素名
+ * <p>
+ * {@.ja 特定のコンフィギュレーション変数の値を、指定したIDを持つコンフィ
+ * ギュレーションセットの値で更新する。これにより、アクティブなコン
+ * フィギュレーションセットは変更されない。したがって、アクティブコ
+ * ンフィギュレーションセットとパラメータ変数の間に矛盾が発生する可
+ * 能性があるので注意が必要である。
+ *
+ * 指定したIDのコンフィギュレーションセットや、指定した名称のパラメー
+ * タが存在しない場合は、何もせずに終了する。}
+ * {@.en This operation updates a configuration variable by the
+ * specified configuration parameter in the
+ * configuration-set. This operation does not change current
+ * active configuration-set. Since this operation causes
+ * inconsistency between current active configuration set and
+ * actual values of configuration variables, user should carefully
+ * use it.
+ *
+ * This operation ends without doing anything, if the
+ * configuration-set or the configuration parameter do not exist.}
+ *
+ * @param config_set
+ * {@.ja コンフィギュレーションID}
+ * {@.en configuration-set ID.}
+ * @param config_param
+ * {@.ja コンフィギュレーションパラメータ名}
+ * {@.en configuration parameter name.}
+ *
*/
public void update(final String config_set, final String config_param) {
String key = config_set + "." + config_param;
@@ -178,10 +490,24 @@
}
/**
- * <p>指定したパラメータが存在するか確認します。</p>
+ * {@.ja コンフィギュレーションパラメータの存在確認。}
+ * {@.en Check the existence of configuration parameters}
*
- * @param param_name 確認対象パラメータ名
- * @return 存在確認結果
+ * <p>
+ * {@.ja 指定した名称を持つコンフィギュレーションパラメータ変数が存在する
+ * か確認する。ここで存在確認を行うパラメータ変数とは、
+ * bindParameter() によって登録される、変数を持つパラメータである。}
+ * {@.en Check the existence of configuration parameters of specified name.}
+ *
+ * @param param_name
+ * {@.ja コンフィギュレーションパラメータ名称。}
+ * {@.en Configuration parameter name}
+ *
+ * @return
+ * {@.ja 存在確認結果(パラメータあり:true,パラメータなし:false)}
+ * {@.en Result of existance confirmation
+ * (Parameters exist:true, else:false)}
+ *
*/
public boolean isExist(final String param_name) {
Iterator<ConfigBase> iterator = m_params.iterator();
@@ -194,28 +520,55 @@
}
/**
- * <p>パラメータが変更されているか確認します。</p>
- *
- * @return 変更有無確認結果
+ * {@.ja コンフィギュレーションパラメータの変更確認。}
+ * {@.en Confirm to change configuration parameters}
+ *
+ * <p>
+ * {@.ja コンフィギュレーションパラメータが変更されたか確認する。}
+ * {@.en Confirm that configuration parameters have changed.}
+ *
+ * @return
+ * {@.ja 変更確認結果(変更あり:true、変更なし:false)}
+ * {@.en Result of change confirmation
+ * (There is a change:true、No change:false)}
*/
public boolean isChanged() {
return m_changed;
}
/**
- * <p>現在アクティブなコンフィギュレーションセットのIDを取得します。</p>
+ * {@.ja アクティブ・コンフィギュレーションセットIDの取得。}
+ * {@.en Get ID of active configuration set}
*
- * @return アクティブ・コンフィギュレーションセットID
+ * <p>
+ * {@.ja 現在アクティブなコンフィギュレーションセットのIDを取得する。}
+ * {@.en Get ID of the current active configuration set.}
+ *
+ * @return
+ * {@.ja アクティブ・コンフィギュレーションセットID}
+ * {@.en The active configuration set ID}
+ *
*/
public final String getActiveId(){
return m_activeId;
}
/**
- * <p>指定したコンフィギュレーションが存在するか確認します。</p>
+ * {@.ja コンフィギュレーションセットの存在確認。}
+ * {@.en Check the existence of configuration set}
*
- * @param config_id 確認対象コンフィギュレーションID
- * @return 存在確認結果
+ * <p>
+ * {@.ja 指定したコンフィギュレーションセットが存在するか確認する。}
+ * {@.en Check the existence of specified configuration set.}
+ *
+ * @param config_id
+ * {@.ja 確認対象コンフィギュレーションセットID}
+ * {@.en ID of target configuration set for confirmation}
+ *
+ * @return
+ * {@.ja 存在確認結果(指定したConfigSetあり:true、なし:false)}
+ * {@.en Result of existence confirmation
+ * (Specified ConfigSet exists:true, else:false)}
*/
public final boolean haveConfig(final String config_id) {
return (m_configsets.hasKey(config_id) == null) ? false : true;
@@ -223,29 +576,60 @@
}
/**
- * <p>コンフィギュレーションセットがアクティブとなっているか確認します。</p>
- *
- * @return 確認結果
+ * {@.ja コンフィギュレーションセットのアクティブ化確認。}
+ * {@.en Confirm to activate configuration set}
+ *
+ * <p>
+ * {@.ja コンフィギュレーションセットがアクティブ化されているか確認する。}
+ * {@.en Confirm that configuration set has been activated.}
+ *
+ * @return
+ * {@.ja 状態確認結果(アクティブ状態:true、非アクティブ状態:false)}
+ * {@.en Result of state confirmation
+ * (Active state:true, Inactive state:false)}
+ *
*/
public boolean isActive() {
return m_active;
}
/**
- * <p>設定されている全コンフィギュレーションセットを取得します。</p>
+ * {@.ja 全コンフィギュレーションセットの取得。}
+ * {@.en Get all configuration sets}
*
- * @return 全コンフィギュレーションセット
+ * <p>
+ * {@.ja 設定されている全コンフィギュレーションセットを取得する。}
+ * {@.en Get all specified configuration sets}
+ *
+ * @return
+ * {@.ja 全コンフィギュレーションセット}
+ * {@.en All configuration sets}
+ *
*/
public final Vector<Properties> getConfigurationSets() {
return m_configsets.getLeaf();
}
/**
- * <p>指定したIDのコンフィギュレーションセットを取得します。
- * 存在しない場合は空のコンフィギュレーションセットを返します。</p>
+ * {@.ja 指定したIDのコンフィギュレーションセットの取得。}
+ * {@.en Get a configuration set by specified ID}
*
- * @param config_id 取得対象コンフィギュレーションセットID
- * @return コンフィギュレーションセット
+ * <p>
+ * {@.ja IDで指定したコンフィギュレーションセットを取得する。
+ * 指定したコンフィギュレーションセットが存在しない場合は、
+ * 空のコンフィギュレーションセットを返す。}
+ * {@.en Get a configuration set that was specified by ID
+ * Return empty configuration set, if a configuration set of
+ * specified ID doesn't exist.}
+ *
+ * @param config_id
+ * {@.ja 取得対象コンフィギュレーションセットのID}
+ * {@.en ID of the target configuration set for getting}
+ *
+ * @return
+ * {@.ja コンフィギュレーションセット}
+ * {@.en The configuration set}
+ *
*/
public final Properties getConfigurationSet(final String config_id) {
Properties p = new Properties(m_configsets.getNode(config_id));
@@ -254,11 +638,29 @@
}
/**
- * <p>指定したコンフィギュレーションセットに設定値をマージします。</p>
- *
- * @param config_id 追加対象コンフィギュレーションセットID
- * @param config_set 追加対象設定値
- * @return 追加結果
+ * {@.ja 指定したプロパティのコンフィギュレーションセットへの追加。}
+ * {@.en Add to configuration set from specified property}
+ *
+ * <p>
+ * {@.ja 指定したプロパティをIDで指定したコンフィギュレーションセットへ
+ * 追加(マージ)する。
+ * 指定したIDと一致するコンフィギュレーションセットが存在しない場合は、
+ * false を返す。}
+ * {@.en Add specified property to configuration set that was specified
+ * by ID.
+ * Return false if configuration set, that matches specified ID,
+ * doesn't exist.}
+ *
+ * @param config_id
+ * {@.ja 追加対象コンフィギュレーションセットのID}
+ * {@.en ID of the target configuration set for add}
+ * @param config_set
+ * {@.ja 追加するプロパティ}
+ * {@.en Property to add}
+ *
+ * @return
+ * {@.ja 追加処理実行結果(追加成功:true、追加失敗:false)}
+ * {@.en Add result (Successful:true, Failed:false)}
*/
public boolean setConfigurationSetValues(final String config_id, final Properties config_set) {
if( !config_id.equals(config_set.getName())) return false;
@@ -273,11 +675,22 @@
}
/**
- * <p>現在アクティブなコンフィギュレーションセットを取得します。
- * アクティブなコンフィギュレーションセットが存在しない場合は,
- * 空のコンフィギュレーションセットを返します。</p>
+ * {@.ja アクティブ・コンフィギュレーションセットを取得。}
+ * {@.en Get the active configuration set}
*
- * @return アクティブ・コンフィギュレーションセット
+ * <p>
+ * {@.ja 現在アクティブとなっているコンフィギュレーションセットを取得する。
+ * アクティブとなっているコンフィギュレーションセットが存在しない場合は、
+ * 空のコンフィギュレーションセット を返す。}
+ * {@.en Get the current active configuration set.
+ * Return empty configuration set, if an active configuration set
+ * doesn't exist.}
+ *
+ *
+ * @return
+ * {@.ja アクティブ・コンフィギュレーションセット}
+ * {@.en The active configuration set}
+ *
*/
public final Properties getActiveConfigurationSet(){
Properties prop = m_configsets.getNode(m_activeId);
@@ -288,10 +701,20 @@
}
/**
- * <p>コンフィギュレーションセットに設定値を追加します。</p>
+ * {@.ja コンフィギュレーションセットに設定値を追加。}
+ * {@.en Add the configuration value to configuration set}
*
- * @param config_set 追加対象コンフィギュレーションセット
- * @return 追加結果
+ * <p>
+ * {@.ja コンフィギュレーションセットに設定値を追加する。}
+ * {@.en Add the configuration value to configuration set}
+ *
+ * @param config_set
+ * {@.ja 追加するプロパティ}
+ * {@.en Property to add}
+ *
+ * @return
+ * {@.ja 追加処理結果(追加成功:true、追加失敗:false)}
+ * {@.en Add Result (Successful:true, Failed:false)}
*/
public boolean addConfigurationSet(final Properties config_set) {
if( m_configsets.hasKey(config_set.getName()) != null ) return false;
@@ -309,10 +732,51 @@
}
/**
- * <p>指定したコンフィギュレーションセットを削除します。</p>
+ * {@.ja コンフィギュレーションセットの削除。}
+ * {@.en Remove the configuration set}
*
- * @param config_id 削除対象コンフィギュレーションセットID
- * @return 削除結果
+ * <p>
+ * {@.ja 指定したIDのコンフィギュレーションセットを削除する。
+ *
+ * 指定したIDのコンフィギュレーションセットが存在しない場合は、
+ * falseを返す。削除可能なコンフィギュレーションセットは、
+ * addConfigruationSet() によって追加したコンフィギュレーションセッ
+ * トのみであり、デフォルトコンフィギュレーションセット、コンポーネ
+ * ント起動時にファイルから読み込まれるコンフィギュレーションセット
+ * は削除することができない。
+ *
+ * また、指定したコンフィギュレーションセットが現在アクティブである
+ * 場合には、いかなるコンフィギュレーションセットでも削除できない。
+ *
+ * この関数により実際にコンフィギュレーションセットが削除された場合、
+ * setOnRemoveConfigurationSet() でセットされたコールバック関数が呼
+ * び出される。}
+ * {@.en Remove the configuration set of specified ID Return empty
+ * configuration set, if a configuration set of specified ID
+ * doesn't exist.
+ *
+ * The configuration-sets that can be removed by this function are
+ * only configuration-sets newly added by the
+ * addConfigurationSet() function. The configuration that can be
+ * removed by this function is only newly added configuration-set
+ * by addConfigurationSet() function. The "default"
+ * configuration-set and configurationi-sets that is loaded from
+ * configuration file cannot be removed.
+ *
+ * If the specified configuration is active currently, any
+ * configurations are not deleted.
+ *
+ * Callback functions that are set by
+ * addOnRemovedConfigurationSet() will be called if a
+ * configuration-set is deleted actually by this function.}
+ *
+ * @param config_id
+ * {@.ja 削除対象コンフィギュレーションセットのID}
+ * {@.en ID of the target configuration set for remove}
+ *
+ * @return
+ * {@.ja 削除処理結果(削除成功:true、削除失敗:false)}
+ * {@.en Remove result (Successful:true, Failed:false)}
*/
public boolean removeConfigurationSet(final String config_id) {
if (config_id.equals("default")) return false;
@@ -333,10 +797,24 @@
}
/**
- * <p>指定したコンフィギュレーションセットをアクティブにします。</p>
+ * {@.ja コンフィギュレーションセットのアクティブ化。}
+ * {@.en Activate the configuration set}
*
- * @param config_id アクティブにするコンフィギュレーションセットID
- * @return Activate結果
+ * <p>
+ * {@.ja 指定したIDのコンフィギュレーションセットをアクティブ化する。
+ * 指定したIDのコンフィギュレーションセットが存在しない場合は、
+ * falseを返す。}
+ * {@.en Activate the configuration set of specified ID
+ * Return empty configuration set, if a configuration set of
+ * specified ID doesn't exist.}
+ *
+ * @param config_id
+ * {@.ja アクティブにするコンフィギュレーションセットID}
+ * {@.en ID of the target configuration set for remove}
+ *
+ * @return
+ * {@.ja アクティブ処理結果(成功:true、失敗:false)}
+ * {@.en Activate result (Remove success:true、Remove failure:false)}
*/
public boolean activateConfigurationSet(final String config_id) {
if( config_id == null ) return false;
@@ -353,127 +831,555 @@
/**
- * setOnUpdate
+ * {@.ja OnUpdate のコールバックの設定}
+ * {@.en Set callback that is called by OnUpdate.}
+ *
+ * <p>
+ * {@.ja OnUpdate で呼ばれるコールバックのオブジェクトを設定する。}
+ *
+ * @param cb
+ * {@.ja OnUpdateCallback型のオブジェクト}
+ * {@.en OnUpdateCallback type object}
*/
+/*
public void setOnUpdate(OnUpdateCallbackFunc cb) {
// if (m_updateCb != 0) {
// m_updateCb = null;
// }
m_updateCb = cb;
}
+*/
/**
- * setOnUpdateParam
+ * {@.ja OnUpdateParam のコールバックの設定}
+ * {@.en Set callback that is called by OnUpdateParam.}
+ *
+ * <p>
+ * {@.ja OnUpdateParam で呼ばれるコールバックのオブジェクトを設定する。}
+ *
+ * @param cb
+ * {@.ja OnUpdateParamCallback型のオブジェクト}
+ * {@.en OnUpdateParamCallback type object}
+ *
*/
+/*
public void setOnUpdateParam(OnUpdateParamCallbackFunc cb) {
// if (m_updateParamCb != 0) {
// m_updateParamCb = null;
// }
m_updateParamCb = cb;
}
+*/
/**
- * setOnSetConfigurationSet
+ * {@.ja OnSetConfigurationSet のコールバックの設定}
+ * {@.en Set callback that is called by OnSetConfiguration.}
+ *
+ * <p>
+ * {@.ja OnSetConfigurationSet で呼ばれるコールバックのオブジェクトを
+ * 設定する。}
+ *
+ * @param cb
+ * {@.ja OnSetConfigurationSetCallback型のオブジェクト}
+ * {@.en OnSetConfigurationSetCallback type object}
*/
+
public void setOnSetConfigurationSet(OnSetConfigurationSetCallbackFunc cb) {
// if (m_setConfigSetCb != 0) {
// m_setConfigSetCb = null;
// }
- m_setConfigSetCb = cb;
+// m_setConfigSetCb = cb;
}
+
/**
- * setOnAddConfigurationSet
+ * {@.ja OnAddConfigurationSet のコールバックの設定}
+ * {@.en Set callback that is called by OnSetConfiguration.}
+ *
+ * <p>
+ * {@.ja OnAddConfigurationSet で呼ばれるコールバックのオブジェクト
+ * を設定する。}
+ *
+ * @param cb
+ * {@.ja OnAddConfigurationAddCallback型のオブジェクト}
+ * {@.en OnSetConfigurationSetCallback type object}
+ *
*/
+
public void setOnAddConfigurationSet(OnAddConfigurationAddCallbackFunc cb) {
// if (m_addConfigSetCb != 0) {
// m_addConfigSetCb = null;
// }
- m_addConfigSetCb = cb;
+// m_addConfigSetCb = cb;
}
+
/**
- * setOnRemoveConfigurationSet
+ * {@.ja OnRemoveConfigurationSet のコールバックの設定}
+ * {@.en Set callback that is called by OnRemoveConfigurationSet.}
+ *
+ * <p>
+ * {@.ja OnRemoveConfiguration で呼ばれるコールバックのオブジェクトを
+ * 設定する。}
+ *
+ * @param cb
+ * {@.ja OnRemoveConfigurationSetCallback型のオブジェクト}
+ * {@.en OnRemoveConfigurationSetCallback type object}
+ *
*/
+/*
public void setOnRemoveConfigurationSet(OnRemoveConfigurationSetCallbackFunc cb) {
// if (m_removeConfigSetCb != 0) {
// m_removeConfigSetCb = null;
// }
m_removeConfigSetCb = cb;
}
+*/
/**
- * setOnActivateSet
+ * {@.ja OnActivateSet のコールバックの設定}
+ * {@.en Set callback that is called by OnActivateSet.}
+ *
+ * <p>
+ * {@.ja OnActivateSet で呼ばれるコールバックのオブジェクトを設定する。}
+ *
+ * @param cb
+ * {@.ja OnActivateSetCallback型のオブジェクト}
+ * {@.en OnActivateSetCallback type object}
+ *
*/
+/*
public void setOnActivateSet(OnActivateSetCallbackFunc cb) {
// if (m_activateSetCb != 0) {
// m_activateSetCb = null;
// }
m_activateSetCb = cb;
}
+*/
/**
- * onUpdate
+ * {@.ja コンフィギュレーションパラメータの更新(ID指定)時にコールされる。}
+ * {@.en When the configuration parameter is updated, it is called.}
+ *
+ * <p>
+ * {@.ja 設定されてるコールバックオブジェクトを呼び出す。}
+ * {@.en Call the set callback object.}
+ *
+ * @param config_set
+ * {@.ja 設定対象のコンフィギュレーションセットID}
+ * {@.en The target configuration set's ID to setup}
*/
public void onUpdate(String config_set) {
- if (m_updateCb != null) {
- m_updateCb.operator(config_set);
- }
+ m_listeners.configsetname_[ConfigurationSetNameListenerType.ON_UPDATE_CONFIG_SET].notify(config_set);
}
/**
- * onUpdateParam
+ * {@.ja コンフィギュレーションパラメータの更新(名称指定)時にコールされる。}
+ * {@.en When the configuration parameter is updated, it is called.}
+ *
+ * <p>
+ * {@.ja 設定されてるコールバックオブジェクトを呼び出す。}
+ * {@.en Call the set callback object.}
+ *
+ * @param config_set
+ * {@.ja コンフィギュレーションID}
+ * {@.en configuration-set ID.}
+ * @param config_param
+ * {@.ja コンフィギュレーションパラメータ名}
+ * {@.en configuration parameter name.}
+ *
*/
public void onUpdateParam(String config_set, String config_param) {
- if (m_updateParamCb != null) {
- m_updateParamCb.operator(config_set, config_param);
- }
+ m_listeners.configparam_[ConfigurationParamListenerType.ON_UPDATE_CONFIG_PARAM].notify(config_set,
+ config_param);
}
/**
- * onSetConfigurationSet
+ * {@.ja コンフィギュレーションセットへの追加時にコールされる。}
+ * {@.en Called when the property is added to the configuration set}
+ *
+ * <p>
+ * {@.ja 設定されてるコールバックオブジェクトを呼び出す。}
+ * {@.en Call the set callback object.}
+ *
+ * @param config_set
+ * {@.ja プロパティ}
+ * {@.en property}
*/
public void onSetConfigurationSet(Properties config_set) {
- if (m_setConfigSetCb != null) {
- m_setConfigSetCb.operator(config_set);
- }
+ m_listeners.configset_[ConfigurationSetListenerType.ON_SET_CONFIG_SET].notify(config_set);
}
+
/**
- * onAddConfigurationSet
+ * {@.ja 設定値が追加されたときにコールされる。}
+ * {@.en Called when a set value is added to the configuration set}
+ *
+ * <p>
+ * {@.ja 設定されてるコールバックオブジェクトを呼び出す。}
+ * {@.en Call the set callback object.}
+ *
+ * @param config_set
+ * {@.ja プロパティ}
+ * {@.en property}
+ *
*/
+
public void onAddConfigurationSet(Properties config_set) {
- if (m_addConfigSetCb != null) {
- m_addConfigSetCb.operator(config_set);
- }
+ m_listeners.configset_[ConfigurationSetListenerType.ON_ADD_CONFIG_SET].notify(config_set);
}
+
/**
- * onRemoveConfigurationSet
+ * {@.ja セットが削除されてるときにコールされる。}
+ * {@.en Called when the configuration set has been deleted}
+ *
+ * <p>
+ * {@.ja 設定されてるコールバックオブジェクトを呼び出す。}
+ * {@.en Call the set callback object.}
+ *
+ * @param config_id
+ * {@.ja プロパティ}
+ * {@.en property}
+ *
*/
+
public void onRemoveConfigurationSet(String config_id) {
- if (m_removeConfigSetCb != null) {
- m_removeConfigSetCb.operator(config_id);
- }
+ m_listeners.configsetname_[ConfigurationSetNameListenerType.ON_REMOVE_CONFIG_SET].notify(config_id);
}
+
/**
- * onActivateSet
+ * {@.ja セットがアクティブ化されたときにコールされる。}
+ * {@.en Called when the configuration set is made active}
+ *
+ * <p>
+ * {@.ja 設定されてるコールバックオブジェクトを呼び出す。}
+ * {@.en Call the set callback object.}
+ *
+ * @param config_id
+ * {@.ja プロパティ}
+ * {@.en property}
+ *
*/
+
public void onActivateSet(String config_id) {
- if (m_activateSetCb != null) {
- m_activateSetCb.operator(config_id);
+ m_listeners.configsetname_[ConfigurationSetNameListenerType.ON_ACTIVATE_CONFIG_SET].notify(config_id);
+ }
+ /**
+ * {@.ja ConfigurationParamListener を追加する}
+ * {@.en Adding ConfigurationParamListener}
+ * <p>
+ * {@.ja update(const char* config_set, const char* config_param) が呼ばれた際に
+ * コールされるリスナ ConfigurationParamListener を追加する。
+ * type には現在のところ ON_UPDATE_CONFIG_PARAM のみが入る。}
+ * {@.en This function adds a listener object which is called when
+ * update(const char* config_set, const char* config_param) is
+ * called. In the type argument, currently only
+ * ON_UPDATE_CONFIG_PARAM is allowed.}
+ *
+ * @param type
+ * {@.ja ConfigurationParamListenerType型の値。
+ * ON_UPDATE_CONFIG_PARAM がある。}
+ * {@.en ConfigurationParamListenerType value
+ * ON_UPDATE_CONFIG_PARAM is only allowed.}
+ * @param listener
+ * {@.ja ConfigurationParamListener 型のリスナオブジェクト。}
+ * {@.en ConfigurationParamListener listener object.}
+ * @param autoclean
+ * {@.ja リスナオブジェクトを自動で削除するかどうかのフラグ}
+ * {@.en a flag whether if the listener object autocleaned.}
+ *
+ */
+ public void addConfigurationParamListener(int type,
+ ConfigurationParamListener listener,
+ boolean autoclean)
+ {
+ if (type < ConfigurationParamListenerType.CONFIG_PARAM_LISTENER_NUM) {
+ m_listeners.configparam_[type].addObserver(listener);
+ return;
}
+ return;
}
+ public void addConfigurationParamListener(int type,
+ ConfigurationParamListener listener)
+ {
+ addConfigurationParamListener(type,listener,true);
+ }
+ /*
+ template <class Listener>
+ ConfigurationParamListener*
+ addConfigurationParamListener(int listener_type,
+ Listener& obj,
+ void (Listener::*memfunc)(const char*,
+ const char*))
+ {
+ class Noname
+ : public ConfigurationParamListener
+ {
+ public:
+ Noname(Listener& obj,
+ void (Listener::*memfunc)(const char*, const char*))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ void operator()(const char* config_set_name,
+ const char* config_param_name)
+ {
+ (m_obj.*m_memfunc)(config_set_name, config_param_name);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(const char*, const char*);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addConfigurationParamListener(listener_type, listener, true);
+ return listener;
+ }
+ */
+ /**
+ * {@.ja ConfigurationParamListener を削除する}
+ * {@.en Removing ConfigurationParamListener}
+ * <p>
+ * {@.ja addConfigurationParamListener で追加されたリスナオブジェクトを削除する。}
+ * {@.en This function removes a listener object which is added by
+ * addConfigurationParamListener() function.}
+ *
+ * @param type
+ * {@.ja ConfigurationParamListenerType型の値。
+ * ON_UPDATE_CONFIG_PARAM がある。}
+ * {@.en ConfigurationParamListenerType value
+ * ON_UPDATE_CONFIG_PARAM is only allowed.}
+ * @param listener
+ * {@.ja 与えたリスナオブジェクトへのポインタ}
+ * {@.en a pointer to ConfigurationParamListener listener object.}
+ */
+ public void removeConfigurationParamListener(int type,
+ ConfigurationParamListener listener)
+ {
+ if (type < ConfigurationParamListenerType.CONFIG_PARAM_LISTENER_NUM) {
+ m_listeners.configparam_[type].deleteObserver(listener);
+ return;
+ }
+ return;
+ }
+ /**
+ * {@.ja ConfigurationSetListener を追加する}
+ * {@.en Adding ConfigurationSetListener }
+ * <p>
+ * {@.ja ConfigurationSet が更新されたときなどに呼ばれるリスナ
+ * ConfigurationSetListener を追加する。設定可能なイベントは以下の
+ * 2種類がある。
+ * <ul>
+ * <li> ON_SET_CONFIG_SET: setConfigurationSetValues() で
+ * ConfigurationSet に値が設定された場合。</li>
+ * <li> ON_ADD_CONFIG_SET: addConfigurationSet() で新しい
+ * ConfigurationSet が追加された場合。</li></ul>}
+ * {@.en This function add a listener object which is called when
+ * ConfigurationSet is updated. Available events are the followings.}
+ *
+ * @param type
+ * {@.ja ConfigurationSetListenerType型の値。}
+ * {@.en ConfigurationSetListenerType value}
+ * @param listener
+ * {@.ja ConfigurationSetListener 型のリスナオブジェクト。}
+ * {@.en ConfigurationSetListener listener object.}
+ * @param autoclean
+ * {@.ja リスナオブジェクトを自動で削除するかどうかのフラグ}
+ * {@.en a flag whether if the listener object autocleaned.}
+ */
+ public void addConfigurationSetListener(int type,
+ ConfigurationSetListener listener,
+ boolean autoclean)
+ {
+ if (type < ConfigurationSetListenerType.CONFIG_SET_LISTENER_NUM) {
+ m_listeners.configset_[type].addObserver(listener);
+ return;
+ }
+ return;
+ }
+ public void addConfigurationSetListener(int type,
+ ConfigurationSetListener listener)
+ {
+ addConfigurationSetListener(type,listener,true);
+ }
+ /*
+ template <class Listener>
+ ConfigurationSetListener*
+ addConfigurationSetListener(int listener_type,
+ Listener& obj,
+ void (Listener::*memfunc)
+ (const coil::Properties& config_set))
+ {
+ class Noname
+ : public ConfigurationSetListener
+ {
+ public:
+ Noname(Listener& obj,
+ void (Listener::*memfunc)(const coil::Properties& config_set))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ virtual void operator()(const coil::Properties& config_set)
+ {
+ (m_obj.*m_memfunc)(config_set);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(const coil::Properties& config_set);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addConfigurationSetListener(listener_type, listener, true);
+ return listener;
+ }
+ */
/**
- * コピー・コンストラクタ
+ * {@.ja ConfigurationSetListener を削除する}
+ * {@.en Removing ConfigurationSetListener}
+ * <p>
+ * {@.ja addConfigurationSetListener で追加されたリスナオブジェクトを削除する。}
+ * {@.en This function removes a listener object which is added by
+ * addConfigurationSetListener() function.}
*
- * @param ca コピー基情報
+ * @param type
+ * {@.ja ConfigurationSetListenerType型の値。}
+ * {@.en ConfigurationSetListenerType value}
+ * @param listener
+ * {@.ja 与えたリスナオブジェクトへのポインタ}
+ * {@.en a pointer to ConfigurationSetListener listener object.}
*
*/
+ public void removeConfigurationSetListener(int type,
+ ConfigurationSetListener listener)
+ {
+ if (type < ConfigurationSetListenerType.CONFIG_SET_LISTENER_NUM) {
+ m_listeners.configset_[type].deleteObserver(listener);
+ return;
+ }
+ return;
+ }
+ /**
+ * {@.ja ConfigurationSetNameListener を追加する}
+ * {@.en Adding ConfigurationSetNameListener}
+ * <p>
+ * {@.ja ConfigurationSetName が更新されたときなどに呼ばれるリスナ
+ * ConfigurationSetNameListener を追加する。設定可能なイベントは以下の
+ * 3種類がある。
+ * <ul>
+ * <li> ON_UPDATE_CONFIG_SET: ある ConfigurationSet がアップデートされた
+ * <li> ON_REMOVE_CONFIG_SET: ある ConfigurationSet が削除された
+ * <li> ON_ACTIVATE_CONFIG_SET: ある ConfigurationSet がアクティブ化された
+ * </ul>}
+ * {@.en This function add a listener object which is called when
+ * ConfigurationSetName is updated. Available events are the followings.
+ * <ul>
+ * <li> ON_UPDATE_CONFIG_SET: A ConfigurationSet has been updated.
+ * <li> ON_REMOVE_CONFIG_SET: A ConfigurationSet has been deleted.
+ * <li> ON_ACTIVATE_CONFIG_SET: A ConfigurationSet has been activated.
+ * </ul>}
+ * @param type
+ * {@.ja ConfigurationSetNameListenerType型の値。}
+ * {@.en ConfigurationSetNameListenerType value}
+ * @param listener
+ * {@.ja ConfigurationSetNameListener 型のリスナオブジェクト。}
+ * {@.en ConfigurationSetNameListener listener object.}
+ * @param autoclean
+ * {@.ja リスナオブジェクトを自動で削除するかどうかのフラグ}
+ * {@.en a flag whether if the listener object autocleaned.}
+ */
+ public void
+ addConfigurationSetNameListener(int type,
+ ConfigurationSetNameListener listener,
+ boolean autoclean)
+ {
+ if (type < ConfigurationSetNameListenerType.CONFIG_SET_NAME_LISTENER_NUM) {
+ m_listeners.configsetname_[type].addObserver(listener);
+ return;
+ }
+ return;
+ }
+ public void
+ addConfigurationSetNameListener(int type,
+ ConfigurationSetNameListener listener)
+ {
+ addConfigurationSetNameListener(type,listener, true);
+ }
+ /*
+ template <class Listener>
+ ConfigurationSetNameListener*
+ addConfigurationSetNameListener(ConfigurationSetNameListenerType type,
+ Listener& obj,
+ void (Listener::*memfunc)(const char*))
+ {
+ class Noname
+ : public ConfigurationSetNameListener
+ {
+ public:
+ Noname(Listener& obj, void (Listener::*memfunc)(const char*))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ virtual void operator()(const char* config_set_name)
+ {
+ (m_obj.*m_memfunc)(config_set_name);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(const char*);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addConfigurationSetNameListener(type, listener, true);
+ return listener;
+ }
+ */
+ /**
+ * {@.ja ConfigurationSetNameListener を削除する}
+ * {@.en Removing ConfigurationSetNameListener}
+ * <p>
+ * {@.ja addConfigurationSetNameListener で追加されたリスナオブジェクトを
+ * 削除する。}
+ * {@.en This function removes a listener object which is added by
+ * addConfigurationSetNameListener() function.}
+ *
+ * @param type
+ * {@.ja ConfigurationSetNameListenerType型の値。
+ * ON_UPDATE_CONFIG_PARAM がある。}
+ * {@.en ConfigurationSetNameListenerType value
+ * ON_UPDATE_CONFIG_PARAM is only allowed.}
+ * @param listener
+ * {@.ja 与えたリスナオブジェクトへのポインタ}
+ * {@.en a pointer to ConfigurationSetNameListener
+ * listener object.}
+ *
+ */
+ public void
+ removeConfigurationSetNameListener(int type,
+ ConfigurationSetNameListener listener)
+ {
+ if (type < ConfigurationSetNameListenerType.CONFIG_SET_NAME_LISTENER_NUM) {
+ m_listeners.configsetname_[type].deleteObserver(listener);
+ return;
+ }
+ return;
+ }
+
+
+
+ /**
+ * {@.ja コピー・コンストラクタ}
+ * {@.en copy constructor}
+ *
+ * @param ca
+ * {@.ja コピー基情報}
+ * {@.en Source information}
+ *
+ */
private ConfigAdmin(final ConfigAdmin ca) {
m_configsets = ca.m_configsets;
}
@@ -513,25 +1419,55 @@
*/
private Vector<String> m_newConfig = new Vector<String>();
+ private ConfigurationListeners m_listeners = new ConfigurationListeners();
+/*
private OnUpdateCallbackFunc m_updateCb;
private OnUpdateParamCallbackFunc m_updateParamCb;
private OnSetConfigurationSetCallbackFunc m_setConfigSetCb;
private OnAddConfigurationAddCallbackFunc m_addConfigSetCb;
private OnRemoveConfigurationSetCallbackFunc m_removeConfigSetCb;
private OnActivateSetCallbackFunc m_activateSetCb;
+*/
}
/**
-*
-* コンフィギュレーションセット検索用ヘルパークラス
-*
-*/
+ *
+ * {@.ja コンフィギュレーションセット検索用ヘルパークラス}
+ * {@.en Helper class to find configuration-set}
+ *
+ */
class find_conf {
private String m_name;
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en constructor}
+ *
+ * @param name
+ * {@.ja コンフィギュレーション名}
+ * {@.en Configuration name}
+ *
+ */
public find_conf(final String name) {
m_name = name;
}
+ /**
+ * {@.ja コンフィギュレーション検索。}
+ * {@.en Finds configuration-set}
+ *
+ * <p>
+ * {@.ja 指定されたコンフィギュレーションを検索する}
+ * {@.en The specified configuration is found.}
+ *
+ * @param conf
+ * {@.ja コンフィギュレーション情報}
+ * {@.en Configuration}
+ *
+ * @return
+ * {@.ja 存在する場合はtrue}
+ * {@.en Returns true when existing.}
+ *
+ */
public boolean equalof(ConfigBase conf) {
return m_name.equals(conf.name);
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,34 +1,78 @@
package jp.go.aist.rtm.RTC;
-/**
- * <p>コンフィギュレーション情報保持用クラスの基底抽象クラスです。</p>
- */
+ /**
+ * {@.ja コンフィギュレーション情報保持用クラスの基底抽象クラス。}
+ * {@.en This is the abstract interface class to hold various configuration
+ * information.}
+ *
+ * <p>
+ * {@.ja 各種コンフィギュレーション情報を保持するための抽象クラス。具象コン
+ * フィギュレーションクラスは、以下の純粋仮想関数の実装を提供しなけれ
+ * ばならない。
+ *
+ * publicインターフェースとして以下のものを提供する。
+ * <ul>
+ * <li> update(): コンフィギュレーションパラメータ値の更新
+ * </ul>}
+ *
+ * {@.en Concrete configuration classes must implement the following pure
+ * virtual functions.
+ *
+ * This class provides public interface as follows.
+ * <ul>
+ * <li> update(): update configuration parameter value
+ * </ul>}
+ *
+ *
+ */
abstract class ConfigBase {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructer}
*
- * @param name_ コンフィギュレーション名
- * @param def_val デフォルト値文字列表現
+ * @param name_
+ * {@.ja コンフィギュレーション名}
+ * {@.en Configuration name}
+ * @param def_val
+ * {@.ja 文字列形式のデフォルト値}
+ * {@.en Default value in string format}
+ *
*/
public ConfigBase(final String name_, final String def_val) {
this.name = name_;
this.default_value = def_val;
}
+
/**
- * <p>指定したコンフィギュレーションに設定した値で,バインドパラメータの値を変更します。</p>
+ * {@.ja コンフィギュレーションパラメータ値更新用純粋仮想関数。}
+ * {@.en Pure virtual function to update configuration parameter values}
*
- * @param val パラメータ値の文字列表現
- * @return 設定結果
+ * <p>
+ * {@.ja コンフィギュレーション設定値でコンフィギュレーションパラメータを
+ * 更新するための純粋仮想関数。}
+ * {@.en Pure virtual function to update configuration parameter
+ * by the configuration value.}
+ *
+ * @param val
+ * {@.ja パラメータ値の文字列表現}
+ * {@.en The parameter values converted into character string format}
+ *
+ * @return
+ * {@.ja 設定結果}
+ * {@.en Result of the setup}
+ *
*/
public abstract boolean update(final String val);
/**
- * <p>コンフィギュレーション名</p>
+ * {@.ja コンフィギュレーション名}
+ * {@.en Configuration name}
*/
public final String name;
/**
- * <p>デフォルト値文字列表現</p>
+ * {@.ja 文字列形式のデフォルト値}
+ * {@.en Default value in string format}
*/
public final String default_value;
}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationListeners.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationListeners.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationListeners.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationListeners.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,55 @@
+package jp.go.aist.rtm.RTC;
+
+ /**
+ * {@.ja ConfigurationListeners クラス}
+ * {@.en ConfigurationListeners class}
+ */
+
+public class ConfigurationListeners {
+ /**
+ * {@.ja ConfigurationParamTypeリスナ配列}
+ * {@.en ConfigurationParamType listener array}
+ * <p>
+ * {@.ja ConfigurationParamTypeリスナを格納}
+ * {@.en The ConfigurationParamType listener is stored.}
+ */
+ public ConfigurationParamListenerHolder[] configparam_
+ = new ConfigurationParamListenerHolder[ConfigurationParamListenerType.CONFIG_PARAM_LISTENER_NUM];
+ /**
+ * {@.ja ConfigurationSetTypeリスナ配列}
+ * {@.en ConfigurationSetType listener array}
+ * <p>
+ * {@.ja ConfigurationSetTypeリスナを格納}
+ * {@.en The ConfigurationSetType listener is stored.}
+ */
+ public ConfigurationSetListenerHolder[] configset_
+ = new ConfigurationSetListenerHolder[ConfigurationSetListenerType.CONFIG_SET_LISTENER_NUM];
+ /**
+ * {@.ja ConfigurationSetNameListenerTypeリスナ配列}
+ * {@.en ConfigurationSetNameListenerType listener array}
+ * <p>
+ * {@.ja ConfigurationSetNameListenerTypeリスナを格納}
+ * {@.en The ConfigurationSetNameListenerType listener is stored. }
+ */
+ public ConfigurationSetNameListenerHolder[] configsetname_
+ = new ConfigurationSetNameListenerHolder[ConfigurationSetNameListenerType.CONFIG_SET_NAME_LISTENER_NUM];
+
+
+ /**
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ */
+ public ConfigurationListeners() {
+ for(int ic=0;ic<ConfigurationParamListenerType.CONFIG_PARAM_LISTENER_NUM;++ic){
+ configparam_[ic] = new ConfigurationParamListenerHolder();
+ }
+ for(int ic=0;ic<ConfigurationSetListenerType.CONFIG_SET_LISTENER_NUM;++ic){
+ configset_[ic] = new ConfigurationSetListenerHolder();
+ }
+ for(int ic=0;ic<ConfigurationSetNameListenerType.CONFIG_SET_NAME_LISTENER_NUM;++ic){
+ configsetname_[ic] = new ConfigurationSetNameListenerHolder();
+ }
+ }
+
+}
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListener.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListener.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListener.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListener.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,46 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+import java.util.Observer;
+
+import RTC.PortProfile;
+
+import jp.go.aist.rtm.RTC.util.Properties;
+
+ /**
+ * {@.ja ConfigurationParamListener クラス}
+ * {@.en ConfigurationParamListener class}
+ * <p>
+ * {@.ja 各アクションに対応するユーザーコードが呼ばれる直前のタイミング
+ * でコールされるリスなクラスの基底クラス。
+ * <ul>
+ * <li> ON_UPDATE_CONFIG_SET
+ * <li> ON_REMOVE_CONFIG_SET
+ * <li> ON_ACTIVATE_CONFIG_SET
+ * </ul>}
+ * {@.en
+ * This class is abstract base class for listener classes that
+ * provides callbacks for various events in rtobject.
+ * <ul>
+ * <li> ON_UPDATE_CONFIG_SET
+ * <li> ON_REMOVE_CONFIG_SET
+ * <li> ON_ACTIVATE_CONFIG_SET
+ * </ul>}
+ *
+ */
+
+public abstract class ConfigurationParamListener implements Observer{
+ public void update(Observable o, Object obj) {
+ ConfigurationParamListenerArgument arg = (ConfigurationParamListenerArgument)obj;
+ operator(arg.m_config_set_name,arg.m_config_param_name);
+ }
+ /**
+ * {@.ja 仮想コールバック関数}
+ * {@.en Virtual Callback function}
+ * <p>
+ * {@.ja ConfigurationParamListener のコールバック関数}
+ * {@.en This is a the Callback function for ConfigurationParamListener.}
+ *
+ */
+ public abstract void operator(final String config_set_name,final String config_param_name);
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerArgument.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerArgument.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerArgument.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerArgument.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,26 @@
+package jp.go.aist.rtm.RTC;
+
+import RTC.ReturnCode_t;
+ /**
+ * {@.ja ConfigurationParamListenerArgument クラス}
+ * {@.en ConfigurationParamListenerArgument class}
+ *
+ *
+ */
+public class ConfigurationParamListenerArgument {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ */
+ public ConfigurationParamListenerArgument(final String config_set_name,
+ final String config_param_name){
+ m_config_set_name = config_set_name;
+ m_config_param_name = config_param_name;
+ }
+ public String m_config_set_name;
+ public String m_config_param_name;
+}
+
+
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerHolder.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerHolder.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerHolder.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,23 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+
+ /**
+ * {@.ja ConfigurationParamListener ホルダクラス}
+ * {@.en ConfigurationParamListener holder class}
+ * <p>
+ * {@.ja 複数の ConfigurationParamListener を保持し管理するクラス。}
+ * {@.en This class manages one ore more instances of
+ * ConfigurationParamListener class.}
+ *
+ */
+
+public class ConfigurationParamListenerHolder extends Observable{
+ public void notify(final String config_set_name,final String config_param_name) {
+ super.setChanged();
+ ConfigurationParamListenerArgument arg
+ = new ConfigurationParamListenerArgument(config_set_name,config_param_name);
+ super.notifyObservers(arg);
+ super.clearChanged();
+ }
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerType.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerType.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerType.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationParamListenerType.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,49 @@
+package jp.go.aist.rtm.RTC;
+ /**
+ * {@.ja ConfigurationParamListener のタイプ}
+ * {@.en The types of ConfigurationParamListener}
+ * <p>
+ * {@.ja <ul>
+ * <li> ON_UPDATE_CONFIG_PARAM
+ * <li> CONFIG_PARAM_LISTENER_NUM
+ * </ul>}
+ * {@.en <ul>
+ * <li> ON_UPDATE_CONFIG_PARAM
+ * <li> CONFIG_PARAM_LISTENER_NUM
+ * </ul>}
+ * </p>
+ */
+public class ConfigurationParamListenerType {
+ public static final int ON_UPDATE_CONFIG_PARAM = 0;
+ public static final int CONFIG_PARAM_LISTENER_NUM = 1;
+
+ private static final String[] TypeString = {
+ "ON_UPDATE_CONFIG_PARAM",
+ "CONFIG_PARAM_LISTENER_NUM",
+ };
+
+ /**
+ * {@.ja ConfigurationParamListenerType を文字列に変換}
+ * {@.en Convert ConfigurationParamListenerType into the string.}
+ * <p>
+ * {@.ja ConfigurationParamListenerType を文字列に変換する}
+ * {@.en Convert ConfigurationParamListenerType into the string.}
+ * </p>
+ *
+ * @param type
+ * {@.ja 変換対象 ConfigurationParamListenerType}
+ * {@.en The target ConfigurationParamListenerType for transformation}
+ *
+ * @return
+ * {@.ja 文字列変換結果}
+ * {@.en Trnasformation result of string representation}
+ *
+ */
+ public static String toString(final int type){
+ if (type < CONFIG_PARAM_LISTENER_NUM) {
+ return TypeString[type];
+ }
+ return "";
+ }
+}
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListener.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListener.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListener.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListener.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,46 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+import java.util.Observer;
+
+import RTC.PortProfile;
+
+import jp.go.aist.rtm.RTC.util.Properties;
+
+ /**
+ * {@.ja ConfigurationSetListener クラス}
+ * {@.en ConfigurationSetListener class}
+ * <p>
+ * {@.ja 各アクションに対応するユーザーコードが呼ばれる直前のタイミング
+ * でコールされるリスなクラスの基底クラス。
+ * <ul>
+ * <li> ON_SET_CONFIG_SET
+ * <li> ON_ADD_CONFIG_SET
+ * <li> CONFIG_SET_LISTENER_NUM
+ * </ul>}
+ * {@.en
+ * This class is abstract base class for listener classes that
+ * provides callbacks for various events in rtobject.
+ * <ul>
+ * <li> ON_SET_CONFIG_SET
+ * <li> ON_ADD_CONFIG_SET
+ * <li> CONFIG_SET_LISTENER_NUM
+ * </ul>}
+ *
+ */
+
+public abstract class ConfigurationSetListener implements Observer{
+ public void update(Observable o, Object obj) {
+ Properties arg = (Properties)obj;
+ operator(arg);
+ }
+ /**
+ * {@.ja 仮想コールバック関数}
+ * {@.en Virtual Callback function}
+ * <p>
+ * {@.ja ConfigurationSetListener のコールバック関数}
+ * {@.en This is a the Callback function for ConfigurationSetListener.}
+ *
+ */
+ public abstract void operator(final Properties config_set);
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerHolder.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerHolder.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerHolder.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,22 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+
+import jp.go.aist.rtm.RTC.util.Properties;
+ /**
+ * {@.ja ConfigurationSetListener ホルダクラス}
+ * {@.en ConfigurationSetListener holder class}
+ * <p>
+ * {@.ja 複数の ConfigurationSetListener を保持し管理するクラス。}
+ * {@.en This class manages one ore more instances of
+ * ConfigurationSetListener class.}
+ *
+ */
+
+public class ConfigurationSetListenerHolder extends Observable{
+ public void notify(final Properties config_set) {
+ super.setChanged();
+ super.notifyObservers(config_set);
+ super.clearChanged();
+ }
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerType.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerType.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerType.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetListenerType.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,51 @@
+package jp.go.aist.rtm.RTC;
+ /**
+ * {@.ja ConfigurationSetListener のタイプ}
+ * {@.en The types of ConfigurationSetListener}
+ * <p>
+ * {@.ja <ul>
+ * <li> ON_ADD_CONFIG_SET
+ * <li> CONFIG_SET_LISTENER_NUM
+ * </ul>}
+ * {@.en <ul>
+ * <li> ON_ADD_CONFIG_SET
+ * <li> CONFIG_SET_LISTENER_NUM
+ * </ul>}
+ * </p>
+ */
+public class ConfigurationSetListenerType {
+ public static final int ON_SET_CONFIG_SET = 0;
+ public static final int ON_ADD_CONFIG_SET = 1;
+ public static final int CONFIG_SET_LISTENER_NUM = 2;
+
+ private static final String[] TypeString = {
+ "ON_SET_CONFIG_SET",
+ "ON_ADD_CONFIG_SET",
+ "CONFIG_SET_LISTENER_NUM",
+ };
+
+ /**
+ * {@.ja ConfigurationSetListenerType を文字列に変換}
+ * {@.en Convert ConfigurationSetListenerType into the string.}
+ * <p>
+ * {@.ja ConfigurationSetListenerType を文字列に変換する}
+ * {@.en Convert ConfigurationSetListenerType into the string.}
+ * </p>
+ *
+ * @param type
+ * {@.ja 変換対象 ConfigurationSetListenerType}
+ * {@.en The target ConfigurationSetistenerType for transformation}
+ *
+ * @return
+ * {@.ja 文字列変換結果}
+ * {@.en Trnasformation result of string representation}
+ *
+ */
+ public static String toString(final int type){
+ if (type < CONFIG_SET_LISTENER_NUM) {
+ return TypeString[type];
+ }
+ return "";
+ }
+}
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListener.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListener.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListener.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListener.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,46 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+import java.util.Observer;
+
+import RTC.PortProfile;
+
+import jp.go.aist.rtm.RTC.util.Properties;
+
+ /**
+ * {@.ja ConfigurationSetNameListener クラス}
+ * {@.en ConfigurationSetNameListener class}
+ * <p>
+ * {@.ja 各アクションに対応するユーザーコードが呼ばれる直前のタイミング
+ * でコールされるリスなクラスの基底クラス。
+ * <ul>
+ * <li> ON_UPDATE_CONFIG_SET
+ * <li> ON_REMOVE_CONFIG_SET
+ * <li> ON_ACTIVATE_CONFIG_SET
+ * </ul>}
+ * {@.en
+ * This class is abstract base class for listener classes that
+ * provides callbacks for various events in rtobject.
+ * <ul>
+ * <li> ON_UPDATE_CONFIG_SET
+ * <li> ON_REMOVE_CONFIG_SET
+ * <li> ON_ACTIVATE_CONFIG_SET
+ * </ul>}
+ *
+ */
+
+public abstract class ConfigurationSetNameListener implements Observer{
+ public void update(Observable o, Object obj) {
+ String arg = (String)obj;
+ operator(arg);
+ }
+ /**
+ * {@.ja 仮想コールバック関数}
+ * {@.en Virtual Callback function}
+ * <p>
+ * {@.ja ConfigurationSetNameListener のコールバック関数}
+ * {@.en This is a the Callback function for ConfigurationSetNameListener.}
+ *
+ */
+ public abstract void operator(final String config_set_name);
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerHolder.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerHolder.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerHolder.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,22 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+
+import jp.go.aist.rtm.RTC.util.Properties;
+ /**
+ * {@.ja ConfigurationSetNameListener ホルダクラス}
+ * {@.en ConfigurationSetNameListener holder class}
+ * <p>
+ * {@.ja 複数の ConfigurationSetNameListener を保持し管理するクラス。}
+ * {@.en This class manages one ore more instances of
+ * ConfigurationSetNameListener class.}
+ *
+ */
+
+public class ConfigurationSetNameListenerHolder extends Observable{
+ public void notify(final String config_set_name) {
+ super.setChanged();
+ super.notifyObservers(config_set_name);
+ super.clearChanged();
+ }
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerType.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerType.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerType.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ConfigurationSetNameListenerType.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,57 @@
+package jp.go.aist.rtm.RTC;
+ /**
+ * {@.ja ConfigurationSetNameListener のタイプ}
+ * {@.en The types of ConfigurationSetNameListener}
+ * <p>
+ * {@.ja <ul>
+ * <li> ON_UPDATE_CONFIG_SET config_set 更新時
+ * <li> ON_REMOVE_CONFIG_SET config_set 削除時
+ * <li> ON_ACTIVATE_CONFIG_SET config_set アクティブ時
+ * <li> CONFIG_SET_NAME_LISTENER_NUM
+ * </ul>}
+ * {@.en <ul>
+ * <li> ON_UPDATE_CONFIG_SET At the time of config_set update
+ * <li> ON_REMOVE_CONFIG_SET At the time of config_set removing
+ * <li> ON_ACTIVATE_CONFIG_SET At the time of config_set actively
+ * <li> CONFIG_SET_NAME_LISTENER_NUM
+ * </ul>}
+ * </p>
+ */
+public class ConfigurationSetNameListenerType {
+ public static final int ON_UPDATE_CONFIG_SET = 0;
+ public static final int ON_REMOVE_CONFIG_SET = 1;
+ public static final int ON_ACTIVATE_CONFIG_SET = 2;
+ public static final int CONFIG_SET_NAME_LISTENER_NUM = 3;
+
+ private static final String[] TypeString = {
+ "ON_UPDATE_CONFIG_SET",
+ "ON_REMOVE_CONFIG_SET",
+ "ON_ACTIVATE_CONFIG_SET",
+ "CONFIG_SET_NAME_LISTENER_NUM",
+ };
+
+ /**
+ * {@.ja ConfigurationSetNameListenerType を文字列に変換}
+ * {@.en Convert ConfigurationSetNameListenerType into the string.}
+ * <p>
+ * {@.ja ConfigurationSetNameListenerType を文字列に変換する}
+ * {@.en Convert ConfigurationSetNameListenerType into the string.}
+ * </p>
+ *
+ * @param type
+ * {@.ja 変換対象 ConfigurationSetNameListenerType}
+ * {@.en The target ConfigurationSetNameListenerType for transformation}
+ *
+ * @return
+ * {@.ja 文字列変換結果}
+ * {@.en Trnasformation result of string representation}
+ *
+ */
+ public static String toString(final int type){
+ if (type < CONFIG_SET_NAME_LISTENER_NUM) {
+ return TypeString[type];
+ }
+ return "";
+ }
+}
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/CorbaNaming.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/CorbaNaming.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/CorbaNaming.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -19,27 +19,35 @@
import org.omg.CosNaming.NamingContextPackage.NotEmpty;
import org.omg.CosNaming.NamingContextPackage.NotFound;
-//<+zxc
-import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
-import java.util.Properties;
-//+>
/**
*
- * <p>CORBA Naming Service ヘルパークラスです。
- *
- * このクラスは、NamingContext に対するラッパークラスです。
+ * {@.ja CORBA Naming Service ヘルパークラス.}
+ * {@.en CORBA Naming Service helper class.}
+ * <p>
+ * {@.ja このクラスは、NamingContext に対するラッパークラスです。
* NamingContext が持つオペレーションとほぼ同じ機能の
* オペレーションを提供するとともに、ネームコンポーネント NameComponent
* の代わりに文字列による名前表現を受け付けるオペレーションも提供します。
- *
+ * <br>
* オブジェクトは生成時、あるいは生成直後に CORBA ネームサーバに接続し
* 以後、このネームサーバのルートコンテキストに対して種々のオペレーション
* を処理します。
* 深い階層のネーミングコンテキストの作成やオブジェクトのバインドにおいて、
* 途中のコンテキストが存在しない場合でも、強制的にコンテキストをバインド
- * し目的のコンテキストやオブジェクトのバインドを行うこともできます。</p>
+ * し目的のコンテキストやオブジェクトのバインドを行うこともできます。}
+ *
+ * {@.en This class is a wrapper class of CosNaming::NamingContext.
+ * Almost the same operations which CosNaming::NamingContext has are
+ * provided, and some operation allows string naming representation of
+ * context and object instead of CosNaming::Name.
+ * <br>
+ * The object of the class would connect to a CORBA naming server at
+ * the instantiation or immediately after instantiation.
+ * After that the object invokes operations to the root context of it.
+ * This class realizes forced binding to deep NamingContext, without binding
+ * intermediate NamingContexts explicitly.}
+ *
*/
public class CorbaNaming {
@@ -57,14 +65,6 @@
m_nameServer = "";
m_rootContext = null;
m_blLength = 100;
-//<+zxc
- Manager manager = Manager.instance();
- rtcout = new Logbuf("Manager.CorbaNaming");
- // rtcout.setLevel(manager.getConfig().getProperty("logger.log_level"));
- // rtcout.setDateFormat(manager.getConfig().getProperty("logger.date_format"));
- // rtcout.setLogLock(StringUtil.toBool(manager.getConfig().getProperty("logger.stream_lock"),
- // "enable", "disable", false));
-//+>
}
/**
@@ -87,27 +87,24 @@
m_blLength = 100;
Object obj;
-// m_nameServer = "corbaloc::" + m_nameServer + "/NameService";
- m_nameServer = "corbaloc:iiop:1.2@" + m_nameServer + "/NameService";
+ int pos = m_nameServer.indexOf("iiop:");
+ if(pos==0){
+ m_nameServer = "corbaloc:" + m_nameServer + "/NameService";
+ }
+ else{
+ m_nameServer = "corbaloc::" + m_nameServer + "/NameService";
+ }
+// m_nameServer = "corbaloc:iiop:1.2@" + m_nameServer + "/NameService";
obj = m_varORB.string_to_object(m_nameServer);
m_rootContext = NamingContextExtHelper.narrow(obj);
if (m_rootContext==null) {
throw new Exception("bad_alloc()");
}
-//<+zxc
- Manager manager = Manager.instance();
- rtcout = new Logbuf("Manager.CorbaNaming");
- // rtcout.setLevel(manager.getConfig().getProperty("logger.log_level"));
- // rtcout.setDateFormat(manager.getConfig().getProperty("logger.date_format"));
- // rtcout.setLogLock(StringUtil.toBool(manager.getConfig().getProperty("logger.stream_lock"),
- // "enable", "disable", false));
-rtcout.println(rtcout.TRACE, "CorbaNaming.CorbaNaming(" +name_server +")");//zxc
-//+>
}
/**
- * {@.ja ネーミングサービスの初期化}
+ * {@.ja ネーミングサービスの初期化。}
* {@.en Initialize the Naming Service}
*
* <p>
@@ -122,13 +119,18 @@
* @exception Exception
*/
public void init (final String name_server) throws Exception {
-rtcout.println(rtcout.TRACE, "in CorbaNaming.init(" +name_server +")");//zxc
m_nameServer = name_server;
- m_nameServer = "corbaloc:iiop:1.2@" + m_nameServer + "/NameService";
+ int pos = m_nameServer.indexOf("iiop:");
+ if(pos==0){
+ m_nameServer = "corbaloc:" + m_nameServer + "/NameService";
+ }
+ else{
+ m_nameServer = "corbaloc::" + m_nameServer + "/NameService";
+ }
+// m_nameServer = "corbaloc:iiop:1.2@" + m_nameServer + "/NameService";
Object obj = m_varORB.string_to_object(m_nameServer);
m_rootContext = NamingContextExtHelper.narrow(obj);
if (m_rootContext==null) throw new Exception("bad_alloc()");
-rtcout.println(rtcout.TRACE, "out CorbaNaming.init(" +name_server +")");//zxc
}
public boolean isAlive() {
@@ -144,18 +146,82 @@
}
/**
- * <p>Object を bind します。
+ * {@.ja Object を bind する。}
+ * {@.en Bind object on specified name component position}
+ * <p>
+ * {@.ja CosNaming::bind() とほぼ同等の働きをするが、
+ * 常に与えられたネームサーバの
+ * ルートコンテキストに対してbind()が呼び出される点が異なる。
+ * <br>
+ * Name <name> と Object <obj> を当該 NamingContext 上にバインドする。
+ * c_n が n 番目の NameComponent をあらわすとすると、
+ * name が n 個の NameComponent から成るとき、以下のように扱われる。
+ * <br>
+ * cxt->bind(<c_1, c_2, ... c_n>, obj) は以下の操作と同等である。
+ * cxt->resolve(<c_1, ... c_(n-1)>)->bind(<c_n>, obj)
+ * <br>
+ * すなわち、1番目からn-1番目のコンテキストを解決し、n-1番目のコンテキスト
+ * 上に name <n> として obj を bind する。
+ * 名前解決に参加する <c_1, ... c_(n-1)> の NemingContext は、
+ * bindContext() や rebindContext() で既にバインド済みでなければならない。
+ * もし <c_1, ... c_(n-1)> の NamingContext が存在しない場合には、
+ * NotFound 例外が発生する。
+ * <br>
+ * <c_1, ... c_(n-1)> が存在しない場合にも、
+ * 再帰的にコンテキストをバインドしながら、
+ * 最終的に obj を名前 name <c_n> にバインドする。
+ * <br>
+ * いずれの場合でも、n-1番目のコンテキスト上に name<n> のオブジェクト
+ * (Object あるいは コンテキスト) がバインドされていれば
+ * AlreadyBound 例外が発生する。}
+ * {@.en Almost the same operation as CosNaming::bind(),
+ * but there is a difference
+ * that bind() is invoked for the root context of the given name server.
*
- * 与えられたネームサーバのルートコンテキストに対して
- * Objectを強制的にbindします。</p>
+ * Bind between Name <name> and Object <obj> on this NamingContext.
+ * If c_n indicates the n-th of NameComponent,
+ * when name consists of n pieces of NameComponent, it is handled as
+ * follows.
*
- * @param name オブジェクトに付ける名前の NameComponent
- * @param obj 関連付けられる Object
+ * cxt->bind(<c_1, c_2, ... c_n>, obj) is the same as the following
+ * operation.
+ * cxt->resolve(<c_1, ... c_(n-1)>)->bind(<c_n>, obj)
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
- * @exception AlreadyBound name <c_n> の Object がすでにバインドされている。
+ * In other word, resolve from the first to the (n-1)th context and bind
+ * obj as name<n> on the (n-1)th context.
+ * NemingContext of <c_1, ... c_(n-1)> for resolving name must be already
+ * bound in bindContext() or rebindContext().
+ * If NamingContext of <c_1, ... c_(n-1)> does not exist, NotFound excption
+ * will occur.
+ *
+ * Even if <c_1, ... c_(n-1)> does
+ * not exist, finally obj will be bound to name name <c_n> by binding to
+ * the context recursively.
+ *
+ * Even in any case, if the object of name<n> (Object or context) is bound
+ * on the (n-1)th context, AlreadyBound exception will occur.}
+ * </p>
+ *
+ * @param name
+ * {@.ja オブジェクトに付ける名前の NameComponent}
+ * {@.en NameComponent of name applied to object}
+ * @param obj
+ * {@.ja 関連付けられる Object}
+ * {@.en Object that is associated}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <c_n> の Object がすでにバインドされている。}
+ * {@.en The object of name<c_n> is already bound.}
+ *
*/
public void bind(final NameComponent[] name, Object obj)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
@@ -163,7 +229,7 @@
}
/**
- * {@.ja Object を bind する}
+ * {@.ja Object を bind する。}
* {@.en Bind object on specified name component position}
* <p>
* {@.ja CosNaming::bind() とほぼ同等の働きをするが、
@@ -272,18 +338,38 @@
}
/**
- * <p>文字列表現の Object を強制的に bind します。
+ * {@.ja Object を bind する。}
+ * {@.en Bind object on specified string name position}
*
- * Object を bind する際に与える名前が文字列表現であること以外は、bind()
- * と同じです。bind(toName(string_name), obj) と等価。</p>
+ * <p>
+ * {@.ja Object を bind する際に与える名前が文字列表現であること以外は、
+ * bind() と同じである。bind(toName(string_name), obj) と等価。
+ * 途中のコンテキストも強制的にバインドする。}
+ * {@.en This is the same as bind() except as the given name is string
+ * representation when Object is bound.
+ * bind(toName(string_name),obj) is the same.
+ * The intermediate context is bound forcibly.}
+ * </p>
*
- * @param string_name オブジェクトに付ける名前の文字列表現
- * @param obj 関連付けられるオブジェクト
+ * @param string_name
+ * {@.ja オブジェクトに付ける名前の文字列表現}
+ * {@.en The string representation of name applied to object}
+ * @param obj
+ * {@.ja 関連付けられるオブジェクト}
+ * {@.en Object that is associated}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
- * @exception AlreadyBound string_name の Object がすでにバインドされている。
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <n> の Object がすでにバインドされている。}
+ * {@.en The object of name<c_n> is already bound.}
*
*/
public void bindByString(final String string_name, Object obj)
@@ -292,7 +378,7 @@
}
/**
- * {@.ja Object を bind する}
+ * {@.ja Object を bind する。}
* {@.en Bind object on specified string name position}
*
* <p>
@@ -336,36 +422,8 @@
}
/**
- * <p>途中のコンテキストを bind しながら Object を bind します。
- *
- * context で与えられた NamingContext に対して、name で指定された
- * ネームコンポーネント <c_1, ... c_(n-1)> を NamingContext として
- * 解決しながら、名前 <c_n> に対して obj を bind します。
- * もし、<c_1, ... c_(n-1)> に対応する NamingContext がない場合には
- * 新たな NamingContext をバインドします。
- *
- * 最終的に <c_1, c_2, ..., c_(n-1)> に対応する NamingContext が生成
- * または解決された上で、CosNaming::bind(<c_n>, object) が呼び出されます。
- * このとき、すでにバインディングが存在すれば AlreadyBound例外が発生します。
- *
- * 途中のコンテキストを解決する過程で、解決しようとするコンテキストと
- * 同じ名前の NamingContext ではない Binding が存在する場合、
- * CannotProceed 例外が発生し処理を中止します。</p>
- *
- * @param context bind を開始する NamingContext
- * @param name オブジェクトに付ける名前のネームコンポーネント
- * @param obj 関連付けられるオブジェクト
- *
- * @exception CannotProceed <c_1, ..., c_(n-1)> に対応する NamingContext
- * のうちひとつが、すでに NamingContext 以外の object にバインド
- * されており、処理を継続できない。
- * @exception InvalidName 名前 name が不正
- * @exception AlreadyBound name <c_n> にすでに何らかの object がバインド
- * されている。
- */
- /**
- * {@.ja @brief 途中のコンテキストを再帰的に bind しながら Object を
- * bind する}
+ * {@.ja 途中のコンテキストを再帰的に bind しながら Object を
+ * bind する。}
* {@.en Bind intermediate context recursively and bind object}
*
* <p>
@@ -454,10 +512,38 @@
}
/**
- * <p>Object を強制的に rebind します。</p>
+ * {@.ja Object を強制的に rebind する。}
+ * {@.en Rebind object}
*
- * @param name オブジェクトに付ける名前の NameComponent
- * @param obj 関連付けられるオブジェクト
+ * <p>
+ * {@.ja name で指定された Binding がすでに存在する場合を除いて
+ * bind() と同じである。
+ * バインディングがすでに存在する場合には、新しいバインディングに
+ * 置き換えられる。
+ * 途中のコンテキストも強制的にバインドする。}
+ * {@.en This is the same as bind() except as Binding specified by name
+ * already exists. If the binding already exists, new binding will be
+ * replaced.
+ * The intermediate context is bound forcibly.}
+ * </p>
+ *
+ * @param name
+ * {@.ja オブジェクトに付ける名前の NameComponent}
+ * {@.en NameComponent of name applied to object}
+ * @param obj
+ * {@.ja 関連付けられるオブジェクト}
+ * {@.en Object that is associated}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 名前 name が不正}
+ * {@.en Name 'name' is invalid.}
+ *
*/
public void rebind(final NameComponent[] name, Object obj)
throws SystemException, NotFound, CannotProceed, InvalidName {
@@ -465,7 +551,7 @@
}
/**
- * {@.ja Object を rebind する}
+ * {@.ja Object を rebind する。}
* {@.en Rebind object}
*
* <p>
@@ -504,57 +590,73 @@
public void rebind(final NameComponent[] name,
Object obj, final boolean force)
throws SystemException, NotFound, CannotProceed, InvalidName {
-rtcout.println(rtcout.TRACE, "in CorbaNaming.rebind(" +name +"," +java.lang.Boolean.toString(force) +")");//zxc
try {
if( isNamingContext(obj) ) {
-rtcout.println(rtcout.TRACE, " isNamingContext is true.");//zxc
m_rootContext.rebind(name, NamingContextExtHelper.narrow(obj));
} else {
-rtcout.println(rtcout.TRACE, " isNamingContext is false.");//zxc
m_rootContext.rebind(name, obj);
}
} catch(NotFound ex) {
-rtcout.println(rtcout.TRACE, " !!NotFound ex");//zxc
if( force ) {
rebindRecursive(m_rootContext, name, obj);
} else {
throw ex;
}
} catch (CannotProceed ex) {
-rtcout.println(rtcout.TRACE, " !!CannotProceed ex");//zxc
if( force ) {
rebindRecursive(ex.cxt, ex.rest_of_name, obj);
} else {
throw ex;
}
}
-rtcout.println(rtcout.TRACE, "out CorbaNaming.rebind()");//zxc
}
/**
- * <p>Object を強制的に rebind します。</p>
+ * {@.ja Object を強制的に rebind する。}
+ * {@.en Rebind Object}
*
- * @param string_name オブジェクトに付ける名前の文字列表現
- * @param obj 関連付けられるオブジェクト
+ * <p>
+ * {@.ja Object を rebind する際に与える名前が文字列表現であること以外は
+ * rebind()と同じである。rebind(toName(string_name), obj) と等価。
+ * 途中のコンテキストも強制的にバインドする}
+ * {@.en This is the same as rebind() except as the given name is string
+ * representation when object is rebound. rebind(toName(string_name), obj)
+ * is the same.
+ * The intermediate context is bound forcibly.}
+ * </p>
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
+ * @param string_name
+ * {@.ja オブジェクトに付ける名前の文字列表現}
+ * {@.en NameComponent of name applied to object}
+ * @param obj
+ * {@.ja 関連付けられるオブジェクト}
+ * {@.en Object that is associated}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en Name The argument 'name' is invalid.}
+ *
*/
public void rebindByString(final String string_name, Object obj)
throws SystemException, NotFound, CannotProceed, InvalidName {
rebindByString(string_name, obj, true);
}
/**
- * {@.ja Object を rebind する}
- * {@.en @brief Rebind Object}
+ * {@.ja Object を rebind する。}
+ * {@.en Rebind Object}
*
* <p>
* {@.ja Object を rebind する際に与える名前が文字列表現であること以外は
- * {@.en rebind()と同じである。rebind(toName(string_name), obj) と等価。}
- * This is the same as rebind() except as the given name is string
+ * rebind()と同じである。rebind(toName(string_name), obj) と等価。}
+ * {@.en This is the same as rebind() except as the given name is string
* representation when object is rebound. rebind(toName(string_name), obj)
* is the same.}
* </p>
@@ -585,13 +687,11 @@
public void rebindByString(final String string_name,
Object obj, final boolean force)
throws SystemException, NotFound, CannotProceed, InvalidName {
-rtcout.println(rtcout.TRACE, "in CorbaNaming.rebindByString(" + string_name + ")");//zxc
rebind(toName(string_name), obj, force);
-rtcout.println(rtcout.TRACE, "out CorbaNaming.rebindByString(" + string_name + ")");//zxc
}
/**
- * {@.ja 途中のコンテキストを bind しながら Object を rebind する}
+ * {@.ja 途中のコンテキストを bind しながら Object を rebind する。}
* {@.en Bind intermediate context recursively and rebind object}
*
* <p>
@@ -654,34 +754,73 @@
}
/**
- * <p>NamingContext を強制的に bind します。</p>
+ * {@.ja NamingContext を強制的に bind する。}
+ * {@.en Bind NamingContext}
*
- * @param name オブジェクトに付ける名前のネームコンポーネント
- * @param name_cxt 関連付けられる NamingContext
+ * <p>
+ * {@.ja bind されるオブジェクトが NamingContext であることを除いて bind()
+ * と同じである。途中のコンテキストも強制的にバインドする 。}
+ * {@.en This is the same as bind() except as the bound object is
+ * NamingContext.The intermediate context is bound forcibly.}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
- * @exception AlreadyBound name <n> の Object がすでにバインドされている。
+ * @param name
+ * {@.ja オブジェクトに付ける名前のネームコンポーネント}
+ * {@.en NameComponent of name applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en Object that is associated}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <c_n> の Object がすでにバインドされている。}
+ * {@.en The object of name<c_n> is already bound.}
*/
public void bindContext(final NameComponent[] name, NamingContext name_cxt)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
this.bindContext(name, name_cxt, true);
}
/**
- * <p>NamingContext を bind します。
+ * {@.ja NamingContext を bind する。}
+ * {@.en Bind NamingContext}
*
- * bind されるオブジェクトが NamingContext であることを除いて bind()
- * と同じです。
+ * <p>
+ * {@.ja bind されるオブジェクトが NamingContext であることを除いて bind()
+ * と同じである。}
+ * {@.en This is the same as bind() except as the bound object is
+ * NamingContext.}
*
- * @param name オブジェクトに付ける名前のネームコンポーネント
- * @param name_cxt 関連付けられる NamingContext
- * @param force trueの場合、途中のコンテキストを強制的にバインドする
+ * @param name
+ * {@.ja オブジェクトに付ける名前のネームコンポーネント}
+ * {@.en NameComponent of name applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en Object that is associated}
+ * @param force
+ * {@.ja trueの場合、途中のコンテキストを強制的にバインドする
+ * (デフォルト値:true)}
+ * {@.en If true, the intermediate context is bound forcibly.
+ * (The default value:true)}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
- * @exception AlreadyBound name <n> の Object がすでにバインドされている。
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <c_n> の Object がすでにバインドされている。}
+ * {@.en The object of name<c_n> is already bound.}
*/
public void bindContext(final NameComponent[] name, NamingContext name_cxt, final boolean force)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
@@ -689,34 +828,76 @@
}
/**
- * <p>文字列表現の NamingContext を強制的に bind します。</p>
+ * {@.ja NamingContext を強制的に bind する。}
+ * {@.en Bind NamingContext}
*
- * @param string_name オブジェクトに付ける名前の文字列表現
- * @param name_cxt 関連付けられる NamingContext
+ * <p>
+ * {@.ja bind されるオブジェクトが NamingContext であることを除いて
+ * bindByString() と同じである。途中のコンテキストを強制的にバインドする。}
+ * {@.en This is the same as bindByString() except as the bound object is
+ * NamingContext.The intermediate context is bound forcibly.}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
- * @exception AlreadyBound string_name の Object がすでにバインドされている。
+ * @param string_name
+ * {@.ja オブジェクトに付ける名前の文字列表現}
+ * {@.en String representation of name applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en NamingContext that is associated}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <n> の Object がすでにバインドされている。}
+ * {@.en The object of name<n> is already bound.}
+ *
*/
public void bindContext(final String string_name, NamingContext name_cxt)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
this.bindContext(string_name, name_cxt, true);
}
/**
- * <p>文字列表現の NamingContext を bind します。
+ * {@.ja NamingContext を bind する。}
+ * {@.en Bind NamingContext}
*
- * bind されるオブジェクトが NamingContext であることを除いて bind()
- * と同じです。
+ * <p>
+ * {@.ja bind されるオブジェクトが NamingContext であることを除いて
+ * bindByString() と同じである。途中のコンテキストを強制的にバインドする。}
+ * {@.en This is the same as bindByString() except as the bound object is
+ * NamingContext.The intermediate context is bound forcibly.}
*
- * @param string_name オブジェクトに付ける名前の文字列表現
- * @param name_cxt 関連付けられる NamingContext
- * @param force trueの場合、途中のコンテキストを強制的にバインドする
+ * @param string_name
+ * {@.ja オブジェクトに付ける名前の文字列表現}
+ * {@.en String representation of name applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en NamingContext that is associated}
+ * @param force
+ * {@.ja trueの場合、途中のコンテキストを強制的にバインドする
+ * (デフォルト値:true)}
+ * {@.en If true, the intermediate context is bound forcibly.
+ * (The default value:true)}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
- * @exception AlreadyBound string_name の Object がすでにバインドされている。
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <n> の Object がすでにバインドされている。}
+ * {@.en The object of name<n> is already bound.}
+ *
*/
public void bindContext(final String string_name, NamingContext name_cxt, final boolean force)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
@@ -724,19 +905,24 @@
}
/**
- * <p>NamingContext を 再帰的に bind します。
+ * {@.ja 途中のコンテキストを再帰的に bind し NamingContext を bind する。}
+ * {@.en Bind intermediate context recursively and bind NamingContext}
*
- * bind されるオブジェクトが NamingContext であることを除いて
- * bindRecursive() と同じです。
+ * <p>
+ * {@.ja bind されるオブジェクトが NamingContext であることを除いて
+ * bindRecursive() と同じである。}
+ * {@.en This is the same as bindRecursive() except as the bound object
+ * is NamingContext.}
*
- * @param context bind を開始する NamingContext
- * @param name オブジェクトに付ける名前のネームコンポーネント
- * @param name_cxt 関連付けられる NamingContext
- *
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
- * @exception AlreadyBound name <n> の Object がすでにバインドされている。
+ * @param context
+ * {@.ja bind を開始する NamingContext}
+ * {@.en NamingContext that starts the bind}
+ * @param name
+ * {@.ja オブジェクトに付ける名前のネームコンポーネント}
+ * {@.en NameComponent of name applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en NamingContext that is associated}
*/
public void bindContextRecursive(NamingContext context, final NameComponent[] name, NamingContext name_cxt)
throws CannotProceed, InvalidName, AlreadyBound, NotFound{
@@ -746,14 +932,36 @@
}
/**
- * <p>NamingContext を強制的に rebind します。
+ * {@.ja NamingContext を強制的に rebind する。}
+ * {@.en Rebind NamingContext}
*
- * @param name オブジェクトに付ける名前のネームコンポーネント
- * @param name_cxt 関連付けられる NamingContext
+ * <p>
+ * {@.ja name で指定されたコンテキストがすでに存在する場合を
+ * 除いて bindContext() と同じである。
+ * バインディングがすでに存在する場合には、新しいバインディングに
+ * 置き換えられる。途中のコンテキストも強制的にバインドする。}
+ * {@.en This is the same as bindContext() except as context specified
+ * by name already exists.
+ * If the binding already exists, new binding will be replaced.
+ * The intermediate context is bound forcibly.}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @param name
+ * {@.ja オブジェクトに付ける名前のネームコンポーネント}
+ * {@.en NameComponent applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en Object that is associated}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ *
*/
public void rebindContext(final NameComponent[] name,
NamingContext name_cxt)
@@ -761,20 +969,40 @@
this.rebindContext(name, name_cxt, true);
}
/**
- * <p>NamingContext を rebind します。
+ * {@.ja NamingContext を rebind する。}
+ * {@.en Rebind NamingContext}
*
- * name で指定されたコンテキストがすでに存在する場合を除いて bindContext()
- * と同じです。
+ * <p>
+ * {@.ja name で指定されたコンテキストがすでに存在する場合を
+ * 除いて bindContext() と同じである。
* バインディングがすでに存在する場合には、新しいバインディングに
- * 置き換えられます。
+ * 置き換えられる。}
+ * {@.en This is the same as bindContext() except as context specified
+ * by name already exists.
+ * If the binding already exists, new binding will be replaced.}
*
- * @param name オブジェクトに付ける名前のネームコンポーネント
- * @param name_cxt 関連付けられる NamingContext
- * @param force trueの場合、途中のコンテキストを強制的にバインドする
+ * @param name
+ * {@.ja オブジェクトに付ける名前のネームコンポーネント}
+ * {@.en NameComponent applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en Object that is associated}
+ * @param force
+ * {@.ja trueの場合、途中のコンテキストを強制的にバインドする
+ * (デフォルト値:true)}
+ * {@.en If true, the intermediate context is bound forcibly.
+ * (The default value:true)}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ *
*/
public void rebindContext(final NameComponent[] name,
NamingContext name_cxt, final boolean force)
@@ -785,34 +1013,74 @@
}
/**
- * <p>文字列表現のNamingContext を強制的に rebind します。</p>
+ * {@.ja NamingContext を強制的に rebind する。}
+ * {@.en Rebind NamingContext}
*
- * @param string_name オブジェクトに付ける名前の文字列表現
- * @param name_cxt 関連付けられる NamingContext
+ * <p>
+ * {@.ja name で指定されたコンテキストがすでに存在する場合
+ * を除いて bindContext() と同じである。
+ * バインディングがすでに存在する場合には、新しいバインディングに
+ * 置き換えられる。途中のコンテキストを強制的にバインドする。}
+ * {@.en This is the same as bindContext() except as context specified
+ * by name already exists.
+ * If the binding already exists, new binding will be replaced.
+ * The intermediate context is bound forcibly.}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
+ * @param string_name
+ * {@.ja オブジェクトに付ける名前の文字列表現}
+ * {@.en String representation of name applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en NamingContext that is associated}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public void rebindContext(final String string_name, NamingContext name_cxt)
throws SystemException, NotFound, CannotProceed, InvalidName {
this.rebindContext(string_name, name_cxt, true);
}
/**
- * <p>文字列表現のNamingContext を rebind します。
+ * {@.ja NamingContext を rebind する。}
+ * {@.en Rebind NamingContext}
*
- * name で指定されたコンテキストがすでに存在する場合を除いて bindContext()
- * と同じです。
+ * <p>
+ * {@.ja name で指定されたコンテキストがすでに存在する場合
+ * を除いて bindContext() と同じである。
* バインディングがすでに存在する場合には、新しいバインディングに
- * 置き換えられます。
+ * 置き換えられる。}
+ * {@.en This is the same as bindContext() except as context specified
+ * by name already exists.
+ * If the binding already exists, new binding will be replaced.}
*
- * @param string_name オブジェクトに付ける名前の文字列表現
- * @param name_cxt 関連付けられる NamingContext
- * @param force trueの場合、途中のコンテキストを強制的にバインドする
+ * @param string_name
+ * {@.ja オブジェクトに付ける名前の文字列表現}
+ * {@.en String representation of name applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en NamingContext that is associated}
+ * @param force
+ * {@.ja trueの場合、途中のコンテキストを強制的にバインドする
+ * (デフォルト値:true)}
+ * {@.en If true, the intermediate context is bound forcibly.
+ * (The default value:true)}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public void rebindContext(final String string_name,
NamingContext name_cxt, final boolean force)
@@ -821,15 +1089,25 @@
}
/**
- * <p>途中のコンテキストを再帰的に rebind し NamingContext を rebind します。</p>
- *
- * @param context bind を開始する NamingContext
- * @param name オブジェクトに付ける名前の文字列表現
- * @param name_cxt 関連付けられる NamingContext
+ * {@.ja 途中のコンテキストを再帰的に rebind し NamingContext
+ * を rebind する。}
+ * {@.en Rebind intermediate context recursively and rebind NamingContext}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * <p>
+ * {@.ja bind されるオブジェクトが NamingContext であることを除いて
+ * rebindRecursive() と同じである。}
+ * {@.en This is the same as rebindRecursive() except as the bound object
+ * is NamingContext.}
+ *
+ * @param context
+ * {@.ja bind を開始する NamingContext}
+ * {@.en NamingContext that starts the bind}
+ * @param name
+ * {@.ja オブジェクトに付ける名前の NameComponent}
+ * {@.en NameComponent applied to object}
+ * @param name_cxt
+ * {@.ja 関連付けられる NamingContext}
+ * {@.en NamingContext that is associated}
*/
public void rebindContextRecursive(NamingContext context, final NameComponent[] name, NamingContext name_cxt)
throws CannotProceed, InvalidName, NotFound {
@@ -838,22 +1116,40 @@
}
/**
- * <p>Object を name から解決します。
+ * {@.ja 与えられた NameComponent にバインドされている Object を返す。}
+ * {@.en Return object bound on the specified NameComponent}
*
- * name に bind されているオブジェクト参照を返します。
- * ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決されます。
+ * <p>
+ * {@.ja name に bind されているオブジェクト参照を返す。
+ * ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決される。
*
- * NamingContextOperations.resolve() とほぼ同等の働きをするが、常に与えられた
+ * CosNaming::resolve() とほぼ同等の働きをするが、常に与えられた
* ネームサーバのルートコンテキストに対して resolve() が呼び出される点が
- * 異なります。</p>
+ * 異なる。}
+ * {@.en Return the object reference that is bound to name.
+ * Resolve the name component<c_1, c_2, ... c_n> recursively.
+ *
+ * Almost the same operation as CosNaming::resolve(),
+ * but there is a difference that resolve() is invoked for the root context
+ * of the given name server.}
*
- * @param name 解決すべきオブジェクトの名前のネームコンポーネント
- * @return 解決されたオブジェクト参照
+ * @param name
+ * {@.ja 解決すべきオブジェクトの名前のネームコンポーネント}
+ * {@.en The name component of object name that should be resolved}
*
- * @exception NotFound Objectが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @return
+ * {@.ja 解決されたオブジェクト参照}
+ * {@.en The reference to the resolved object}
*
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public Object resolve(final NameComponent[] name)
throws SystemException, NotFound, CannotProceed, InvalidName {
@@ -861,21 +1157,41 @@
}
/**
- * <p>文字列表現の Object を name から解決します。
+ * {@.ja 与えられた NameComponent にバインドされている Object を返す。}
+ * {@.en Return object bound on the specified name}
*
- * name に bind されているオブジェクト参照を返します。
- * ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決されます。
+ * <p>
+ * {@.ja name に bind されているオブジェクト参照を返す。
+ * ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決される。
*
- * NamingContextOperations.resolve() とほぼ同等の働きをするが、常に与えられた
+ * CosNaming::resolve() とほぼ同等の働きをするが、常に与えられた
* ネームサーバのルートコンテキストに対して resolve() が呼び出される点が
- * 異なります。</p>
+ * 異なる。}
+ * {@.en Return the object reference that is bound to name.
+ * Resolve the name component<c_1, c_2, ... c_n> recursively.
+ *
+ * Almost the same operation as CosNaming::resolve(),
+ * but there is a difference that resolve() is invoked for the root context
+ * of the given name server.}
*
- * @param string_name 解決すべきオブジェクトの名前の文字列表現
- * @return 解決されたオブジェクト参照
+ * @param string_name
+ * {@.ja 解決すべきオブジェクトの名前の文字列表現}
+ * {@.en The string representation of object name that should be resolved}
*
- * @exception NotFound Objectが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
+ * @return
+ * {@.ja 解決されたオブジェクト参照}
+ * {@.en The reference to the resolved object}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ *
*/
public Object resolve(final String string_name)
throws SystemException, NotFound, CannotProceed, InvalidName {
@@ -883,20 +1199,37 @@
}
/**
- * <p>指定された名前のオブジェクトの bind を解除します。
+ * {@.ja 与えられた NameComponent のバインディングを削除する。}
+ * {@.en Unbind a binding specified by NameComponent}
*
- * name に bind されているオブジェクト参照を返します。
- * ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決されます。
+ * <p>
+ * {@.ja name に bind されているオブジェクト参照を返す。
+ * ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決される。
*
- * NamingContextOperations.unbind() とほぼ同等の働きをしますが、常に与えられた
+ * CosNaming::unbind() とほぼ同等の働きをするが、常に与えられた
* ネームサーバのルートコンテキストに対して unbind() が呼び出される点が
- * 異なります。</p>
+ * 異なる。}
+ * {@.en Return the object reference that is bound to name.
+ * Resolve the name component<c_1, c_2, ... c_n> recursively.
+ *
+ * Almost the same operation as CosNaming::unbind(),
+ * but there is a difference that unbind() is invoked for the root context
+ * of the always given name server.}
*
- * @param name 解決すべきオブジェクトの名前のネームコンポーネント
*
- * @exception NotFound 解除対象のオブジェクトが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @param name
+ * {@.ja 削除するオブジェクトのネームコンポーネント}
+ * {@.en The name component of the deleted object}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public void unbind(final NameComponent[] name)
throws SystemException, NotFound, CannotProceed, InvalidName {
@@ -904,20 +1237,37 @@
}
/**
- * <p>文字列表現で指定された名前のオブジェクトの bind を解除します。
+ * {@.ja 与えられた NameComponent のバインディングを削除する。}
+ * {@.en Unbind a binding specified by string representation}
*
- * name に bind されているオブジェクト参照を返します。
- * ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決されます。
+ * <p>
+ * {@.ja name に bind されているオブジェクト参照を返す。
+ * ネームコンポーネント <c_1, c_2, ... c_n> は再帰的に解決される。
*
- * NamingContextOperations.unbind() とほぼ同等の働きをするが、常に与えられた
+ * CosNaming::unbind() とほぼ同等の働きをするが、常に与えられた
* ネームサーバのルートコンテキストに対して unbind() が呼び出される点が
- * 異なります。</p>
+ * 異なる。}
+ * {@.en Return the object reference that is bound to name.
+ * Resolve the name component<c_1, c_2, ... c_n> recursively.
+ *
+ * Almost the same operation as CosNaming::unbind(),
+ * but there is a difference that unbind() is invoked for the root context
+ * of the always given name server.}
*
- * @param string_name 解決すべきオブジェクトの名前の文字列表現
+ * @param string_name
+ * {@.ja 解決すべきオブジェクトの名前の文字列表現}
+ * {@.en The string representation of object name that should be resolved}
*
- * @exception NotFound 解除対象のオブジェクトが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ *
*/
public void unbind(final String string_name)
throws SystemException, NotFound, CannotProceed, InvalidName {
@@ -925,46 +1275,97 @@
}
/**
- * <p>新しいコンテキストを生成します。
+ * {@.ja 新しいコンテキストを生成する。}
+ * {@.en Create new NamingContext.}
+ * <p>
+ * {@.ja 与えられたネームサーバ上で生成された NamingContext を返す。
+ * 返された NamingContext は bind されていない。}
+ * {@.en Return NamingContext that has been created on the given name
+ * server. The returned NamingContext has not bound yet.}
+ *
+ * @return
+ * {@.ja 生成された新しい NamingContext}
+ * {@.en New created NamingContext}
*
- * 与えられたネームサーバ上で生成された NamingContext を返します。
- * 返された NamingContext は bind されていません。</p>
- *
- * @return 生成された新しい NamingContext
*/
public NamingContext newContext() {
return m_rootContext.new_context();
}
/**
- * <p>新しいコンテキストを強制的に bind します。</p>
+ * {@.ja 新しいコンテキストを強制的に bind する。}
+ * {@.en Bind new NamingContext}
*
- * @param name NamingContextに付ける名前のネームコンポーネント
- * @return 生成された新しい NamingContext
+ * <p>
+ * {@.ja 与えられた name に対して新しいコンテキストをバインドする。
+ * 生成された NamingContext はネームサーバ上で生成されたものである。
+ * 途中のコンテキストを強制的にバインドする。}
+ * {@.en Bind new context for the given name.
+ * The created NamingContext is a creation on the name server.
+ * The intermediate context is bound forcibly.}
+ *
+ *
+ * @param name
+ * {@.ja NamingContextに付ける名前のネームコンポーネント}
+ * {@.en name NameComponent applied to NamingContext}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
- * @exception AlreadyBound name <n> の Object がすでにバインドされている。
+ * @return
+ * {@.ja 生成された新しい NamingContext}
+ * {@.en New created NamingContext}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <n> の Object がすでにバインドされている。}
+ * {@.en The object of name<n> is already bound.}
*/
public NamingContext bindNewContext(final NameComponent[] name)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
return this.bindNewContext(name, true);
}
/**
- * <p>新しいコンテキストを bind します。
+ * {@.ja 新しいコンテキストを bind する。}
+ * {@.en Bind new NamingContext}
*
- * 与えられた name に対して新しいコンテキストをバインドします。
- * 生成された NamingContext はネームサーバ上で生成されたものです。</p>
+ * <p>
+ * {@.ja 与えられた name に対して新しいコンテキストをバインドする。
+ * 生成された NamingContext はネームサーバ上で生成されたものである。}
+ * {@.en Bind new context for the given name.
+ * The created NamingContext is a creation on the name server.}
*
- * @param name NamingContextに付ける名前のネームコンポーネント
- * @param force trueの場合、途中のコンテキストを強制的にバインドする
- * @return 生成された新しい NamingContext
+ *
+ * @param name
+ * {@.ja NamingContextに付ける名前のネームコンポーネント}
+ * {@.en name NameComponent applied to NamingContext}
+ * @param force
+ * {@.ja trueの場合、途中のコンテキストを強制的にバインドする
+ * (デフォルト値:true)}
+ * {@.en If true, the intermediate context is bound forcibly.
+ * (The default value:true)}
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
- * @exception AlreadyBound name <n> の Object がすでにバインドされている。
+ * @return
+ * {@.ja 生成された新しい NamingContext}
+ * {@.en New created NamingContext}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <n> の Object がすでにバインドされている。}
+ * {@.en The object of name<n> is already bound.}
*/
public NamingContext bindNewContext(final NameComponent[] name,
boolean force)
@@ -988,37 +1389,79 @@
}
/**
- * <p>新しいコンテキストを強制的に bind します。
+ * {@.ja 新しいコンテキストを強制的に bind する。}
+ * {@.en Bind new NamingContext}
*
- * 与えられた文字列表現の name に対して新しいコンテキストをバインドします。
- * 生成された NamingContext はネームサーバ上で生成されたものです。</p>
+ * <p>
+ * {@.ja 与えられた文字列に対応する新しいコンテキストをバインドする。
+ * 生成された NamingContext はネームサーバ上で生成されたものである。
+ * 途中のコンテキストを強制的にバインドする。}
+ * {@.en Bind new context corresponding to the given string.
+ * The created NamingContext is a creation on the name server.
+ * The intermediate context is bound forcibly.}
*
- * @param string_name NamingContextに付ける名前の文字列表現
- * @return 生成された新しい NamingContext
+ * @param string_name
+ * {@.ja NamingContextに付ける名前の文字列表現}
+ * {@.en The string representation of name applied to
+ * NamingContext}
+ *
+ * @return
+ * {@.ja 生成された新しい NamingContext}
+ * @return New created NamingContext
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
- * @exception AlreadyBound string_name の Object がすでにバインドされている。
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <n> の Object がすでにバインドされている。}
+ * {@.en The object of name<n> is already bound.}
*/
public NamingContext bindNewContext(final String string_name)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
return this.bindNewContext(string_name, true);
}
/**
- * <p>新しいコンテキストを bind します。
+ * {@.ja 新しいコンテキストを bind する。}
+ * {@.en Bind new NamingContext}
*
- * 与えられた文字列表現の name に対して新しいコンテキストをバインドします。
- * 生成された NamingContext はネームサーバ上で生成されたものです。</p>
+ * <p>
+ * {@.ja 与えられた文字列に対応する新しいコンテキストをバインドする。
+ * 生成された NamingContext はネームサーバ上で生成されたものである。}
+ * {@.en Bind new context corresponding to the given string.
+ * The created NamingContext is a creation on the name server.}
*
- * @param string_name NamingContextに付ける名前の文字列表現
- * @param force trueの場合、途中のコンテキストを強制的にバインドする
- * @return 生成された新しい NamingContext
+ * @param string_name
+ * {@.ja NamingContextに付ける名前の文字列表現}
+ * {@.en The string representation of name applied to
+ * NamingContext}
+ * @param force
+ * {@.ja trueの場合、途中のコンテキストを強制的にバインドする
+ * (デフォルト値:true)}
+ * {@.en If true, the intermediate context is bound forcibly.
+ * (The default value:true)}
+ *
+ * @return
+ * {@.ja 生成された新しい NamingContext}
+ * @return New created NamingContext
*
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
- * @exception AlreadyBound string_name の Object がすでにバインドされている。
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <n> の Object がすでにバインドされている。}
+ * {@.en The object of name<n> is already bound.}
*/
public NamingContext bindNewContext(final String string_name, boolean force)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
@@ -1026,14 +1469,25 @@
}
/**
- * <p>NamingContext を非アクティブ化します。
+ * {@.ja NamingContext を非アクティブ化する。}
+ * {@.en Destroy the naming context}
*
- * context で指定された NamingContext を非アクティブ化します。
- * context に他のコンテキストがバインドされている場合は NotEmpty 例外が発生します。</p>
+ * <p>
+ * {@.ja context で指定された NamingContext を非アクティブ化する。
+ * context に他のコンテキストがバインドされている場合は NotEmpty 例外が
+ * 発生する。}
+ * {@.en Destroy the specified naming context.
+ * Any bindings should be <unbind> in which the given context is bound to
+ * some names before invoking <destroy> operation on it. }
*
- * @param context 非アクティブ化する NamingContext
+ * @param context
+ * {@.ja 非アクティブ化する NamingContext}
+ * {@.en NamingContext which is destroied.}
*
- * @exception NotEmpty 対象コンテキストに他のコンテキストがバインドされている
+ * @exception NotEmpty
+ * {@.ja 対象context に他のコンテキストがバインドされている。}
+ * {@.en The target context is bound to the other context.}
+ *
*/
public void destroy(NamingContext context)
throws SystemException, NotEmpty {
@@ -1041,14 +1495,33 @@
}
/**
- * <p>NamingContext を再帰的に下って非アクティブ化します。</p>
- *
- * @param context 非アクティブ化する NamingContext
+ * {@.ja NamingContext を再帰的に下って非アクティブ化する。}
+ * {@.en Destroy the naming context recursively}
*
- * @exception NotEmpty 対象コンテキストに他のコンテキストがバインドされている
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 context の名前が不正。
+ * <p>
+ * {@.ja context で与えられた NamingContext に対して、name で指定された
+ * ネームコンポーネント <c_1, ... c_(n-1)> を NamingContext として
+ * 解決しながら、名前 <c_n> に対して 非アクティブ化を行う。}
+ * {@.en For NamingContext given by Context, Destroy name <c_n> with
+ * solving the name component specified by name
+ * as NamingContext recursively.}
+ *
+ * @param context
+ * {@.ja 非アクティブ化する NamingContext}
+ * {@.en context NamingContext which is Destroied.}
+ *
+ * @exception NotEmpty
+ * {@.ja 対象context に他のコンテキストがバインドされている。}
+ * {@.en The target context is bound to the other context.}
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public void destroyRecursive(NamingContext context)
throws SystemException, NotEmpty, NotFound, CannotProceed, InvalidName {
@@ -1096,12 +1569,25 @@
}
/**
- * <p>すべての Binding を削除します。</p>
+ * {@.ja すべての Binding を削除する。}
+ * {@.en Destroy all bindings}
*
- * @exception NotEmpty 対象コンテキストに他のコンテキストがバインドされている
- * @exception NotFound 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 の名前が不正。
+ * <p>
+ * {@.ja 登録されている全てのBinding を削除する。}
+ * {@.en Destroy all bindings that are registered.}
+ * @exception NotEmpty
+ * {@.ja 対象コンテキストに他のコンテキストがバインドされている}
+ * {@.en The target context is bound to the other context.}
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ *
*/
public void clearAll() throws NotEmpty, NotFound, CannotProceed, InvalidName {
if( m_rootContext!= null ) {
@@ -1110,12 +1596,25 @@
}
/**
- * <p>与えられた NamingContext の Binding を取得します。</p>
+ * {@.ja 与えられた NamingContext の Binding を取得する}
+ * {@.en Get Binding of the given NamingContext}
*
- * @param name_cxt 取得対象の NamingContext
- * @param how_many 取得するBindingの最大数
- * @param bl 取得するBindingのリスト
- * @param bi 取得するBindingのイテレータ
+ * <p>
+ * {@.ja 指定された NamingContext の Binding を取得する。}
+ * {@.en Get Binding of the given NamingContext.}
+ *
+ * @param name_cxt
+ * {@.ja Binding 取得対象 NamingContext}
+ * {@.en NamingContext of the getting target Binding}
+ * @param how_many
+ * {@.ja Binding を取得する階層の深さ}
+ * {@.en The depth to get Binding}
+ * @param bl
+ * {@.ja 取得した Binding を保持するホルダ}
+ * {@.en The holder to hold the got Binding}
+ * @param bi
+ * {@.ja 取得した Binding をたどるためのイテレータ}
+ * {@.en The iterator to detect the got Binding}
*/
public void list(NamingContext name_cxt, long how_many,
BindingListHolder bl, BindingIteratorHolder bi) {
@@ -1123,10 +1622,24 @@
}
/**
- * <p>与えられた NameComponent の文字列表現を返します。</p>
+ * {@.ja 与えられた NameComponent の文字列表現を返す。}
+ * {@.en Get string representation of given NameComponent}
*
- * @param name 取得対象の NameComponent
- * @exception InvalidName 引数 name の名前が不正。
+ * <p>
+ * {@.ja 指定された NameComponent を文字に変換する。}
+ * {@.en Transform specified NameComponent into string representation.}
+ *
+ * @param name
+ * {@.ja 変換対象 NameComponent}
+ * {@.en The target NameComponent for transformation}
+ *
+ * @return
+ * {@.ja 文字列変換結果}
+ * {@.en Trnasformation result of string representation}
+ *
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public String toString(final NameComponent[] name)
throws SystemException, InvalidName {
@@ -1143,12 +1656,24 @@
}
/**
- * <p>与えられた文字列表現を NameComponent に分解します。</p>
+ * {@.ja 与えられた文字列表現を NameComponent に分解する。}
+ * {@.en Resolve given string representation to NameComponent}
*
- * @param sname 分解対象文字列
- * @return 分解した NameComponent
+ * <p>
+ * {@.ja 指定された文字列を NameComponent に変換する。}
+ * {@.en Transform given string representation to NameComponent.}
*
- * @exception InvalidName 引数 sname が不正。
+ * @param sname
+ * {@.ja 変換対象文字列}
+ * {@.en The target string representation to transform}
+ *
+ * @return NameComponent
+ * {@.ja 変換結果}
+ * {@.en NameComponent The result of transformation}
+ *
+ * @exception InvalidName
+ * {@.ja 引数 string_name が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public NameComponent[] toName(final String sname)
throws SystemException, InvalidName {
@@ -1182,13 +1707,30 @@
}
/**
- * <p>与えられた addre と string_name から URL表現を取得します。</p>
+ * {@.ja 与えられた addre と string_name から URL表現を取得する。}
+ * {@.en Get URL representation from given addr and string_name}
*
- * @param addr 取得対象アドレス
- * @param string_name 取得対象名
+ * <p>
+ * {@.ja 指定されたアドレスと名称をURLに変換する。}
+ * {@.en Convert specified addr and string_name into URL}
*
- * @exception InvalidAddress 引数 addr が不正。
- * @exception InvalidName 引数 string_name が不正。
+ * @param addr
+ * {@.ja 変換対象アドレス}
+ * {@.en The target address for conversion}
+ * @param string_name
+ * {@.ja 変換対象名称}
+ * {@.en The target name for conversion}
+ *
+ * @return
+ * {@.ja URL 変換結果}
+ * {@.en URL Conversion result}
+ *
+ * @exception InvalidAddress
+ * {@.ja 引数 addr が不正。}
+ * {@.en The argument 'addr' is invalid.}
+ * @exception InvalidName
+ * {@.ja 引数 string_name が不正。}
+ * {@.en The argument 'string_name' is invalid.}
*/
public String toUrl(String addr, String string_name)
throws SystemException, InvalidAddress, InvalidName {
@@ -1196,14 +1738,33 @@
}
/**
- * <p>与えられた文字列表現を resolve しオブジェクトを返します。</p>
+ * {@.ja 与えられた文字列表現を resolve しオブジェクトを返す。}
+ * {@.en Resolve from name of string representation and get object}
*
- * @param string_name resolve対象文字列
+ * <p>
+ * {@.ja 指定された文字列表現をresolveし,オブジェクトを取得する。}
+ * {@.en Resolve specified string representation and get object}
*
- * @exception NotFound 対象オブジェクトが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 string_name の名前が不正。
- * @exception AlreadyBound string_name の Object がすでにバインドされている。
+ * @param string_name
+ * {@.ja 取得対象オブジェクト文字列表現}
+ * {@.en The string representation of getting target object}
+ *
+ * @return
+ * {@.ja 解決されたオブジェクト}
+ * {@.en The resolved object}
+ *
+ * @exception NotFound
+ * {@.ja 途中の <c_1, c_2, ..., c_(n-1)> が存在しない。}
+ * {@.en There is not <c_1, c_2, ..., c_(n-1)>.}
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
+ * @exception AlreadyBound
+ * {@.ja name <n> の Object がすでにバインドされている。}
+ * {@.en The object of name<n> is already bound.}
*/
public Object resolveStr(final String string_name)
throws SystemException, NotFound, CannotProceed, InvalidName, AlreadyBound {
@@ -1211,15 +1772,43 @@
}
/**
- * <p>名前をバインドまたは解決します。</p>
+ * {@.ja オブジェクトの名前をバインドまたは解決する。}
+ * {@.en Bind or resolve the given name component}
*
- * @param context bind を開始する NamingContext
- * @param name オブジェクトに付ける名前
- * @param obj 関連付けられるオブジェクト
+ * <p>
+ * {@.ja 指定されたコンテキストに対してオブジェクトを NameComponent で
+ * 指定された位置にバインドする。
+ * 同一箇所に既に他の要素がバインド済みの場合は、既存のバインド済み要素を
+ * 取得する。}
+ * {@.en Bind object at the position that specified in NameComponent
+ * for the specified context.
+ * When other elements are already bound at the same position, get the
+ * already bound element.}
*
- * @exception NotFound 対象オブジェクトが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @param context
+ * {@.ja bind もしくは resole 対象コンテキスト}
+ * {@.en The context to bind or resole}
+ * @param name
+ * {@.ja オブジェクトに付ける名前の NameComponent}
+ * {@.en NameComponent applied to object}
+ * @param obj
+ * {@.ja 関連付けられる Object}
+ * {@.en Object that is associated}
+ *
+ * @return
+ * {@.ja NameComponent で指定された位置にバインドされているオブジェクト}
+ * {@.en The object that is bound at position specified with
+ * NameComponent}
+ *
+ * @exception NotFound
+ * {@.ja 対象オブジェクトが存在しない。}
+ * {@.en The object doesn't exist. }
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public NamingContext bindOrResolve(NamingContext context, final NameComponent[] name, Object obj)
throws NotFound, CannotProceed, InvalidName {
@@ -1229,15 +1818,34 @@
}
/**
- * <p>名前をバインドまたは解決します。</p>
+ * {@.ja 名前をバインドまたは解決する。}
+ * {@.en Bind or resolve the given name component}
*
- * @param context bind を開始する NamingContext
- * @param name オブジェクトに付ける名前
- * @param new_context 関連付けられるNamingContext
+ * <p>
+ * {@.en 指定されたコンテキストに対して Contextを NameComponent で
+ * 指定された位置にバインドする。
+ * 同一箇所に既に他の要素がバインド済みの場合は、既存のバインド済み要素を
+ * 取得する。}
+ * {@.en Bind Context at the position that specified in NameComponent
+ * for the specified context.
+ * When other elements are already bound at the same position, get the
+ * already bound element.}
*
- * @exception NotFound 対象オブジェクトが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @param context
+ * {@.ja bind もしくは resole 対象コンテキスト}
+ * {@.en The context to bind or resole}
+ * @param name
+ * {@.ja コンテキストに付ける名前の NameComponent}
+ * {@.en NameComponent applied to object}
+ * @param new_context
+ * {@.ja 関連付けられる Context}
+ * {@.en Context that is associated}
+ *
+ * @return
+ * {@.ja NameComponent で指定された位置にバインドされているContext}
+ * {@.en The Context that is bound at the position specified with
+ * NameComponent}
+ *
*/
public NamingContext bindOrResolveContext(NamingContext context,
final NameComponent[] name, NamingContext new_context)
@@ -1246,14 +1854,31 @@
}
/**
- * <p>名前をバインドまたは解決します。</p>
+ * {@.ja 名前をバインドまたは解決する。}
+ * {@.en Bind or resolve the given name component}
*
- * @param context bind を開始する NamingContext
- * @param name オブジェクトに付ける名前
+ * <p>
+ * {@.ja 指定されたコンテキストに対して NameComponent で指定された位置に
+ * 新規コンテキストをバインドする。
+ * 同一箇所に既に他の要素がバインド済みの場合は、既存のバインド済み要素を
+ * 取得する。}
+ * {@.en Bind new Context at the position that specified in NameComponent
+ * for the specified context.
+ * When other elements are already bound at the same position, get the
+ * already bound element.}
*
- * @exception NotFound 対象オブジェクトが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @param context
+ * {@.ja bind もしくは resole 対象コンテキスト}
+ * {@.en The context to bind or resole}
+ * @param name
+ * {@.ja 新規作成するコンテキストの位置を表す NameComponent}
+ * {@.en NameComponent that indicates the position of new context}
+ *
+ * @return
+ * {@.ja NameComponent で指定された位置にバインドされているContext}
+ * {@.en The Context that is bound at the position specified with
+ * NameComponent}
+ *
*/
public NamingContext bindOrResolveContext(NamingContext context, final NameComponent[] name)
throws NotFound, CannotProceed, InvalidName{
@@ -1263,29 +1888,55 @@
}
/**
- * <p>ネームサーバの名前を取得します。</p>
- *
- * @return ネームサーバ名
+ * {@.ja ネームサーバの名前を取得する。}
+ * {@.en Get the name of name server}
+ *
+ * <p>
+ * {@.ja 設定したネームサーバの名前を取得する。}
+ * {@.en Get the configured name of name server}
+ *
+ * @return
+ * {@.ja ネームサーバの名前}
+ * {@.en The name of name server}
+ *
*/
public final String getNameServer() {
return m_nameServer;
}
/**
- * <p>ルートコンテキストを取得します。</p>
+ * {@.ja ルートコンテキストを取得する。}
+ * {@.en Get the root context}
*
- * @return ルートコンテキスト
+ * <p>
+ * {@.ja 設定したネームサーバのルートコンテキストを取得する。}
+ * {@.en Get the root context of the configured name server}
+ *
+ * @return
+ * {@.ja ネームサーバのルートコンテキスト}
+ * {@.en Root context ot name server}
+ *
*/
public NamingContext getRootContext() {
return m_rootContext;
}
/**
- * <p>オブジェクトがネーミングコンテキストか判別します。</p>
+ * {@.ja オブジェクトがネーミングコンテキストか判別する。}
+ * {@.en Determine whether the object is NamingContext}
*
- * @param obj 判断対象オブジェクト
+ * <p>
+ * {@.ja 指定した要素がネーミングコンテキストか判別する}
+ * {@.en Determine whether the specified element is NamingContext}
*
- * @return 判断結果
+ * @param obj
+ * {@.ja 判別対象要素}
+ * {@.en The target element for determination}
+ *
+ * @return
+ * {@.ja 判別結果(ネーミングコンテキスト:true、それ以外:false)}
+ * {@.en Determination result (NamingContext:true, Else:false)}
+ *
*/
public boolean isNamingContext(Object obj) {
try {
@@ -1299,13 +1950,30 @@
}
/**
- * <p>与えられた名前がネーミングコンテキストかどうか判断します。</p>
+ * {@.ja 与えられた名前がネーミングコンテキストかどうか判断する。}
+ * {@.en Determine whether the given name component is NamingContext}
*
- * @param name 判断対象コンポーネント
+ * <p>
+ * {@.ja NameComponentで指定した要素がネーミングコンテキストか判別する}
+ * {@.en Determine whether the specified element is NameComponent}
*
- * @exception NotFound 対象オブジェクトが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @param name
+ * {@.ja 判別対象NameComponent}
+ * {@.en The target NameComponent for determination}
+ *
+ * @return
+ * {@.ja 判別結果(ネーミングコンテキスト:true、それ以外:false)}
+ * {@.en Determination result (NamingContext:true, Else:false)}
+ *
+ * @exception NotFound
+ * {@.ja 対象オブジェクトが存在しない。}
+ * {@.en The object doesn't exist. }
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public boolean isNamingContext(final NameComponent[] name)
throws NotFound, CannotProceed, InvalidName {
@@ -1313,13 +1981,31 @@
}
/**
- * <p>与えられた名前がネーミングコンテキストかどうか判断します。<p>
+ * {@.ja 与えられた名前がネーミングコンテキストかどうか判断する。}
+ * {@.en Determine whether the given string name is NamingContext}
*
- * @param string_name 判断対象コンポーネント名称
+ * <p>
+ * {@.ja 文字列で指定した要素がネーミングコンテキストか判別する}
+ * {@.en Determine whether the element specified by string name is
+ * NamingContext}
*
- * @exception NotFound 対象オブジェクトが存在しない。
- * @exception CannotProceed 何らかの理由で処理を継続できない。
- * @exception InvalidName 引数 name の名前が不正。
+ * @param string_name
+ * {@.ja 判別対象文字列}
+ * {@.en The string representation for determination}
+ *
+ * @return
+ * {@.ja 判別結果(ネーミングコンテキスト:true、それ以外:false)}
+ * {@.en Determination result (NamingContext:true, Else:false)}
+ *
+ * @exception NotFound
+ * {@.ja 対象オブジェクトが存在しない。}
+ * {@.en The object doesn't exist. }
+ * @exception CannotProceed
+ * {@.ja 何らかの理由で処理を継続できない。}
+ * {@.en Processing cannot be continued for some reasons.}
+ * @exception InvalidName
+ * {@.ja 引数 name の名前が不正。}
+ * {@.en The argument 'name' is invalid.}
*/
public boolean isNamingContext(final String string_name)
throws NotFound, CannotProceed, InvalidName {
@@ -1327,24 +2013,52 @@
}
/**
- * <p>ネームコンポーネントの部分を返します。</p>
+ * {@.ja ネームコンポーネントの部分を返す。}
+ * {@.en Get subset of given name component}
*
- * @param name 対象コンポーネント名称
- * @param begin 判断開始位置
+ * <p>
+ * {@.ja 指定された範囲のネームコンポーネントを取得する。
+ * 最後の要素を除いたネームコンポーネントを返す。}
+ * {@.en Get the name component in specified range.
+ * Return the name component except the last element.}
*
- * @return ネームコンポーネント
+ * @param name
+ * {@.ja 検索対象NameComponent}
+ * {@.en The target NameComponent for search}
+ * @param begin
+ * {@.ja 取得範囲開始位置}
+ * {@.en The beginning position for getting range}
+ *
+ * @return
+ * {@.ja NameComponent 取得結果}
+ * {@.en NameComponent Getting result}
+ *
*/
public NameComponent[] subName(NameComponent[] name, long begin) {
return subName(name, begin, -1);
}
/**
- * <p>ネームコンポーネントの部分を返します。</p>
+ * {@.ja ネームコンポーネントの部分を返す。}
+ * {@.en Get subset of given name component}
*
- * @param name 対象コンポーネント名称
- * @param begin 判断開始位置
- * @param end 判断終了位置
+ * <p>
+ * {@.ja 指定された範囲のネームコンポーネントを取得する。}
+ * {@.en Get the name component in specified range.}
*
- * @return ネームコンポーネント
+ * @param name
+ * {@.ja 検索対象NameComponent}
+ * {@.en The target NameComponent for search}
+ * @param begin
+ * {@.ja 取得範囲開始位置}
+ * {@.en The beginning position for getting range}
+ * @param end
+ * {@.ja 取得範囲終了位置}
+ * {@.en The end position for getting range}
+ *
+ * @return
+ * {@.ja NameComponent 取得結果}
+ * {@.en NameComponent Getting result}
+ *
*/
public NameComponent[] subName(NameComponent[] name, long begin, long end) {
@@ -1366,11 +2080,33 @@
}
/**
- * <p>ネームコンポーネントの文字列表現を取得します。</p>
+ * {@.ja ネームコンポーネントの文字列表現を取得する。}
+ * {@.en Get string representation of name component}
*
- * @param name 対象ネームコンポーネント
- * @param string_name 文字列取得結果
- * @param slen 文字列長さ
+ * <p>
+ * {@.ja 指定した範囲のネームコンポーネントの文字列表現を取得する。
+ * 文字列表現は、NameComponentの構成が{Nc[0], Nc[1], Nc[2]...}の場合、
+ * Nc[0]id.Nc[0].kind/Nc[1]id.Nc[1].kind/Nc[2].id/Nc[2].kind...
+ * という形式で取得できる。
+ * 取得した文字列の長さが指定した長さ以上の場合は、
+ * 指定した長さで切り捨てられる。}
+ * {@.en Get string representation of the name component in specified range.
+ * In string representation, if NameComponent consists of
+ * {Nc[0],Nc[1],Nc[2]...}, the format of
+ * Nc[0]id.Nc[0].kind/Nc[1]id.Nc[1].kind/Nc[2].id/Nc[2].kind...
+ * will be got.
+ * It is rounded by the specified length when the length of the got
+ * string is over the specified length. }
+ *
+ * @param name
+ * {@.ja 取得対象NameComponent}
+ * {@.en The getting target NameComponent}
+ * @param string_name
+ * {@.ja 取得結果文字列}
+ * {@.en The string of getting result}
+ * @param slen
+ * {@.ja 取得対象文字列最大値}
+ * {@.en The maximum length value of getting string}
*/
protected void nameToString(final NameComponent[] name, StringHolder string_name, long slen) {
StringBuffer s = new StringBuffer(string_name.value);
@@ -1397,11 +2133,29 @@
}
/**
- * <p>ネームコンポーネントの文字列表現時の文字長を取得します。</p>
+ * {@.ja ネームコンポーネントの文字列表現時の文字長を取得する。}
+ * {@.en Get string length of the name component's string representation}
*
- * @param name 対象ネームコンポーネント
+ * <p>
+ * {@.ja 指定したネームコンポーネントを文字列で表現した場合の長さを
+ * 取得する。
+ * 文字列表現は、NameComponentの構成が{Nc[0],Nc[1],Nc[2]...}の場合、
+ * Nc[0]id.Nc[0].kind/Nc[1]id.Nc[1].kind/Nc[2].id/Nc[2].kind...
+ * という形式で取得できる。}
+ * {@.en Get string length of the name component's string representation.
+ * In string representation, if NameComponent consists of
+ * {Nc[0],Nc[1],Nc[2]・・・}, the format of
+ * Nc[0]id.Nc[0].kind/Nc[1]id.Nc[1].kind/Nc[2].id/Nc[2].kind・・・
+ * will be got.}
*
- * @return 文字長
+ * @param name
+ * {@.ja 取得対象NameComponent}
+ * {@.en The getting target NameComponent}
+ *
+ * @return
+ * {@.ja 指定したネームコンポーネントの文字列長さ}
+ * {@.en The string length value of specified component}
+ *
*/
protected int getNameLength(final NameComponent[] name) {
int slen = 0;
@@ -1431,15 +2185,18 @@
}
/**
- * ORB
+ * {@.ja ORB。}
+ * {@.en ORB}
*/
protected ORB m_varORB;
/**
- * ネームサーバ名称
+ * {@.ja ネームサーバ名称。}
+ * {@.en Name of the name server}
*/
protected String m_nameServer = new String();
/**
- * ルートコンテキスト
+ * {@.ja 指定したネームサーバのルートコンテキスト。}
+ * {@.en The root context of specified name server}
*/
protected NamingContextExt m_rootContext;
/**
@@ -1448,11 +2205,5 @@
private int m_blLength;
-//<+zxc
- /**
- * <p>Logging用フォーマットオブジェクト</p>
- */
- protected Logbuf rtcout;
-//+>
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DataFlowComponentBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DataFlowComponentBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DataFlowComponentBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -5,15 +5,24 @@
import OpenRTM.DataFlowComponentHelper;
/**
- * <p>データフローコンポーネントのベースクラスです。
- * データフローコンポーネントを実装する際には、本クラスのサブクラスとして実装します。</p>
+ * {@.ja データフローコンポーネントのベースクラスです。}
+ * {@.en This is a base class of the data flow type RT-Component.}
+ * <p>
+ * {@.ja データフロー型RTComponentの基底クラス。
+ * データフローコンポーネントを実装する際には、
+ * 本クラスのサブクラスとして実装します。}
+ * {@.en Inherit this class when implementing various data flow
+ * type RT-Components.}
*/
public class DataFlowComponentBase extends RTObject_impl {
/**
- * <p>コンストラクタです。</p>
- *
- * @param manager マネージャオブジェクト
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param manager
+ * {@.ja マネージャオブジェクト}
+ * {@.en Manager object}
*/
public DataFlowComponentBase(Manager manager) {
@@ -23,9 +32,10 @@
}
/**
- * <p>当該オブジェクトのCORBAオブジェクト参照を取得します。</p>
+ * {@.ja 当該オブジェクトのCORBAオブジェクト参照を取得します。}
*
- * @return 当該オブジェクトのCORBAオブジェクト参照
+ * @return
+ * {@.ja 当該オブジェクトのCORBAオブジェクト参照}
*/
public DataFlowComponent _this() {
@@ -41,7 +51,15 @@
}
/**
- * <p>初期化を行います。</p>
+ * {@.ja 初期化。}
+ * {@.en Initialization}
+ *
+ * <p>
+ * {@.ja データフロー型 RTComponent の初期化を実行する。
+ * 実際の初期化処理は、各具象クラス内に記述する。}
+ * {@.en Initialization the data flow type RT-Component.
+ * Write the actual initialization code in each concrete class.}
+ *
*/
public void init(){
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DefaultConfiguration.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DefaultConfiguration.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DefaultConfiguration.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,12 +3,14 @@
import jp.go.aist.rtm.Version;
/**
- * <p>Managerのデフォルトコンフィグレーションを定義するインタフェースです。</p>
+ * {@.ja Managerのデフォルトコンフィグレーションを定義するインタフェース}
+ * {@.en Default configuration for Manager}
*/
interface DefaultConfiguration {
/**
- * <p>Managerのデフォルトコンフィグレーションを取得します。</p>
+ * {@.ja Managerのデフォルトコンフィグレーションを定義}
+ * {@.en The default configurations of Manager are defined.}
*/
public static final String[] default_config = {
@@ -27,7 +29,7 @@
"logger.enable", "YES",
"logger.file_name", "./rtc%p.log",
"logger.date_format", "%b %d %H:%M:%S",
- "logger.log_level", "PARANOID",
+ "logger.log_level", "INFO",
"logger.stream_lock", "NO",
"logger.master_logger", "",
"module.conf_path", "",
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DefaultNumberingPolicy.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DefaultNumberingPolicy.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/DefaultNumberingPolicy.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,24 +3,43 @@
import java.util.Vector;
/**
-* <p>オブジェクト生成時のデフォルト・ナンバーリング・ポリシー(命名規則)管理クラスです。</p>
-*/
+ * {@.ja オブジェクト生成時ネーミング・ポリシー(命名規則)管理用クラス}
+ * {@.en Class for naming policy management when creating objects}
+ *
+ * <p>
+ * {@.ja オブジェクトを生成する際のネーミング・ポリシー(命名規則)を
+ * 管理するためのクラス。}
+ * {@.en This is a class to manage the naming policy when creating objects.}
+ */
class DefaultNumberingPolicy implements NumberingPolicy {
- /**
- * <p>デフォルト・コンストラクタです。</p>
- */
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ */
public DefaultNumberingPolicy() {
m_num = 0;
}
- /**
- * <p>オブジェクト生成時に対象オブジェクトの名称を決定します。</p>
- *
- * @param obj 命名対象オブジェクト
- *
- * @return オブジェクト名
- */
+ /**
+ * {@.ja オブジェクト生成時の名称作成。}
+ * {@.en Create the name when creating object}
+ *
+ * <p>
+ * {@.ja オブジェクト生成時の名称を生成する。
+ * 生成済みインスタンスの数に応じた名称を生成する。}
+ * {@.en Create the name when creating object.
+ * Create the name corresponding to the number of generated instances.}
+ *
+ * @param obj
+ * {@.ja 名称生成対象オブジェクト}
+ * {@.en The target object for the name creation}
+ *
+ * @return
+ * {@.ja 生成したオブジェクト名称}
+ * {@.en Names of the created object}
+ *
+ */
public String onCreate(RTObject_impl obj) {
long pos;
@@ -36,11 +55,20 @@
}
}
- /**
- * <p>削除対象のオブジェクト名を解除します。</p>
- *
- * @param obj 削除対象オブジェクト
- */
+ /**
+ * {@.ja オブジェクト削除時の名称解放。}
+ * {@.en Delete the name when deleting object}
+ *
+ * <p>
+ * {@.ja オブジェクト削除時に名称を解放する。
+ * オブジェクト削除時に生成済みインスタンス数を減算する。}
+ * {@.en Delete the name when deleting object.
+ * Substract the generated number of instances when deleting the object.}
+ *
+ * @param obj
+ * {@.ja 名称解放対象オブジェクト}
+ * {@.en The target object for the name delete}
+ */
public void onDelete(RTObject_impl obj) {
long pos = 0;
try {
@@ -62,8 +90,29 @@
*
* @return オブジェクト・インデックス
*
- * @exception Exception 検索対象オブジェクトが存在しない。
*/
+ /**
+ * {@.ja オブジェクトの検索}
+ * {@.en Find the object}
+ *
+ * <p>
+ * {@.ja オブジェクトリストから指定されたオブジェクトを検索し、
+ * 該当するオブジェクトが格納されている場合にはインデックスを返す。}
+ * {@.en Find the specified object in the object list and return its index
+ * when it is stored.}
+ *
+ * @param obj
+ * {@.ja 検索対象オブジェクト}
+ * {@.en The target object for the find}
+ *
+ * @return
+ * {@.ja オブジェクト格納インデックス}
+ * {@.en Object index for storage}
+ *
+ * @exception Exception
+ * {@.ja 検索対象オブジェクトが存在しない。}
+ * {@.en The object doesn't exist.}
+ */
protected long find(Object obj) throws Exception {
for(int intIdx=0;intIdx<m_objects.size();++intIdx) {
if(m_objects.elementAt(intIdx) == obj) return intIdx;
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListener.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListener.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListener.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListener.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,43 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+import java.util.Observer;
+
+import java.lang.Integer;
+
+ /**
+ * {@.ja ExecutionContextActionListener クラス}
+ * {@.en ExecutionContextActionListener class}
+ * <p>
+ * {@.ja 各アクションに対応するユーザーコードが呼ばれる直前のタイミング
+ * でコールされるリスなクラスの基底クラス。
+ * <ul>
+ * <li> ADD_PORT:
+ * <li> REMOVE_PORT:
+ * </ul>}
+ * {@.en
+ * This class is abstract base class for listener classes that
+ * provides callbacks for various events in rtobject.
+ * <ul>
+ * <li> ADD_PORT:
+ * <li> REMOVE_PORT:
+ * </ul>}
+ *
+ */
+
+
+public abstract class ExecutionContextActionListener implements Observer{
+ public void update(Observable o, Object obj) {
+ Integer arg = (Integer)obj;
+ operator(arg.intValue());
+ }
+ /**
+ * {@.ja 仮想コールバック関数}
+ * {@.en Virtual Callback function}
+ * <p>
+ * {@.ja ExecutionContextActionListener のコールバック関数}
+ * {@.en This is a the Callback function for ExecutionContextActionListener.}
+ *
+ */
+ public abstract void operator(final int ec_id);
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerHolder.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerHolder.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerHolder.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,23 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+
+import java.lang.Integer;
+ /**
+ * {@.ja ExecutionContextActionListener ホルダクラス}
+ * {@.en ExecutionContextActionListener holder class}
+ * <p>
+ * {@.ja 複数の ExecutionContextActionListener を保持し管理するクラス。}
+ * {@.en This class manages one ore more instances of
+ * ExecutionContextActionListener class.}
+ *
+ */
+
+public class ExecutionContextActionListenerHolder extends Observable{
+ public void notify(final int ec_id) {
+ super.setChanged();
+ Integer arg = new Integer(ec_id);
+ super.notifyObservers(arg);
+ super.clearChanged();
+ }
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerType.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerType.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerType.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ExecutionContextActionListenerType.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,56 @@
+package jp.go.aist.rtm.RTC;
+
+ /**
+ * {@.ja ExecutionContextActionListener のタイプ}
+ * {@.en The types of ExecutionContextActionListener}
+ * <p>
+ * {@.ja
+ * <ul>
+ * <li> ADD_PORT: ExecutionContext 追加時
+ * <li> REMOVE_PORT: ExecutionContext 削除時
+ * </ul>}
+ * {@.en
+ * <ul>
+ * <li> ADD_PORT: At the time of ExecutionContext addition
+ * <li> REMOVE_PORT: At the time of ExecutionContext deletion
+ * </ul>}
+ *
+ *
+ */
+public class ExecutionContextActionListenerType {
+ public static final int ATTACH_EC = 0;
+ public static final int DETACH_EC = 1;
+ public static final int EC_ACTION_LISTENER_NUM = 2;
+
+ private static final String[] TypeString = {
+ "ATTACH_EC",
+ "DETACH_ECT",
+ "EC_ACTION_LISTENER_NUM"
+ };
+
+ /**
+ * {@.ja ExecutionContextActionListenerType を文字列に変換}
+ * {@.en Convert ExecutionContextActionListenerType into the string.}
+ * <p>
+ * {@.ja ExecutionContextActionListenerType を文字列に変換する}
+ * {@.en Convert ExecutionContextActionListenerType into the string.}
+ * </p>
+ *
+ * @param type
+ * {@.ja 変換対象 ExecutionContextActionListenerType}
+ * {@.en The target ExecutionContextActionListenerType for transformation}
+ *
+ * @return
+ * {@.ja 文字列変換結果}
+ * {@.en Trnasformation result of string representation}
+ *
+ */
+ public static String toString(final int type){
+ if (type < EC_ACTION_LISTENER_NUM) {
+ return TypeString[type];
+ }
+ return "";
+ }
+}
+
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,14 +3,18 @@
import jp.go.aist.rtm.RTC.util.Properties;
/**
- * <p>コンポーネントファクトリのベースクラスです。</p>
+ * {@.ja コンポーネントファクトリのベースクラスです。}
+ * {@.en This is a base class for RT-Component factory.}
*/
public abstract class FactoryBase {
/**
- * <p>コンストラクタです。</p>
- *
- * @param profile コンポーネントのプロファイル
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param profile
+ * {@.ja コンポーネントのプロファイル}
+ * {@.en Component profile}
*/
public FactoryBase(final Properties profile) {
m_Profile = new Properties(profile);
@@ -18,44 +22,77 @@
}
/**
- * <p>コンポーネントを生成します。</p>
- *
- * @param mgr Managerオブジェクト
- * @return 生成されたコンポーネントのオブジェクト
+ * {@.ja コンポーネントの生成}
+ * {@.en Create components}
+ *
+ * <p>
+ * {@.ja RT-Component のインスタンスを生成するための純粋仮想関数。}
+ * {@.en Pure virtual function to create RT-Component's instances}
+ *
+ * @param mgr
+ * {@.ja マネージャオブジェクト}
+ * {@.en Manager object}
+ *
+ * @return
+ * {@.ja 生成したコンポーネント}
+ * {@.en Created RT-Components}
*/
public abstract RTObject_impl create(Manager mgr);
/**
- * <p>コンポーネントを破棄します。</p>
- *
- * @param comp 破棄対象コンポーネントのインスタンス
+ * {@.ja コンポーネントの破棄}
+ * {@.en Destroy components}
+ *
+ * <p>
+ * {@.ja RT-Component のインスタンスを破棄するための純粋仮想関数。}
+ * {@.en Pure virtual function to destroy RT-Component's instances}
+ *
+ * @param comp
+ * {@.ja 破棄対象 RTコンポーネント}
+ * {@.en The target RT-Component for destruction}
*/
public abstract RTObject_impl destroy(RTObject_impl comp);
/**
- * <p>コンポーネントのプロファイルを取得します。</p>
- *
- * @return コンポーネントのプロファイル
+ * {@.ja コンポーネントプロファイルの取得}
+ * {@.en Get the component profile}
+ *
+ * <p>
+ * {@.ja コンポーネントのプロファイルを取得する}
+ * {@.en Get the component profile.}
+ *
+ * @return
+ * {@.ja コンポーネントのプロファイル}
+ * {@.en The component profile}
*/
public Properties profile() {
return m_Profile;
}
/**
- * <p>コンポーネントの現在のインスタンス数を取得します。</p>
- *
- * @return 現在のインスタンス数
+ * {@.ja 現在のインスタンス数の取得}
+ * {@.en Get the number of current instances}
+ *
+ * <p>
+ * {@.ja コンポーネントの現在のインスタンス数を取得する。}
+ * {@.en Get the number of current RT-Component's instances.}
+ *
+ * @return
+ * {@.ja コンポーネントのインスタンス数}
+ * {@.en Number of RT-Component's instances}
*/
public int number() {
return m_Number;
}
/**
- * <p>コンポーネントプロファイル</p>
+ * {@.ja コンポーネントのプロファイル}
+ * {@.en Component profile}
*/
protected Properties m_Profile = new Properties();
/**
- * <p>コンポーネントの現在のインスタンス数</p>
+ * {@.ja コンポーネントの現在のインスタンス数}
+ * {@.en Number of current RT-Component's instances.}
*/
protected int m_Number;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryGlobal.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryGlobal.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryGlobal.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,20 @@
package jp.go.aist.rtm.RTC;
+import java.util.Hashtable;
+import java.util.HashMap;
import java.util.Iterator;
-import java.util.HashMap;
import java.util.Set;
-import jp.go.aist.rtm.RTC.ObjectCreator;
-import jp.go.aist.rtm.RTC.ObjectDestructor;
-import jp.go.aist.rtm.RTC.util.Properties;
/**
- * <p>Java用コンポーネントファクトリの実装です。</p>
+ * {@.ja ファクトリ管理クラス}
+ * {@.en Factory Management class}
*/
public class FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
/**
- * <p> FactoryGlobal constructor </p>
+ * {@.ja コンストラクタ}
+ * {@.en FactoryGlobal constructor}
*/
protected FactoryGlobal() {
m_New = null;
@@ -59,9 +59,12 @@
*/
/**
- * <p> instance </p>
+ * {@.ja FactoryGlobalをインスタス化する。}
+ * {@.en Creates FactoryGlobal.}
*
- * @return FactoryGlobal object
+ * @return
+ * {@.ja FactoryGlobal オブジェクト}
+ * {@.en FactoryGlobal object}
*/
public static FactoryGlobal instance() {
if (factory_global == null) {
@@ -80,6 +83,32 @@
}
/**
+ * {@.ja FactoryGlobalをインスタス化する。}
+ * {@.en Creates FactoryGlobal.}
+ * @param clazz
+ * {@.ja class name}
+ * {@.en class name}
+ * @return
+ * {@.ja オブジェクト}
+ * {@.en object}
+ */
+ public static Object instance(String clazz) {
+ Object obj = (Object)factory_table.get(clazz);
+ if(obj != null){
+ return obj;
+ }
+ else {
+ try{
+ Object obj2 = (Object)(Class.forName(clazz).newInstance());
+ factory_table.put(clazz,obj2);
+ return obj2;
+ }
+ catch(Exception e){
+ return null;
+ }
+ }
+ }
+ /**
* <p>コンポーネントを生成します。</p>
*
* @param mgr Managerオブジェクト
@@ -124,15 +153,19 @@
*/
/**
- * <p>コンポーネント生成用インタフェース</p>
+ * {@.ja コンポーネント生成インタフェース格納用変数}
+ * {@.en Interface for component creation variable}
*/
protected RtcNewFunc m_New;
/**
- * <p>コンポーネント破棄用インタフェース</p>
+ * {@.ja コンポーネント破棄インタフェース格納用変数}
+ * {@.en Interface for component destruction variable}
*/
protected RtcDeleteFunc m_Delete;
/**
- * <p>コンポーネント生成時のナンバーリング・ポリシ(命名ポリシー)管理用クラス</p>
+ * {@.ja コンポーネント生成時のナンバーリング・ポリシ(命名ポリシー)管理用
+ * クラス}
+ * {@.en Class for numbering policy (naming policy) management.}
*/
protected NumberingPolicy m_policy;
/**
@@ -144,35 +177,48 @@
*/
private static FactoryGlobal factory_global;
/**
- * <p> Map of FactoryEntry </p>
+ * {@.ja FactoryEntry のマップ}
+ * {@.en Map of FactoryEntry}
*/
protected HashMap<IDENTIFIER, FactoryEntry> m_creators = new HashMap<IDENTIFIER, FactoryEntry>();
/**
- * <p> hasFactory </p>
+ * {@.ja Identifierがマップに存在するかチェックする。}
+ * {@.en Checks whether Identifier exists in the map.}
*
* @param id
+ * {@.ja Identifier}
+ * {@.en Identifier}
* @return boolean
+ * {@.ja 指定のIDを保持してる場合に true}
*/
public boolean hasFactory(final IDENTIFIER id) {
return m_creators.containsKey(id);
}
/**
- * <p> getIdentifiers </p>
+ * {@.ja マップの Identifiers を返す}
+ * {@.en Returns Identifiers of the map.}
*
- * @return Set<IDENTIFIER>
+ * @return
+ * {@.ja Identifiers}
+ * {@.en Identifiers}
*/
public Set<IDENTIFIER> getIdentifiers()
{
return m_creators.keySet();
}
/**
- * <p> addFactory </p>
+ * {@.ja Factory をマップへ登録する。}
+ * {@.en Resters Factory to the map.}
*
- * @param id
- * @param creator creation function
- * @param destructor destruction function
- * @return The return code of ReturnCode type.
+ * @param id
+ * {@.en Identifier}
+ * @param creator
+ * {@.en creation function}
+ * @param destructor
+ * {@.en destruction function}
+ * @return
+ * {@.en The return code of ReturnCode type.}
*/
public ReturnCode addFactory(final IDENTIFIER id,
ObjectCreator creator,
@@ -186,10 +232,16 @@
return ReturnCode.FACTORY_OK;
}
/**
- * <p> removeFactory </p>
+ * {@.ja マップからFactoryを削除する。}
+ * {@.en Removes Factory from the map.}
*
* @param id
- * @return The return code of ReturnCode type.
+ * {@.ja 削除するIdentifier}
+ * {@.en Identifier}
+ * @return
+ * {@.ja リターンコード}
+ * {@.en The return code of ReturnCode type.}
+ *
*/
public ReturnCode removeFactory(final IDENTIFIER id)
{
@@ -200,10 +252,20 @@
return ReturnCode.FACTORY_OK;
}
/**
- * <p> createObject </p>
+ * {@.ja オブジェクト生成。}
+ * {@.en Object generation processing}
*
- * @param id
- * @return Created object.
+ * <p>
+ * {@.ja Identifierで指定されたFactoryでObjectを生成する。}
+ * {@.en This method creates the object with factory specified
+ * with identifier.}
+ *
+ * @param id
+ * {@.ja 生成するオブジェクトのIdentifier}
+ * {@.en Identifier of created object}
+ * @return
+ * {@.ja 生成したオブジェクト}
+ * {@.en Created object.}
*/
public ABSTRACTCLASS createObject(final IDENTIFIER id)
{
@@ -213,10 +275,19 @@
return m_creators.get(id).creator_.creator_();
}
/**
- * <p> deleteObject </p>
+ * {@.ja オブジェクト削除。}
+ * {@.en Deletes the object.}
*
+ * <p>
+ * {@.ja Identifierで指定されたFactoryでObjectを削除する。}
+ * {@.en This method deletes the object with factory specified
+ * with identifier.}
* @param id
+ * {@.ja 削除するオブジェクトのIdentifier}
+ * {@.en Identifier of deleted object}
* @param obj
+ * {@.ja 削除するオブジェクト}
+ * {@.en Deleteed object.}
*
*/
public void deleteObject(final IDENTIFIER id, ABSTRACTCLASS obj) {
@@ -226,9 +297,16 @@
m_creators.get(id).destructor_.destructor_(obj);
}
/**
- * <p> deleteObject </p>
+ * {@.ja オブジェクト削除。}
+ * {@.en Deletes the object.}
*
- * @param obj
+ * {@.ja 指定したObjectを削除する。}
+ * {@.en This method deletes specified Object.}
+ * with identifier.}
+ *
+ * @param obj
+ * {@.ja 削除するオブジェクト}
+ * {@.en Deleteed object.}
*/
public void deleteObject(ABSTRACTCLASS obj) {
Iterator it = m_creators.keySet().iterator();
@@ -238,20 +316,48 @@
}
}
- class FactoryEntry
- {
- public FactoryEntry()
- {
- }
- public FactoryEntry(ObjectCreator creator, ObjectDestructor destructor)
- {
+ /**
+ * {@.ja 生成/削除インターフェース管理用クラス}
+ * {@.en Class for creation/destruction interface management}
+ */
+ class FactoryEntry {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ */
+ public FactoryEntry() {
+ }
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * @param creator
+ * {@.ja 生成インターフェース}
+ * {@.en Creation interface}
+ * @param destructor
+ * {@.ja 削除インターフェース}
+ * {@.en Destruction interface}
+ */
+ public FactoryEntry(ObjectCreator creator,
+ ObjectDestructor destructor) {
creator_ = creator;
destructor_ = destructor;
- }
- public ObjectCreator<ABSTRACTCLASS> creator_;
- public ObjectDestructor destructor_;
+ }
+ /**
+ * {@.ja 生成インターフェース保存用変数}
+ * {@.en Creation interface variable}
+ */
+ public ObjectCreator<ABSTRACTCLASS> creator_;
+ /**
+ * {@.ja 削除インターフェース保存用変数}
+ * {@.en Destruction interface variable}
+ */
+ public ObjectDestructor destructor_;
};
- public enum ReturnCode
+ /**
+ * {@.ja リターンコード}
+ * {@.en Return code}
+ */
+ public enum ReturnCode
{
FACTORY_OK,
FACTORY_ERROR,
@@ -261,5 +367,7 @@
UNKNOWN_ERROR
};
+ private static Hashtable factory_table = new Hashtable();
+
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryInit.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryInit.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryInit.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,35 +1,47 @@
-package jp.go.aist.rtm.RTC;
-
-import jp.go.aist.rtm.RTC.buffer.CdrRingBuffer;
-import jp.go.aist.rtm.RTC.PeriodicTask;
-import jp.go.aist.rtm.RTC.port.publisher.PublisherFlush;
-import jp.go.aist.rtm.RTC.port.publisher.PublisherNew;
-import jp.go.aist.rtm.RTC.port.publisher.PublisherPeriodic;
-import jp.go.aist.rtm.RTC.port.InPortCorbaCdrProvider;
-import jp.go.aist.rtm.RTC.port.InPortCorbaCdrConsumer;
-import jp.go.aist.rtm.RTC.port.OutPortCorbaCdrProvider;
-import jp.go.aist.rtm.RTC.port.OutPortCorbaCdrConsumer;
-
-public class FactoryInit {
- public FactoryInit() {
- }
-
- public static void init() {
- // Buffers
- CdrRingBuffer.CdrRingBufferInit();
-
- // Threads
- PeriodicTask.PeriodicTaskInit();
-
- // Publishers
- PublisherFlush.PublisherFlushInit();
- PublisherNew.PublisherNewInit();
- PublisherPeriodic.PublisherPeriodicInit();
-
- // Providers/Consumer
- InPortCorbaCdrProvider.InPortCorbaCdrProviderInit();
- InPortCorbaCdrConsumer.InPortCorbaCdrConsumerInit();
- OutPortCorbaCdrConsumer.OutPortCorbaCdrConsumerInit();
- OutPortCorbaCdrProvider.OutPortCorbaCdrProviderInit();
- }
-}
\ No newline at end of file
+package jp.go.aist.rtm.RTC;
+
+import jp.go.aist.rtm.RTC.buffer.CdrRingBuffer;
+import jp.go.aist.rtm.RTC.PeriodicTask;
+import jp.go.aist.rtm.RTC.port.publisher.PublisherFlush;
+import jp.go.aist.rtm.RTC.port.publisher.PublisherNew;
+import jp.go.aist.rtm.RTC.port.publisher.PublisherPeriodic;
+import jp.go.aist.rtm.RTC.port.InPortCorbaCdrProvider;
+import jp.go.aist.rtm.RTC.port.InPortCorbaCdrConsumer;
+import jp.go.aist.rtm.RTC.port.OutPortCorbaCdrProvider;
+import jp.go.aist.rtm.RTC.port.OutPortCorbaCdrConsumer;
+
+/**
+ * {@.ja Factory初期処理用クラス}
+ * {@.en Class for Factory initial processing}
+ */
+public class FactoryInit {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ */
+ public FactoryInit() {
+ }
+
+ /**
+ * {@.ja Factory初期化処理}
+ * {@.en Factory initialization}
+ */
+ public static void init() {
+ // Buffers
+ CdrRingBuffer.CdrRingBufferInit();
+
+ // Threads
+ PeriodicTask.PeriodicTaskInit();
+
+ // Publishers
+ PublisherFlush.PublisherFlushInit();
+ PublisherNew.PublisherNewInit();
+ PublisherPeriodic.PublisherPeriodicInit();
+
+ // Providers/Consumer
+ InPortCorbaCdrProvider.InPortCorbaCdrProviderInit();
+ InPortCorbaCdrConsumer.InPortCorbaCdrConsumerInit();
+ OutPortCorbaCdrConsumer.OutPortCorbaCdrConsumerInit();
+ OutPortCorbaCdrProvider.OutPortCorbaCdrProviderInit();
+ }
+}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryJava.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryJava.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/FactoryJava.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,18 +3,30 @@
import jp.go.aist.rtm.RTC.util.Properties;
/**
- * <p>Java用コンポーネントファクトリの実装です。</p>
+ * {@.ja Java用コンポーネントファクトリの実装。}
+ * {@.en This class is implementation of the component factory for Java.}
*/
class FactoryJava extends FactoryBase {
/**
- * <p>コンストラクタです。
- * 指定されたプロファイル、生成用メソッドおよび破棄メソッドを引数に取り、
- * コンポーネントの生成、破棄を管理します。</p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ *
+ * <p>
+ * {@.ja 指定されたプロファイル、生成用メソッドおよび破棄メソッドを
+ * 引数に取り、コンポーネントの生成、破棄を管理する。}
+ * {@.en Manages generation and the annulment of the component by
+ * the specified parameter.}
*
- * @param profile コンポーネントのプロファイル
- * @param newFunc コンポーネント生成用メソッド
- * @param deleteFunc コンポーネント破棄用メソッド
+ * @param profile
+ * {@.ja コンポーネントのプロファイル}
+ * {@.en Profile of component}
+ * @param newFunc
+ * {@.ja コンポーネント生成用メソッド}
+ * {@.en Method for component creation}
+ * @param deleteFunc
+ * {@.ja コンポーネント破棄用メソッド}
+ * {@.en Method for component destruction}
*/
public FactoryJava(final Properties profile, RtcNewFunc newFunc,
RtcDeleteFunc deleteFunc) {
@@ -22,15 +34,28 @@
}
/**
- * <p>コンストラクタです。
- * 指定されたプロファイル、生成用メソッド、破棄メソッドおよび
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ *
+ * <p>
+ * {@.ja 指定されたプロファイル、生成用メソッド、破棄メソッドおよび
* 生成したインスタンスのナンバーリング・ポリシ(命名ポリシー)を引数に取り、
- * コンポーネントの生成、破棄を管理します。</p>
+ * {@.en Manages generation and the annulment of the component by
+ * the specified parameter.}
+ * コンポーネントの生成、破棄を管理する。}
*
- * @param profile コンポーネントのプロファイル
- * @param newFunc コンポーネント生成用メソッド
- * @param deleteFunc コンポーネント破棄用メソッド
- * @param policy 生成したインスタンスのナンバーリング・ポリシ(命名ポリシー)
+ * @param profile
+ * {@.ja コンポーネントのプロファイル}
+ * {@.en Profile of component}
+ * @param newFunc
+ * {@.ja コンポーネント生成用メソッド}
+ * {@.en Method for component creation}
+ * @param deleteFunc
+ * {@.ja コンポーネント破棄用メソッド}
+ * {@.en Method for component destruction}
+ * @param policy
+ * {@.ja 生成したインスタンスのナンバーリング・ポリシ(命名ポリシー)}
+ * {@.en Numbering policy(naming policy) of created instance }
*/
public FactoryJava(final Properties profile, RtcNewFunc newFunc,
RtcDeleteFunc deleteFunc, NumberingPolicy policy) {
@@ -41,10 +66,15 @@
}
/**
- * <p>コンポーネントを生成します。</p>
+ * {@.ja コンポーネントを生成。}
+ * {@.en Creates the component}
*
- * @param mgr Managerオブジェクト
- * @return 生成されたコンポーネントのインスタンス
+ * @param mgr
+ * {@.ja Managerオブジェクト}
+ * {@.en Manager object}
+ * @return
+ * {@.ja 生成されたコンポーネントのインスタンス}
+ * {@.en Instance of created component}
*/
public RTObject_impl create(Manager mgr) {
try {
@@ -70,9 +100,12 @@
}
/**
- * <p>コンポーネントを破棄します。</p>
+ * {@.ja コンポーネントを破棄する。}
+ * {@.en Destroys the component}
*
- * @param comp 破棄対象コンポーネントのインスタンス
+ * @param comp
+ * {@.ja 破棄対象コンポーネントのインスタンス}
+ * {@.en Instance of component for destruction}
*/
public RTObject_impl destroy(RTObject_impl comp) {
--m_Number;
@@ -82,15 +115,21 @@
}
/**
- * <p>コンポーネント生成用インタフェース</p>
+ * {@.ja コンポーネント生成用インタフェース}
+ * {@.en Interface of created component}
+ *
*/
protected RtcNewFunc m_New;
/**
- * <p>コンポーネント破棄用インタフェース</p>
+ * {@.ja コンポーネント破棄用インタフェース}
+ * {@.en Interface of component for destruction}
*/
protected RtcDeleteFunc m_Delete;
/**
- * <p>コンポーネント生成時のナンバーリング・ポリシ(命名ポリシー)管理用クラス</p>
+ * {@.ja コンポーネント生成時のナンバーリング・ポリシ(命名ポリシー)
+ * 管理用クラス}
+ * {@.en Class for numbering policy (naming policy) management
+ * when component is generated}
*/
protected NumberingPolicy m_policy;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InPortConsumerFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InPortConsumerFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InPortConsumerFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,29 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>InPortConsumer用ファクトリの実装です。</p>
+ * {@.ja InPortConsumer用ファクトリの実装}
+ * {@.en Implement of factory for InPortConsumer}
*/
public class InPortConsumerFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*/
private InPortConsumerFactory() {
}
/**
- * <p> instance </p>
+ * {@.ja インスタンス生成。}
+ * {@.en Create instance}
*
- * @return InPortConsumerFactory object
+ * <p>
+ * {@.ja インスタンスを生成する。}
+ *
+ * @return
+ * {@.ja インスタンス}
+ * {@.en InPortConsumerFactory object}
+ *
*/
public static InPortConsumerFactory instance() {
if (factory_global == null) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InPortProviderFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InPortProviderFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InPortProviderFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,21 +1,30 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>InPortProvider用ファクトリの実装です。</p>
+ * {@.ja InPortProvider用ファクトリの実装}
+ * {@.en Implement of factory for InPortProvider}
*/
public class InPortProviderFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*/
private InPortProviderFactory() {
}
/**
- * <p> instance </p>
+ * {@.ja インスタンス生成。}
+ * {@.en Create instance}
*
- * @return InPortProviderFactory object
+ * <p>
+ * {@.ja インスタンスを生成する。}
+ *
+ * @return
+ * {@.ja インスタンス}
+ * {@.en InPortProviderFactory object}
+ *
*/
public static InPortProviderFactory instance() {
if (factory_global == null) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InterceptorInitializer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InterceptorInitializer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/InterceptorInitializer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,49 +1,54 @@
package jp.go.aist.rtm.RTC;
-import org.omg.PortableInterceptor.ORBInitInfo;
-import org.omg.PortableInterceptor.ORBInitializer;
-import org.omg.IOP.TAG_INTERNET_IOP;
-import org.omg.IOP.TAG_ALTERNATE_IIOP_ADDRESS;
-import org.omg.IOP.TAG_ORB_TYPE;
-import org.omg.IOP.TaggedProfile;
-import org.omg.IOP.TaggedComponent;
-import org.omg.IOP.IORHolder;
-import org.omg.IOP.IORHelper;
-import org.omg.CORBA.portable.OutputStream;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import org.omg.CORBA.LocalObject;
-import org.omg.PortableInterceptor.IORInterceptor;
import org.omg.IOP.Codec;
+import org.omg.PortableInterceptor.ORBInitInfo;
+import org.omg.PortableInterceptor.ORBInitializer;
-import jp.go.aist.rtm.RTC.IopIorInterceptor;
-
-import jp.go.aist.rtm.RTC.log.Logbuf;
-
+ /**
+ * {@.ja インタセプタの登録と ORB の初期化をするクラス。}
+ * {@.en Class that registration and ORB of Interceptor initialize.}
+ *
+ */
public class InterceptorInitializer
extends LocalObject
implements ORBInitializer
{
+ private static final long serialVersionUID = 5227697632011675642L;
+
/**
- * {@.ja コンストラクタ. }
- * {@.en Constructor. }
+ * {@.ja コンストラクタ.}
+ * {@.en Constructor.}
*/
public InterceptorInitializer() {
rtcout = new Logbuf("InterceptorInitializer");
}
+ /**
+ * {@.ja IorInterceptorを初期化する。}
+ * {@.en Iinitializes IorInterceptor.}
+ * @param info
+ * {@.ja インタセプタを登録するための初期化属性とオペレーションを
+ * 提供するORBInitInfo}
+ * {@.en rovides initialization attributes and
+ * operations by which Interceptors can be registered.}
+ */
public void pre_init(ORBInitInfo info) {
// do nothing
}
/**
- * {@.ja IorInterceptorを初期化します。}
+ * {@.ja IorInterceptorを初期化する。}
* {@.en Iinitializes IorInterceptor.}
* @param info
- * {@.ja インタセプタを登録するための初期化属性とオペレーションを提供する}
+ * {@.ja インタセプタを登録するための初期化属性とオペレーションを
+ * 提供する}
* {@.en rovides initialization attributes and
* operations by which Interceptors can be registered.}
*/
public void post_init(ORBInitInfo info) {
- rtcout.println(rtcout.TRACE, "post_init");
+ rtcout.println(Logbuf.TRACE, "post_init");
try {
org.omg.IOP.Encoding encoding
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/IopIorInterceptor.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/IopIorInterceptor.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/IopIorInterceptor.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,22 +1,18 @@
package jp.go.aist.rtm.RTC;
-import org.omg.CORBA.ORB;
-import org.omg.CORBA.LocalObject;
-import org.omg.CORBA.Any;
-import org.omg.CORBA.LocalObject;
-import org.omg.PortableServer.POA;
-import org.omg.PortableInterceptor.IORInterceptor;
-import org.omg.IOP.TAG_INTERNET_IOP;
-import org.omg.IOP.TAG_ALTERNATE_IIOP_ADDRESS;
-import org.omg.IOP.TaggedComponent;
-import org.omg.IOP.Codec;
-
import java.util.ArrayList;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.IiopAddressComp;
import jp.go.aist.rtm.RTC.util.IiopAddressCompHelper;
-import jp.go.aist.rtm.RTC.log.Logbuf;
+import org.omg.CORBA.Any;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.ORB;
+import org.omg.IOP.Codec;
+import org.omg.IOP.TAG_INTERNET_IOP;
+import org.omg.IOP.TaggedComponent;
+import org.omg.PortableInterceptor.IORInterceptor;
/**
@@ -27,7 +23,8 @@
public class IopIorInterceptor extends LocalObject
implements org.omg.PortableInterceptor.IORInterceptor{
-
+ private static final long serialVersionUID = 7953662324638701357L;
+
/**
* {@.ja Codec}
* {@.en Codec}
@@ -41,8 +38,8 @@
= new ArrayList<IiopAddressComp>();
/**
- * {@.ja エンドポイントを設定. }
- * {@.en Sets the end points. }
+ * {@.ja エンドポイントを設定.}
+ * {@.en Sets the end points.}
* @param endpoints
* {@.ja エンドポイント}
* {@.en endpoints}
@@ -53,8 +50,8 @@
}
/**
- * {@.ja エンドポイントを設定. }
- * {@.en Sets the end points. }
+ * {@.ja エンドポイントを設定.}
+ * {@.en Sets the end points.}
* @param hostString
* {@.ja ホスト}
* {@.en host}
@@ -76,8 +73,8 @@
}
/**
- * {@.ja エンドポイントを書き換える. }
- * {@.en Replaces the end point the end point. }
+ * {@.ja エンドポイントを書き換える.}
+ * {@.en Replaces the end point the end point.}
* <p>
* {@.ja エンドポイントリスト内のポート番号が 0 のエンドポイントを
* 与えられたポート番号に置き換える。}
@@ -126,10 +123,23 @@
this.codec = codec;
}
+ /**
+ * {@.ja インターセプタ名を返す}
+ * {@.en Returns the name of the interceptor.}
+ * @return
+ * {@.ja インターセプタ名}
+ * {@.en the name of the interceptor.}
+ *
+ */
public String name() {
return IORInterceptor.class.getName();
}
+ /**
+ * {@.ja インターセプタの破棄}
+ * {@.en Destroys he interceptor.}
+ *
+ */
public void destroy() {
}
@@ -141,7 +151,7 @@
* {@.en IORInfo}
*/
public void establish_components(org.omg.PortableInterceptor.IORInfo info){
- rtcout.println(rtcout.TRACE, "establish_components()");
+ rtcout.println(Logbuf.TRACE, "establish_components()");
//Gets any type.
ORB orb = ORB.init();
@@ -158,7 +168,7 @@
by = codec.encode_value(any);
}
catch (Exception ex){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Invalid Type For Encoding:" +lp.HostID+","+lp.Port);
continue;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/Manager.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/Manager.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/Manager.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -7,8 +7,6 @@
import java.io.FileWriter;
import java.io.IOException;
import java.util.Vector;
-import java.util.Set;
-import java.util.Iterator;
import java.util.logging.FileHandler;
import java.util.logging.ConsoleHandler;
@@ -16,20 +14,18 @@
import jp.go.aist.rtm.RTC.executionContext.ECFactoryJava;
import jp.go.aist.rtm.RTC.executionContext.ExecutionContextBase;
import jp.go.aist.rtm.RTC.executionContext.ExtTrigExecutionContext;
-import jp.go.aist.rtm.RTC.executionContext.PeriodicExecutionContext;
import jp.go.aist.rtm.RTC.executionContext.OpenHRPExecutionContext;
import jp.go.aist.rtm.RTC.executionContext.PeriodicECSharedComposite;
-import jp.go.aist.rtm.RTC.FactoryInit;
+import jp.go.aist.rtm.RTC.executionContext.PeriodicExecutionContext;
import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.CallbackFunction;
+import jp.go.aist.rtm.RTC.util.IiopAddressComp;
import jp.go.aist.rtm.RTC.util.ORBUtil;
import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.RTCUtil;
import jp.go.aist.rtm.RTC.util.StringUtil;
import jp.go.aist.rtm.RTC.util.TimeValue;
import jp.go.aist.rtm.RTC.util.Timer;
import jp.go.aist.rtm.RTC.util.equalFunctor;
-import jp.go.aist.rtm.RTC.util.IiopAddressComp;
-import jp.go.aist.rtm.RTC.util.CallbackFunction;
import org.omg.CORBA.ORB;
import org.omg.CORBA.Object;
@@ -37,26 +33,25 @@
import org.omg.PortableServer.POA;
import org.omg.PortableServer.POAHelper;
import org.omg.PortableServer.POAManager;
-import org.omg.PortableServer.POAPackage.ObjectNotActive;
-import org.omg.PortableServer.POAPackage.ServantAlreadyActive;
-import org.omg.PortableServer.POAPackage.WrongPolicy;
-import org.omg.IOP.TAG_INTERNET_IOP;
-
-import RTC.RTObject;
import RTC.ReturnCode_t;
/**
- * {@.ja 各コンポーネントの管理を行うクラスです.}
+ * {@.ja 各コンポーネントの管理を行うクラス.}
* {@.en This is a manager class that manages various information
* such as components.}
*
+ * <p>
+ * {@.ja コンポーネントなど各種の情報管理を行うマネージャクラス。}
*/
public class Manager {
/**
- * <p>コンストラクタです。</p>
- *
- * Protected コンストラクタ
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ *
+ * <p>
+ * {@.ja Protected コンストラクタ}
+ * {@.en Protected Constructor}
*
*/
protected Manager() {
@@ -68,9 +63,16 @@
}
/**
- * <p>コピーコンストラクタです。</p>
- *
- * @param rhs コピー元のManagerオブジェクト
+ * {@.ja コピーコンストラクタ。}
+ * {@.en Copy Constructor}
+ *
+ * <p>
+ * {@.ja Protected コピーコンストラクタ}
+ * {@.en Protected Copy Constructor}
+ *
+ * @param rhs
+ * {@.ja コピー元のManagerオブジェクト}
+ * {@.en Manager object of copy source}
*/
public Manager(final Manager rhs) {
@@ -81,12 +83,49 @@
}
/**
- * <p>初期化を行います。Managerを使用する場合には、必ず本メソッドを呼ぶ必要があります。<br />
- * コマンドライン引数を与えて初期化を行います。Managerオブジェクトを取得する方法としては、
- * init(), instance()の2メソッドがありますが、初期化はinit()でのみ行われるため、
- * Managerオブジェクトの生存期間の最初にinit()メソッドを呼び出す必要があります。</p>
+ * {@.ja マネージャの初期化。}
+ * {@.en Initialize manager}
+ *
+ * <p>
+ * {@.ja マネージャを初期化する static メンバ関数。
+ * マネージャをコマンドライン引数を与えて初期化する。
+ * マネージャを使用する場合は、必ずこの初期化メンバ関数 init() を
+ * 呼ばなければならない。
+ * マネージャのインスタンスを取得する方法として、init(), instance() の
+ * 2つの static メンバ関数が用意されているが、初期化はinit()でしか
+ * 行われないため、Manager の生存期間の一番最初にはinit()を呼ぶ必要がある。
+ *
+ * ※マネージャの初期化処理<ul>
+ * <li> initManager: 引数処理、configファイルの読み込み、サブシステム初期化
+ * <li> initLogger: Logger初期化
+ * <li> initORB: ORB 初期化
+ * <li> initNaming: NamingService 初期化
+ * <li> initExecutionContext: ExecutionContext factory 初期化
+ * <li> initTimer: Timer 初期化</li></ul>}
+ * {@.en This is the static member function to initialize the Manager.
+ * The Manager is initialized by given commandline arguments.
+ * To use the manager, this initialization member function init() must be
+ * called. The manager has two static functions to get the instance such as
+ * init() and instance(). Since initializing process is only performed by
+ * the init() function, the init() has to be called at the beginning of
+ * the lifecycle of the Manager.
+ *
+ * *Initialization of manager<ul>
+ * <li> initManager: Argument processing, reading config file,
+ * initialization of subsystem
+ * <li> initLogger: Initialization of Logger
+ * <li> initORB: Initialization of ORB
+ * <li> initNaming: Initialization of NamingService
+ * <li> initExecutionContext: Initialization of ExecutionContext factory
+ * <li> initTimer: Initialization of Timer</li></ul>}
+ *
+ * @param argv
+ * {@.ja コマンドライン引数の配列}
+ * {@.en The array of the command line arguments.}
*
- * @param argv コマンドライン引数の配列
+ * @return
+ * {@.ja Manager の唯一のインスタンスの参照}
+ * {@.en Reference of the unique instance of Manager}
*/
public static Manager init(String[] argv) {
@@ -116,10 +155,22 @@
}
/**
- * <p>Managerオブジェクトを取得します。</p>
- *
- * @return Managerオブジェクト
- */
+ * {@.ja マネージャのインスタンスの取得。}
+ * {@.en Get instance of the manager}
+ *
+ * <p>
+ * {@.ja マネージャのインスタンスを取得する static メンバ関数。
+ * この関数を呼ぶ前に、必ずこの初期化メンバ関数 init() が呼ばれている
+ * 必要がある。}
+ * {@.en This is the static member function to get the instance
+ * of the Manager.
+ * Before calling this function, ensure that the initialization function
+ * "init()" is called.}
+ *
+ * @return
+ * {@.ja Manager の唯一のインスタンスの参照}
+ * {@.en The only instance reference of the manager}
+ */
public static Manager instance() {
if (manager == null) {
@@ -147,7 +198,13 @@
}
/**
- * <p>Managerの終了処理を行います。</p>
+ * {@.ja マネージャ終了処理。}
+ * {@.en Terminate manager}
+ *
+ * <p>
+ * {@.ja マネージャの終了処理を実行する。}
+ * {@.en Terminate manager's processing}
+ *
*/
public void terminate() {
@@ -157,12 +214,18 @@
}
/**
- * <p>Managerオブジェクトを終了します。
- * ORBの終了後,同期を取って終了します。</p>
+ * {@.ja マネージャ・シャットダウン}
+ * {@.en Shutdown Manager}
+ *
+ * <p>
+ * {@.ja マネージャの終了処理を実行する。
+ * ORB終了後、同期を取って終了する。}
+ * {@.en Terminate manager's processing.
+ * After terminating ORB, shutdown manager in sync.}
*/
public void shutdown() {
- rtcout.println(rtcout.TRACE, "Manager.shutdown()");
+ rtcout.println(Logbuf.TRACE, "Manager.shutdown()");
shutdownComponents();
shutdownNaming();
@@ -175,8 +238,8 @@
m_runner.wait();
} catch (InterruptedException e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught InterruptedException in Manager.shutdown().");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught InterruptedException in Manager.shutdown().");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
e.printStackTrace();
}
} else {
@@ -187,11 +250,16 @@
}
/**
- * <p>Manager終了処理の待ち合わせを行います。</p>
+ * {@.ja マネージャ終了処理の待ち合わせ。}
+ * {@.en Wait for Manager's termination}
+ *
+ * <p>
+ * {@.ja 同期を取るため、マネージャ終了処理の待ち合わせを行う。}
+ * {@.en Wait for Manager's termination to synchronize.}
*/
public void join() {
- rtcout.println(rtcout.TRACE, "Manager.join()");
+ rtcout.println(Logbuf.TRACE, "Manager.join()");
synchronized (Integer.valueOf(m_terminate_waiting)) {
++m_terminate_waiting;
@@ -208,50 +276,70 @@
Thread.sleep(100);
} catch (InterruptedException e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught InterruptedException in Manager.join().");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught InterruptedException in Manager.join().");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
e.printStackTrace();
}
}
}
/**
- * <p>マネージャのコンフィギュレーションを取得します。</p>
+ * {@.ja マネージャコンフィギュレーションの取得。}
+ * {@.en Get the manager configuration}
*
- * @return マネージャコンフィギュレーション
- */
+ * <p>
+ * {@.ja マネージャに設定したコンフィギュレーションを取得する。}
+ * {@.en Get the manager configuration that has been set to manager.}
+ *
+ * @return
+ * {@.ja マネージャのコンフィギュレーション}
+ * {@.en Manager's configuration}
+ *
+ */
public Properties getConfig() {
return m_config;
}
/**
- * <p>初期化プロシジャコールバックインタフェースを設定します。
- * マネージャが初期化されてアクティブ化された後に、
- * 設定されたコールバックインタフェースが呼び出されます。</p>
- *
- * @param initProc コールバックインタフェース
+ * {@.ja 初期化プロシージャのセット。}
+ * {@.en Set initial procedure}
+ *
+ * <p>
+ * {@.ja このオペレーションはユーザが行うモジュール等の初期化プロシージャ
+ * を設定する。ここで設定されたプロシージャは、マネージャが初期化され、
+ * アクティブ化された後、適切なタイミングで実行される。}
+ * {@.en This operation sets the initial procedure call to process module
+ * initialization, other user defined initialization and so on.
+ * The given procedure will be called at the proper timing after the
+ * manager initialization, activation and run.}
+ *
+ * @param initProc
+ * {@.ja コールバックインタフェース}
+ * {@.en Callback interface}
+ *
*/
public void setModuleInitProc(ModuleInitProc initProc) {
m_initProc = initProc;
}
/**
- * {@.ja Managerのアクティブ化}
+ * {@.ja Managerのアクティブ化。}
* {@.en Activate the Manager}
* <p>
* {@.ja 初期化後に runManager() 呼び出しに先立ってこのメソッドを
* 呼び出す必要があります。
- * このオペレーションは以下の処理を行う
- * - CORBA POAManager のアクティブ化
- * - マネージャCORBAオブジェクトのアクティブ化
- * - Manager のオブジェクト参照の登録
- *
+ * このオペレーションは以下の処理を行う<ul>
+ * <li> CORBA POAManager のアクティブ化
+ * <li> マネージャCORBAオブジェクトのアクティブ化
+ * <li> Manager のオブジェクト参照の登録
+ * </ul>
* このオペレーションは、マネージャの初期化後、runManager()
* の前に呼ぶ必要がある。}
* {@.en This operation do the following:
- * - Activate CORBA POAManager
- * - Activate Manager CORBA object
- * - Bind object reference of the Manager to the nameserver
+ * <li> Activate CORBA POAManager
+ * <li> Activate Manager CORBA object
+ * <li> Bind object reference of the Manager to the nameserver
+ * </ul>
*
* This operation should be invoked after Manager:init(),
* and before runManager().}
@@ -265,20 +353,20 @@
*/
public boolean activateManager() {
- rtcout.println(rtcout.TRACE, "Manager.activateManager()");
+ rtcout.println(Logbuf.TRACE, "Manager.activateManager()");
try {
if(this.getPOAManager() == null) {
- rtcout.println(rtcout.ERROR, "Could not get POA manager.");
+ rtcout.println(Logbuf.ERROR, "Could not get POA manager.");
return false;
}
this.getPOAManager().activate();
- rtcout.println(rtcout.TRACE, "POA Manager activated.");
+ rtcout.println(Logbuf.TRACE, "POA Manager activated.");
} catch (Exception e) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Exception: Caught unknown Exception in Manager.activateManager().");
- rtcout.println(rtcout.DEBUG, "POA Manager activation failed.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "POA Manager activation failed.");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
return false;
}
@@ -296,8 +384,13 @@
}
/**
- * <p> preloadComponent </p>
+ * {@.ja コンポーネントをロードする。}
+ * {@.en Loads components.}
*
+ * <p>
+ * {@.ja このメソッドは、"manager.modules.preload"に設定されている
+ * コンポーネントをロードする。}
+ * {@.en This method loads components set to "Manager.modules.preload".}
*/
private void preloadComponent() {
String[] mods
@@ -312,18 +405,24 @@
m_module.load(mods[i], "registerModule");
} catch (IllegalArgumentException e) {
e.printStackTrace();
- rtcout.println(rtcout.ERROR, "Module load error: " + mods[i]);
+ rtcout.println(Logbuf.ERROR, "Module load error: " + mods[i]);
} catch (ClassNotFoundException e) {
- rtcout.println(rtcout.ERROR, "Module not found: " + mods[i]);
+ rtcout.println(Logbuf.ERROR, "Module not found: " + mods[i]);
} catch (Exception ex) {
- rtcout.println(rtcout.ERROR, "Unknown Exception");
+ rtcout.println(Logbuf.ERROR, "Unknown Exception");
}
}
}
/**
- * <p> precreateComponent </p>
+ * {@.ja コンポーネントを生成する。}
+ * {@.en Creates components}
*
+ * <p>
+ * {@.ja このメソッドは"manager.components.precreate"に設定されている
+ * コンポーネントを生成する。
+ * {@.en This method creates components set to
+ * "Manager.components.precreate".}
*/
private void precreateComponent() {
String[] comp
@@ -338,7 +437,20 @@
}
/**
- * <p>Managerのメインループを実行します。本メソッドは、runManager(false)の呼び出しと同等です。</p>
+ * {@.ja Managerの実行。}
+ * {@.en Run the Manager}
+ *
+ * <p>
+ * {@.ja このオペレーションはマネージャのメインループを実行する。
+ * runManager(false)の呼び出しと同等。
+ * このメインループ内では、CORBA ORBのイベントループ等が
+ * 処理される。このオペレーションはブロックし、
+ * Manager::destroy() が呼ばれるまで処理を戻さない。}
+ * {@.en This operation processes the main event loop of the Manager.
+ * In this main loop, CORBA's ORB event loop or other processes
+ * are performed. This operation is going to
+ * blocking mode and never returns until Manager::destroy() is called.}
+ *
*/
public void runManager() {
this.runManager(false);
@@ -354,26 +466,49 @@
*
* @param noBlocking 非ブロッキングモードの場合はtrue、ブロッキングモードの場合はfalse
*/
+ /**
+ * {@.ja Managerの実行。}
+ * {@.en Run the Manager}
+ *
+ * <p>
+ * {@.ja このオペレーションはマネージャのメインループを実行する。
+ * このメインループ内では、CORBA ORBのイベントループ等が
+ * 処理される。デフォルトでは、このオペレーションはブロックし、
+ * Manager::destroy() が呼ばれるまで処理を戻さない。
+ * 引数 no_block が true に設定されている場合は、内部でイベントループ
+ * を処理するスレッドを起動し、ブロックせずに処理を戻す。}
+ * {@.en This operation processes the main event loop of the Manager.
+ * In this main loop, CORBA's ORB event loop or other processes
+ * are performed. As the default behavior, this operation is going to
+ * blocking mode and never returns until Manager::destroy() is called.
+ * When the given argument "no_block" is set to "true", this operation
+ * creates a thread to process the event loop internally, and it doesn't
+ * block and returns.}
+ *
+ * @param noBlocking
+ * {@.ja false: ブロッキングモード, true: ノンブロッキングモード}
+ * {@.en false: Blocking mode, true: non-blocking mode.}
+ */
public void runManager(boolean noBlocking) {
if (noBlocking) {
- rtcout.println(rtcout.TRACE, "Manager.runManager(): non-blocking mode");
+ rtcout.println(Logbuf.TRACE, "Manager.runManager(): non-blocking mode");
m_runner = new OrbRunner(m_pORB);
m_runner.open("");
} else {
- rtcout.println(rtcout.TRACE, "Manager.runManager(): blocking mode");
+ rtcout.println(Logbuf.TRACE, "Manager.runManager(): blocking mode");
m_pORB.run();
- rtcout.println(rtcout.TRACE, "Manager.runManager(): ORB was terminated");
+ rtcout.println(Logbuf.TRACE, "Manager.runManager(): ORB was terminated");
join();
}
}
/**
- * {@.ja [CORBA interface] モジュールのロード}
+ * {@.ja [CORBA interface] モジュールのロード。}
* {@.en [CORBA interface] Load module}
*
* <p>
@@ -392,7 +527,7 @@
*/
public String load(final String moduleFileName, final String initFunc) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"Manager.load("+moduleFileName+","+initFunc+")");
String file_name = moduleFileName;
@@ -402,47 +537,66 @@
init_func = "registerModule";
}
String path = m_module.load(file_name, init_func);
- rtcout.println(rtcout.DEBUG, "module path: "+path);
+ rtcout.println(Logbuf.DEBUG, "module path: "+path);
return path;
} catch (Exception e) {
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception: Caught unknown Exception in Manager.load().");
- rtcout.println(rtcout.WARN, e.getMessage());
+ rtcout.println(Logbuf.WARN, e.getMessage());
}
return null;
}
/**
- * <p>モジュールをアンロードします。</p>
+ * {@.ja モジュールのアンロード。}
+ * {@.en Unload module}
*
- * @param moduleFileName モジュールファイル名
+ * <p>
+ * {@.ja モジュールをアンロードする}
+ * {@.en Unload module.}
+ *
+ * @param moduleFileName
+ * {@.ja モジュールのファイル名}
+ * {@.en The module file name}
*/
public void unload(final String moduleFileName) throws Exception {
- rtcout.println(rtcout.TRACE, "Manager.unload("+moduleFileName+")");
+ rtcout.println(Logbuf.TRACE, "Manager.unload("+moduleFileName+")");
m_module.unload(moduleFileName);
}
/**
- * <p>すべてのモジュールをアンロードします。</p>
+ * {@.ja 全モジュールのアンロード。}
+ * {@.en Unload all modules}
+ *
+ * <p>
+ * {@.ja モジュールをすべてアンロードする}
+ * {@.en Unload all modules.}
*/
public void unloadAll() {
- rtcout.println(rtcout.TRACE, "Manager.unloadAll()");
+ rtcout.println(Logbuf.TRACE, "Manager.unloadAll()");
m_module.unloadAll();
}
/**
- * <p>ロード済みのモジュール名リストを取得します。</p>
- *
- * @return ロード済みモジュール名リスト
+ * {@.ja ロード済みのモジュールリストを取得する。}
+ * {@.en Get a list of loaded modules}
+ *
+ * <p>
+ * {@.ja 現在マネージャにロードされているモジュールのリストを取得する。}
+ * {@.en Get module list that is currently loaded into manager.}
+ *
+ * @return
+ * {@.ja ロード済みモジュールリスト}
+ * {@.en Module list that has been loaded.}
*/
public Vector<Properties> getLoadedModules() {
- rtcout.println(rtcout.TRACE, "Manager.getLoadedModules()");
+ rtcout.println(Logbuf.TRACE, "Manager.getLoadedModules()");
return m_module.getLoadedModules();
/*
@@ -460,30 +614,53 @@
}
/**
- * <p>ロード可能なモジュール名リストを取得します。</p>
+ * {@.ja ロード可能なモジュールリストを取得する。}
+ * {@.en Get a list of loadable modules}
*
- * @return ロード可能モジュール名リスト
+ * <p>
+ * {@.ja ロード可能モジュールのリストを取得する。
+ * (現在はModuleManager側で未実装)}
+ * {@.en Get loadable module list.
+ * (Currently, unimplemented on ModuleManager side)}
+ *
+ * @return
+ * {@.ja ロード可能モジュールリスト}
+ * {@.en Loadable module list}
*/
public Vector<Properties> getLoadableModules() {
- rtcout.println(rtcout.TRACE, "Manager.getLoadableModules()");
+ rtcout.println(Logbuf.TRACE, "Manager.getLoadableModules()");
return m_module.getLoadableModules();
}
/**
- * <p>RTコンポーネントファクトリを登録します。</p>
+ * {@.ja RTコンポーネント用ファクトリを登録する。}
+ * {@.en Register RT-Component Factory}
*
- * @param profile コンポーネントプロファイル
- * @param new_func コンポーネント生成オブジェクト
- * @param delete_func コンポーネント削除オブジェクト
+ * <p>
+ * {@.ja RTコンポーネントのインスタンスを生成するための
+ * Factoryを登録する。}
+ * {@.en Register Factory to create RT-Component's instances.}
*
- * @return 登録に成功した場合はtrueを、さもなくばfalseを返します。
+ * @param profile
+ * {@.ja コンポーネントプロファイル}
+ * {@.en RT-Component profile}
+ * @param new_func
+ * {@.ja コンポーネント生成オブジェクト}
+ * {@.en RT-Component creation function}
+ * @param delete_func
+ * {@.ja コンポーネント削除オブジェクト}
+ * {@.en RT-Component destruction function}
+ *
+ * @return
+ * {@.ja 登録処理結果(登録成功:true、失敗:false)}
+ * {@.en Registration result (Successful:true, Failed:false)}
*/
public boolean registerFactory(Properties profile, RtcNewFunc new_func,
RtcDeleteFunc delete_func) {
- rtcout.println(rtcout.TRACE, "Manager.registerFactory("
+ rtcout.println(Logbuf.TRACE, "Manager.registerFactory("
+ profile.getProperty("type_name") + ")");
try {
@@ -492,19 +669,27 @@
return true;
} catch (Exception ex) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Exception: Caught unknown Exception in Manager.registerFactory().");
- rtcout.println(rtcout.DEBUG, ex.getMessage());
+ rtcout.println(Logbuf.DEBUG, ex.getMessage());
return false;
}
}
/**
- * <p> getFactoryProfiles </p>
+ * {@.ja ファクトリのプロファイルを取得。}
+ * {@.en Get profiles of factories.}
*
+ * <p>
+ * {@.ja ファクトリのプロファイルを取得する。}
+ * {@.en Get profiles of factories.}
+ *
+ * @return
+ * {@.ja ファクトリのプロファイル}
+ * {@.en profiles of factories}
*/
public Vector<Properties> getFactoryProfiles() {
- rtcout.println(rtcout.TRACE, "Manager.getFactoryProfiles()");
+ rtcout.println(Logbuf.TRACE, "Manager.getFactoryProfiles()");
Vector<FactoryBase> factories = m_factory.getObjects();
Vector<Properties> props = new Vector<Properties>();
@@ -515,15 +700,24 @@
return props;
}
- /**
- * <p>ExecutionContextファクトリを登録します。</p>
- *
- * @param name ExecutionContext名称
- * @return 登録に成功した場合はtrueを、さもなくばfalseを返します。
- */
+ /**
+ * {@.ja ExecutionContext用ファクトリを登録する。}
+ * {@.en Register ExecutionContext Factory}
+ *
+ * {@.ja ExecutionContextのインスタンスを生成するための
+ * Factoryを登録する。}
+ * {@.en Register Factory to create ExecutionContext's instances.}
+ *
+ * @param name
+ * {@.ja ExecutionContext名称}
+ * {@.en ExecutionContext name}
+ * @return
+ * {@.ja 登録に成功した場合はtrueを、さもなくばfalseを返す。}
+ * {@.en Registration result (Successful:true, Failed:false)}
+ */
public boolean registerECFactory(final String name) {
- rtcout.println(rtcout.TRACE, "Manager.registerECFactory(" + name + ")");
+ rtcout.println(Logbuf.TRACE, "Manager.registerECFactory(" + name + ")");
try {
ECFactoryBase factory = new ECFactoryJava(name);
@@ -537,20 +731,27 @@
return true;
} catch (Exception ex) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught unknown Exception in Manager.registerECFactory().");
- rtcout.println(rtcout.DEBUG, ex.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught unknown Exception in Manager.registerECFactory().");
+ rtcout.println(Logbuf.DEBUG, ex.getMessage());
return false;
}
}
/**
- * <p>すべてのRTコンポーネントファクトリのリストを取得します。</p>
- *
- * @return すべてのRTコンポーネントファクトリのリスト
+ * {@.ja ファクトリ全リストを取得する。}
+ * {@.en Get the list of all Factories}
+ *
+ * <p>
+ * {@.ja 登録されているファクトリの全リストを取得する。}
+ * {@.en Get the list of all factories that have been registered.}
+ *
+ * @return
+ * {@.ja 登録ファクトリ リスト}
+ * {@.en Registered factory list}
*/
public Vector<String> getModulesFactories() {
- rtcout.println(rtcout.TRACE, "Manager.getModulesFactories()");
+ rtcout.println(Logbuf.TRACE, "Manager.getModulesFactories()");
Vector<String> factoryIds = new Vector<String>();
for (int i=0, len=m_factory.m_objects.size(); i < len; ++i) {
@@ -561,21 +762,22 @@
}
/**
- * <p>RTコンポーネントファクトリをクリアする。</p>
+ * {@.ja RTコンポーネントファクトリをクリアする。}
+ * {@.en Clears the factory for RT component.}
*/
public void clearModulesFactories() {
m_factory = new ObjectManager<String, FactoryBase>();
}
-
/**
- * <p>RTコンポーネントマネージャをクリアする。</p>
+ * {@.ja RTコンポーネントマネージャをクリアする。}
+ * {@.en Clears the RT component manager.}
*/
public void clearModules() {
m_compManager = new ObjectManager<String, RTObject_impl>();
}
/**
- * {@.ja RTコンポーネントを生成する}
+ * {@.ja RTコンポーネントを生成する。}
* {@.en Create RT-Components}
* <p>
* {@.ja 指定したRTコンポーネントのインスタンスを登録されたFactory経由
@@ -583,52 +785,58 @@
*
* 生成されるコンポーネントの各種プロファイルは以下の優先順位で
* 設定される。
+ * <ul>
+ * <li># createComponent() の引数で与えられたプロファイル
+ * <li># rtc.confで指定された外部ファイルで与えられたプロファイル<ul>
+ * <li># category.instance_name.config_file
+ * <li># category.component_type.config_file</ul>
+ * <li># コードに埋め込まれたプロファイル
+ * </ul>
*
- * -# createComponent() の引数で与えられたプロファイル
- * -# rtc.confで指定された外部ファイルで与えられたプロファイル
- * --# category.instance_name.config_file
- * --# category.component_type.config_file
- * -# コードに埋め込まれたプロファイル
- *
- * インスタンス生成が成功した場合、併せて以下の処理を実行する。
- * - 外部ファイルで設定したコンフィギュレーション情報の読み込み,設定
- * - ExecutionContextのバインド,動作開始
- * - ネーミングサービスへの登録}
+ * インスタンス生成が成功した場合、併せて以下の処理を実行する。<ul>
+ * <li> 外部ファイルで設定したコンフィギュレーション情報の読み込み,設定
+ * <li> ExecutionContextのバインド,動作開始
+ * <li> ネーミングサービスへの登録</li></ul>}
* {@.en Create specified RT-Component's instances via registered Factory.
* When its instances have been created successfully, the following
* processings are also executed.
- * - Read and set configuration information that was set by external file.
- * - Bind ExecutionContext and start operation.
- * - Register to naming service.}
+ * <li> Read and set configuration information that was set by external
+ * file.</li>
+ * <li> Bind ExecutionContext and start operation.
+ * <li> Register to naming service.</li></ul>}
* </p>
* @param comp_args
* {@.ja 生成対象RTコンポーネントIDおよびコンフィギュレー
* ション引数。フォーマットは大きく分けて "id" と "configuration"
* 部分が存在する。
- *
- * comp_args: [id]?[configuration]
- * id は必須、configurationはオプション
- * id: RTC:[vendor]:[category]:[implementation_id]:[version]
+ * comp_args: [id]?[configuration] <br>
+ * id は必須、configurationはオプション<ul>
+ * <li>id: RTC:[vendor]:[category]:[implementation_id]:[version]
* RTC は固定かつ必須
* vendor, category, version はオプション
* implementation_id は必須
- * オプションを省略する場合でも ":" は省略不可
- * configuration: [key0]=[value0]&[key1]=[value1]&[key2]=[value2].....
+ * オプションを省略する場合でも ":" は省略不可</li>
+ * <li>configuration: [key0]=[value0]&[key1]=[value1]&[key2]=[value2].....
* RTCが持つPropertiesの値をすべて上書きすることができる。
- * key=value の形式で記述し、"&" で区切る
+ * key=value の形式で記述し、"&" で区切る</li>
+ * </ul>
*
- * 例えば、
+ * 例えば、<br>
* RTC:jp.go.aist:example:ConfigSample:1.0?conf.default.str_param0=munya
* RTC::example:ConfigSample:?conf.default.int_param0=100}
*
- * {@.en Target RT-Component names for the creation}
+ * {@.en Target RT-Component names for the creation.<br>
+ * comp_args: [id]?[configuration] <br>
+ * for examples,<br>
+ * RTC:jp.go.aist:example:ConfigSample:1.0?conf.default.str_param0=munya
+ * RTC::example:ConfigSample:?conf.default.int_param0=100}
* @return
* {@.ja 生成したRTコンポーネントのインスタンス}
* {@.en Created RT-Component's instances}
*/
public RTObject_impl createComponent(final String comp_args) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"Manager.createComponent(" + comp_args + ")");
if( comp_args == null || comp_args.equals("") ) {
@@ -676,13 +884,13 @@
int i,len;
FactoryBase factory = findPropertyFormFactory(comp_id);
if (factory == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Factory not found: "
+ comp_id.getProperty("implementaion_id"));
// automatic module loading
Vector<Properties> mp = m_module.getLoadableModules();
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
+ mp.size() + " loadable modules found");
boolean find = false;
@@ -696,24 +904,24 @@
}
}
if(find==false){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"No module for "
+ comp_id.getProperty("implementation_id")
+" in loadable modules list");
return null;
}
if(mprop.findNode("module_file_name")==null){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Hmm...module_file_name key not found. ");
return null;
}
// module loading
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"Loading module: "+ mprop.getProperty("module_file_name"));
load(mprop.getProperty("module_file_name"), "");
factory = findPropertyFormFactory(comp_id);
if (factory == null){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Factory not found for loaded module: "
+ comp_id.getProperty("implementation_id"));
return null;
@@ -742,14 +950,14 @@
comp = factory.create(this);
if (comp == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"RTC creation failed: "
+ comp_id.getProperty("implementaion_id"));
return null;
}
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"RTC Created: " + comp_id.getProperty("implementaion_id"));
prop.merge(comp_prop);
@@ -791,18 +999,18 @@
comp = m_factory.m_objects.elementAt(i).create(this);
if (comp == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"RTC creation failed: "
+ comp_id.getProperty("implementaion_id"));
return null;
}
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"RTC Created: " + comp_id.getProperty("implementaion_id"));
break;
}
}
if(i == m_factory.m_objects.size()) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Factory not found: " + comp_id.getProperty("implementaion_id"));
return null;
}
@@ -823,13 +1031,13 @@
//------------------------------------------------------------
// Component initialization
if( comp.initialize() != ReturnCode_t.RTC_OK ) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"RTC initialization failed: "
+ comp_id.getProperty("implementaion_id"));
comp.exit();
return null;
}
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"RTC initialization succeeded: "
+ comp_id.getProperty("implementaion_id"));
@@ -860,50 +1068,78 @@
return null;
}
/**
- * <p>指定したRTコンポーネントを登録解除します。</p>
- *
- * @param comp 登録解除するRTコンポーネントオブジェクト
+ * {@.ja RTコンポーネントの登録解除。}
+ * {@.en Unregister RT-Components}
+ *
+ * <p>
+ * {@.ja 指定したRTコンポーネントのインスタンスをネーミングサービスから
+ * 登録解除する。}
+ * {@.en Unregister specified RT-Component's instances
+ * from naming service.}
+ *
+ * @param comp
+ * {@.ja 登録解除対象RTコンポーネントオブジェクト}
+ * {@.en Target RT-Components for the unregistration}
*/
public void cleanupComponent(RTObject_impl comp) {
- rtcout.println(rtcout.TRACE, "Manager.cleanupComponent()");
+ rtcout.println(Logbuf.TRACE, "Manager.cleanupComponent()");
unregisterComponent(comp);
}
- class cleanupComponentsClass implements CallbackFunction {
-
- private Manager m_mgr;
- public cleanupComponentsClass() {
-// m_mgr = Manager.instance();
- }
- public void doOperate() {
- cleanupComponents();
- }
/**
- * {@.ja RTコンポーネントの削除する}
- * {@.en This method deletes RT-Components.}
+ * {@.ja RTコンポーネントの削除するためのリスナークラス}
+ * {@.en Listener Class for deletion of RT component}
*
- * <p>
- * {@.ja notifyFinalized()によって登録されたRTコンポーネントを削除する。}
- * {@.en This method deletes RT-Components registered by
- * notifyFinalized().}
- *
*/
- public void cleanupComponents() {
- rtcout.println(rtcout.VERBOSE, "Manager.cleanupComponents()");
- synchronized (m_finalized.mutex){
- rtcout.println(rtcout.VERBOSE,
- m_finalized.comps.size()
- +" components are marked as finalized.");
- for (int i=0; i < m_finalized.comps.size(); ++i) {
- deleteComponent(m_finalized.comps.elementAt(i));
+ class cleanupComponentsClass implements CallbackFunction {
+
+ private Manager m_mgr;
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ */
+ public cleanupComponentsClass() {
+// m_mgr = Manager.instance();
+ }
+ /**
+ * {@.ja コールバックメソッド}
+ * {@.en Callback method}
+ */
+ public void doOperate() {
+ cleanupComponents();
+ }
+ /**
+ * {@.ja RTコンポーネントの削除する。}
+ * {@.en This method deletes RT-Components.}
+ *
+ * <p>
+ * {@.ja notifyFinalized()によって登録されたRTコンポーネントを
+ * 削除する。}
+ * {@.en This method deletes RT-Components registered by
+ * notifyFinalized().}
+ *
+ */
+ public void cleanupComponents() {
+ rtcout.println(Logbuf.VERBOSE, "Manager.cleanupComponents()");
+ synchronized (m_finalized.mutex){
+ rtcout.println(Logbuf.VERBOSE,
+ m_finalized.comps.size()
+ +" components are marked as finalized.");
+ for (int i=0; i < m_finalized.comps.size(); ++i) {
+ deleteComponent(m_finalized.comps.elementAt(i));
+ }
+ m_finalized.comps.clear();
}
- m_finalized.comps.clear();
}
- }
}
+ /**
+ * {@.ja タイマー処理用リスナー}
+ * {@.en Listener for timer processing}
+ */
cleanupComponentsClass m_cleanupComponents = new cleanupComponentsClass();
/**
@@ -924,7 +1160,7 @@
*
*/
public void notifyFinalized(RTObject_impl comp) {
- rtcout.println(rtcout.TRACE, "Manager.notifyFinalized()");
+ rtcout.println(Logbuf.TRACE, "Manager.notifyFinalized()");
synchronized (m_finalized.mutex){
m_finalized.comps.add(comp);
}
@@ -938,18 +1174,65 @@
* @return boolean
*
*/
+ /**
+ * {@.ja 引数文字列からコンポーネント型名・プロパティを抽出する。}
+ * {@.en Extracting component type/properties from the given string}
+ *
+ * <p>
+ * {@.ja 文字列からコンポーネント型とコンポーネントのプロパティを抽出する。
+ * 与えられる文字列のフォーマットは RTC の ID とコンフィギュレーショ
+ * ンからなる
+ *
+ * [RTC type]?[key(0)]=[val(0)]&[key(1)]=[val(1)]&...&[key(n)]=[val(n)]
+ *
+ * である。なお、RTC type は implementation_id のみ、もしくは、下記
+ * の RTC ID 形式
+ *
+ * RTC:[vendor]:[category]:[impl_id]:[version]
+ *
+ * を受け付ける。戻り値である、comp_id は、
+ * "vendor", "category", "implementation_id", "version" のキーを持つ
+ * Properties 型のオブジェクトとして返される。
+ * comp_conf には "?" 以下に記述されるコンポーネントに与えるプロパティ
+ * が Properties 型のオブジェクトとして返される。}
+ * {@.en This operation extracts component type name and its properties
+ * from the figen character string.
+ * The given string formats is the following.
+ *
+ * [RTC type]?[key(0)]=[val(0)]&[key(1)]=[val(1)]...[key(n)]=[val(n)]
+ *
+ * Returned value "comp_id" has keys of "vendor", "category",
+ * "implementation_id", "version", and returned as Properties type
+ * object. "comp_conf" is returned as Properties type object
+ * includeing component properties to be given to component.}
+ *
+ * @param comp_arg
+ * {@.ja 処理すべき文字列}
+ * {@.en character string to be processed}
+ * @param comp_id
+ * {@.ja 抽出されたコンポーネントの型名}
+ * {@.en extracted component type name}
+ * @param comp_conf
+ * {@.ja 抽出されたコンポーネントのプロパティ}
+ * {@.en extracted component's properties}
+ *
+ * @return
+ * {@.ja comp_arg にコンポーネント型が含まれていない場合false}
+ * {@.en comp_arg false will returned if no component type in arg}
+ *
+ */
public boolean procComponentArgs(final String comp_arg,
Properties comp_id,
Properties comp_conf) {
- rtcout.println(rtcout.TRACE, "Manager.procComponentArgs("+comp_arg+")");
+ rtcout.println(Logbuf.TRACE, "Manager.procComponentArgs("+comp_arg+")");
String[] id_and_conf = comp_arg.split("\\?");
// arg should be "id?key0=value0&key1=value1...".
// id is mandatory, conf is optional
if (id_and_conf.length != 1 && id_and_conf.length != 2) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"args devided into " + id_and_conf.length);
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Invalid arguments. Two or more '?' in arg : " + comp_arg);
return false;
}
@@ -962,7 +1245,7 @@
// id should be devided into 1 or 5 elements
// RTC:[vendor]:[category]:impl_id:[version] => 5
if (id.length != 5) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Invalid RTC id format.: " + id_and_conf[0]);
return false;
}
@@ -976,12 +1259,12 @@
};
if (id[0].trim().equals(prof[0]) == false) {
- rtcout.println(rtcout.ERROR, "Invalid id type: " + id[0]);
+ rtcout.println(Logbuf.ERROR, "Invalid id type: " + id[0]);
return false;
}
for (int i = 1; i < 5; ++i) {
comp_id.setProperty(prof[i], id[i].trim());
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"RTC basic propfile " + prof[i] + ":" + id[i].trim());
}
@@ -996,7 +1279,7 @@
continue;
}
comp_conf.setProperty(keyval[0].trim(), keyval[1].trim());
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"RTC property " + keyval[0] + ":" + keyval[1]);
}
}
@@ -1004,14 +1287,26 @@
}
/**
- * <p>RTコンポーネントを、直接にManagerに登録します。</p>
+ * {@.ja RTコンポーネントを直接 Manager に登録する。}
+ * {@.en Register RT-Component directly without Factory}
*
- * @param comp 登録対象のRTコンポーネントオブジェクト
- * @return 正常に登録できた場合はtrueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja 指定したRTコンポーネントのインスタンスを
+ * ファクトリ経由ではなく直接マネージャに登録する。}
+ * {@.en Register specified RT-Component's instances not via Factory
+ * to Manager directly.}
+ *
+ * @param comp
+ * {@.ja 登録対象のRTコンポーネントオブジェクト}
+ * {@.en Target RT-Component's instances for the registration}
+ *
+ * @return
+ * {@.ja 正常に登録できた場合はtrueを、さもなくばfalseを返す。}
+ * {@.en Registration result (Successful:true, Failed:false)}
*/
public boolean registerComponent(RTObject_impl comp) {
- rtcout.println(rtcout.TRACE, "Manager.registerComponent("
+ rtcout.println(Logbuf.TRACE, "Manager.registerComponent("
+ comp.getInstanceName() + ")");
// NamingManagerのみで代用可能
@@ -1019,7 +1314,7 @@
String[] names = comp.getNamingNames();
for (int i = 0; i < names.length; ++i) {
- rtcout.println(rtcout.TRACE, "Bind name: " + names[i]);
+ rtcout.println(Logbuf.TRACE, "Bind name: " + names[i]);
m_namingManager.bindObject(names[i], comp);
}
@@ -1028,13 +1323,24 @@
}
/**
- * <p>指定したRTコンポーネントを登録解除します。</p>
- *
- * @param comp 登録解除するRTコンポーネントオブジェクト
+ * {@.ja RTコンポーネントの登録を解除する。}
+ * {@.en Unregister RT-Components}
+ *
+ * <p>
+ * {@.ja 指定したRTコンポーネントの登録を解除する。}
+ * {@.en Unregister specified RT-Components}
+ *
+ * @param comp
+ * {@.ja 登録解除するRTコンポーネントオブジェクト}
+ * {@.en Target RT-Component's instances for the unregistration}
+ *
+ * @return
+ * {@.ja 登録解除処理結果(解除成功:true、解除失敗:false)}
+ * {@.en Unregistration result (Successful:true, Failed:false)}
*/
public boolean unregisterComponent(RTObject_impl comp) {
- rtcout.println(rtcout.TRACE, "Manager.unregisterComponent("
+ rtcout.println(Logbuf.TRACE, "Manager.unregisterComponent("
+ comp.getInstanceName() + ")");
// NamingManager のみで代用可能
@@ -1042,7 +1348,7 @@
String[] names = comp.getNamingNames();
for (int i = 0; i < names.length; ++i) {
- rtcout.println(rtcout.TRACE, "Unbind name: " + names[i]);
+ rtcout.println(Logbuf.TRACE, "Unbind name: " + names[i]);
m_namingManager.unbindObject(names[i]);
}
@@ -1051,15 +1357,19 @@
}
/**
- * <p> createContext </p>
+ * {@.ja Contextを生成する。}
+ * {@.en Create Context}
*
- * @param ec_args String
- * @return ExecutionContextBase
- *
+ * @param ec_args
+ * {@.ja 引数}
+ * {@.en Arguments}
+ * @return
+ * {@.ja 生成したConetextのインスタンス}
+ * {@.en @return Created Context's instances}
*/
public ExecutionContextBase createContext(final String ec_args) {
- rtcout.println(rtcout.TRACE, "Manager.createContext("+ec_args+")");
- rtcout.println(rtcout.TRACE, "ExecutionContext type: " + m_config.getProperty("exec_cxt.periodic.type") );
+ rtcout.println(Logbuf.TRACE, "Manager.createContext("+ec_args+")");
+ rtcout.println(Logbuf.TRACE, "ExecutionContext type: " + m_config.getProperty("exec_cxt.periodic.type") );
StringBuffer ec_id = new StringBuffer();
Properties ec_prop = new Properties();
@@ -1070,7 +1380,7 @@
ECFactoryBase factory = (ECFactoryBase)m_ecfactory.find(new ECFactoryPredicate(ec_id.toString()));
if(factory == null) {
- rtcout.println(rtcout.ERROR, "Factory not found: " + ec_id);
+ rtcout.println(Logbuf.ERROR, "Factory not found: " + ec_id);
return null;
}
@@ -1080,27 +1390,58 @@
}
/**
- * <p> procContextArgs </p>
+ * {@.ja 引数文字列からExecutionContext名・プロパティを抽出する。}
+ * {@.en Extracting ExecutionContext's name/properties from the given
+ * string}
*
- * @param ec_args String
- * @param ec_id StringBuffer
- * @param ec_conf Properties
- * @return boolean
+ * <p>
+ * {@.ja 文字列からExecutionContext名とプロパティを抽出する。
+ * 与えられる文字列のフォーマットは RTC の ID とコンフィギュレーショ
+ * ンからなる
*
+ * [ExecutionContext名]?[key(0)]
+ * =[val(0)]&[key(1)]=[val(1)]&...&[key(n)]=[val(n)]
+ *
+ * である。
+ *
+ * ec_conf には "?" 以下に記述されるコンポーネントに与えるプロパティ
+ * が Properties 型のオブジェクトとして返される。}
+ * {@.en This operation extracts ExecutionContext's name and its properties
+ * from the figen character string.
+ * The given string formats is the following.
+ *
+ * [ExecutionContext's name]?[key(0)]
+ * =[val(0)]&[key(1)]=[val(1)]...[key(n)]=[val(n)]
+ *
+ * "ec_conf" is returned as Properties type object
+ * includeing component properties to be given to component.}
+ *
+ * @param ec_args
+ * {@.ja 処理すべき文字列}
+ * {@.en character string to be processed}
+ * @param ec_id
+ * {@.ja 抽出されたExecutionContext名}
+ * {@.en extracted ExecutionContext's name}
+ * @param ec_conf
+ * {@.ja 抽出されたExecutionContextのプロパティ}
+ * {@.en extracted ExecutionContext's properties}
+ * @return
+ * {@.ja ec_args にExecutionContext名が含まれていない場合false}
+ * {@.en ec_arg false will returned if no ExecutionContext's name in arg}
*/
public boolean procContextArgs(final String ec_args,
StringBuffer ec_id,
Properties ec_conf) {
- rtcout.println(rtcout.TRACE, "Manager.procContextArgs("+ec_args+","+ec_id.toString()+")");
+ rtcout.println(Logbuf.TRACE, "Manager.procContextArgs("+ec_args+","+ec_id.toString()+")");
String[] id_and_conf = ec_args.split("\\?");
if (id_and_conf.length != 1 && id_and_conf.length != 2) {
- rtcout.println(rtcout.ERROR, "Invalid arguments. Two or more '?' in arg : " + ec_args);
+ rtcout.println(Logbuf.ERROR, "Invalid arguments. Two or more '?' in arg : " + ec_args);
return false;
}
if (id_and_conf[0].length() == 0) {
- rtcout.println(rtcout.ERROR, "Empty ExecutionContext's name");
+ rtcout.println(Logbuf.ERROR, "Empty ExecutionContext's name");
return false;
}
ec_id.append(id_and_conf[0]);
@@ -1110,7 +1451,7 @@
for (int i=0, len=conf.length; i < len; ++i) {
String[] k = conf[i].split("=");
ec_conf.setProperty(k[0], k[1]);
- rtcout.println(rtcout.TRACE, "EC property "+ k[0] + ":" + k[1]);
+ rtcout.println(Logbuf.TRACE, "EC property "+ k[0] + ":" + k[1]);
}
}
@@ -1125,8 +1466,8 @@
/*
public boolean bindExecutionContext(RTObject_impl comp) {
- rtcout.println(rtcout.TRACE, "Manager.bindExecutionContext()");
- rtcout.println(rtcout.TRACE, "ExecutionContext type: "
+ rtcout.println(Logbuf.TRACE, "Manager.bindExecutionContext()");
+ rtcout.println(Logbuf.TRACE, "ExecutionContext type: "
+ m_config.getProperty("exec_cxt.periodic.type"));
RTObject rtobj = comp.getObjRef();
@@ -1146,16 +1487,16 @@
m_objManager.activate(exec_cxt);
} catch (ServantAlreadyActive e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught ServantAlreadyActive Exception in Manager.bindExecutionContext() DataFlowParticipant.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught ServantAlreadyActive Exception in Manager.bindExecutionContext() DataFlowParticipant.");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
} catch (WrongPolicy e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught WrongPolicy Exception in Manager.bindExecutionContext() DataFlowParticipant.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught WrongPolicy Exception in Manager.bindExecutionContext() DataFlowParticipant.");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
} catch (ObjectNotActive e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught ObjectNotActive Exception in Manager.bindExecutionContext() DataFlowParticipant.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught ObjectNotActive Exception in Manager.bindExecutionContext() DataFlowParticipant.");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
}
final String rate = m_config.getProperty("exec_cxt.periodic.rate");
@@ -1169,16 +1510,16 @@
m_objManager.activate(exec_cxt);
} catch (ServantAlreadyActive e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught ServantAlreadyActive Exception in Manager.bindExecutionContext() FsmParticipant.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught ServantAlreadyActive Exception in Manager.bindExecutionContext() FsmParticipant.");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
} catch (WrongPolicy e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught WrongPolicy Exception in Manager.bindExecutionContext() FsmParticipant.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught WrongPolicy Exception in Manager.bindExecutionContext() FsmParticipant.");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
} catch (ObjectNotActive e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught ObjectNotActive Exception in Manager.bindExecutionContext() FsmParticipant.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught ObjectNotActive Exception in Manager.bindExecutionContext() FsmParticipant.");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
}
}
@@ -1191,7 +1532,7 @@
*/
/**
- * {@.ja Manager に登録されているRTコンポーネントを削除する}
+ * {@.ja Manager に登録されているRTコンポーネントを削除する。}
* {@.en Unregister RT-Components that have been registered to Manager}
*
* <p>
@@ -1209,7 +1550,7 @@
*
*/
public void deleteComponent(RTObject_impl comp) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"Manager.deleteComponent(RTObject)");
// cleanup from manager's table, and naming serivce
unregisterComponent(comp);
@@ -1221,12 +1562,12 @@
new FactoryPredicate(
comp.getProperties().getProperty("implementation_id")));
if (factory == null) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Factory not found: "+comp_id.getProperty("implementation_id"));
return;
}
else {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Factory not found: "+comp_id.getProperty("implementation_id"));
factory.destroy(comp);
}
@@ -1243,7 +1584,7 @@
}
/**
- * {@.ja Manager に登録されているRTコンポーネントを削除する}
+ * {@.ja Manager に登録されているRTコンポーネントを削除する。}
* {@.en Unregister RT-Components that have been registered to Manager}
*
* <p>
@@ -1261,12 +1602,12 @@
*/
public void deleteComponent(final String instanceName) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"Manager.deleteComponent(" + instanceName + ")");
RTObject_impl comp = null;
comp = m_compManager.find(new InstanceName(instanceName));
if (comp == null) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"RTC "+instanceName+" was not found in manager.");
return;
}
@@ -1277,65 +1618,113 @@
* <p>Managerに登録されているRTコンポーネントを取得します。</p>
* <p>※未実装</p>
*
- * @param instanceName 取得対象RTコンポーネント名
- * @return 対象RTコンポーネントオブジェクト
*/
+ /**
+ * {@.ja Manager に登録されているRTコンポーネントを検索する。}
+ * {@.en Get RT-Component's pointer}
+ *
+ * <p>
+ * {@.ja Manager に登録されているRTコンポーネントを指定した名称で検索し、
+ * 合致するコンポーネントを取得する。}
+ * {@.en Search RT-Component that has been registered to Manager
+ * by its specified name, and get it that matches.}
+ *
+ *
+ * @param instanceName
+ * {@.ja 取得対象RTコンポーネント名}
+ * {@.en Target RT-Component's name for searching}
+ *
+ * @return
+ * {@.ja 対象RTコンポーネントオブジェクト}
+ * {@.en Target RT-Component's instances that matches}
+ */
public RTObject_impl getComponent(final String instanceName) {
- rtcout.println(rtcout.TRACE, "Manager.getComponent(" + instanceName + ")");
+ rtcout.println(Logbuf.TRACE, "Manager.getComponent(" + instanceName + ")");
return m_compManager.find(new InstanceName(instanceName));
}
/**
- * <p>Managerに登録されている全てのRTコンポーネントを取得します。</p>
+ * {@.ja Manager に登録されている全RTコンポーネントを取得する。}
+ * {@.en Get all RT-Components registered in the Manager}
*
- * @return RTコンポーネントのリスト
+ * <p>
+ * {@.ja Manager に登録されているRTコンポーネントの全インスタンスを
+ * 取得する。}
+ * {@.en Get all RT-Component's instances that have been registered
+ * to Manager.}
+ *
+ * @return
+ * {@.ja 全RTコンポーネントのインスタンスリスト}
+ * {@.en List of all RT-Component's instances}
*/
public Vector<RTObject_impl> getComponents() {
- rtcout.println(rtcout.TRACE, "Manager.getComponents()");
+ rtcout.println(Logbuf.TRACE, "Manager.getComponents()");
return m_compManager.getObjects();
}
/**
- * <p>ORBを取得します。</p>
+ * {@.ja ORB のポインタを取得する。}
+ * {@.en Get the pointer to ORB}
*
- * @return ORBオブジェクト
+ * <p>
+ * {@.ja Manager に設定された ORB のポインタを取得する。}
+ * {@.en Get the pointer to ORB that has been set to Manager.}
+ *
+ * @return
+ * {@.ja ORB オブジェクト}
+ * {@.en ORB object}
+ *
*/
public ORB getORB() {
- rtcout.println(rtcout.TRACE, "Manager.getORB()");
+ rtcout.println(Logbuf.TRACE, "Manager.getORB()");
return m_pORB;
}
/**
- * <p>RootPOAを取得します。</p>
+ * {@.ja Manager が持つ RootPOA のポインタを取得する。}
+ * {@.en Get a pointer to RootPOA held by Manager}
*
- * @return RootPOAオブジェクト
+ * <p>
+ * {@.ja Manager に設定された RootPOA へのポインタを取得する。}
+ * {@.en Get the pointer to RootPOA that has been set to Manager.}
+ *
+ * @return
+ * {@.ja RootPOAオブジェクト}
+ * {@.en RootPOA object}
*/
public POA getPOA() {
- rtcout.println(rtcout.TRACE, "Manager.getPOA()");
+ rtcout.println(Logbuf.TRACE, "Manager.getPOA()");
return m_pPOA;
}
/**
- * <p>POAマネージャを取得します。</p>
+ * {@.ja Manager が持つ POAManager を取得する。}
+ * {@.en Get POAManager that Manager has}
*
- * @return POAマネージャ
+ * <p>
+ * {@.ja Manager に設定された POAMAnager を取得する。}
+ * {@.en Get POAMAnager that has been set to Manager.}
+ *
+ * @return
+ * {@.ja POAマネージャ}
+ * {@.en POA manager}
*/
public POAManager getPOAManager() {
- rtcout.println(rtcout.TRACE, "Manager.getPOAManager()");
+ rtcout.println(Logbuf.TRACE, "Manager.getPOAManager()");
return m_pPOAManager;
}
/**
- * {@.ja Manager の内部初期化処理}
+ * {@.ja Manager の内部初期化処理。}
* {@.en Manager internal initialization}
*
* <p>
@@ -1365,7 +1754,7 @@
config = new ManagerConfig(argv);
}
catch(IllegalArgumentException e){
- rtcout.println(rtcout.WARN, "Could not parse arguments.");
+ rtcout.println(Logbuf.WARN, "Could not parse arguments.");
}
if (m_config == null) {
m_config = new Properties();
@@ -1413,7 +1802,7 @@
/**
* {@.ja Manager の終了処理}
- * {@.en @brief Shutdown Manager}
+ * {@.en Shutdown Manager}
*
* <p>
* {@.ja Manager を終了する}
@@ -1423,52 +1812,79 @@
*/
protected void shutdownManager() {
- rtcout.println(rtcout.TRACE, "Manager.shutdownManager()");
+ rtcout.println(Logbuf.TRACE, "Manager.shutdownManager()");
m_timer.stop();
}
-
- class shutdownOnNoRtcsClass implements CallbackFunction {
- private Manager m_mgr;
- public shutdownOnNoRtcsClass() {
-// m_mgr = Manager.instance();
- }
- public void doOperate() {
- shutdownOnNoRtcs();
- }
/**
- * {@.ja Manager の終了処理}
- * {@.en Shutdown Manager}
- *
- * <p>
- * {@.ja configuration の "manager.shutdown_on_nortcs" YES で、
- * コンポーネントが登録されていない場合 Manager を終了する。}
- * {@.en This method shutdowns Manager as follows.
- * <ul>
- * <li> "Manager.shutdown_on_nortcs" of configuration is YES.
- * <li> The component is not registered.
- * </ul>}
- *
+ * {@.ja Manager の終了のためのリスナークラス}
+ * {@.en Listener Class for deletion of Manager}
*/
- protected void shutdownOnNoRtcs(){
- rtcout.println(rtcout.TRACE, "Manager.shutdownOnNoRtcs()");
- if (StringUtil.toBool(
- m_config.getProperty("manager.shutdown_on_nortcs"),
- "YES", "NO", true)) {
+ class shutdownOnNoRtcsClass implements CallbackFunction {
+ private Manager m_mgr;
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ */
+ public shutdownOnNoRtcsClass() {
+// m_mgr = Manager.instance();
+ }
+ /**
+ * {@.ja コールバックメソッド}
+ * {@.en Callback method}
+ */
+ public void doOperate() {
+ shutdownOnNoRtcs();
+ }
+ /**
+ * {@.ja Manager の終了処理}
+ * {@.en Shutdown Manager}
+ *
+ * <p>
+ * {@.ja configuration の "manager.shutdown_on_nortcs" YES で、
+ * コンポーネントが登録されていない場合 Manager を終了する。}
+ * {@.en This method shutdowns Manager as follows.
+ * <ul>
+ * <li> "Manager.shutdown_on_nortcs" of configuration is YES.
+ * <li> The component is not registered.
+ * </ul>}
+ *
+ */
+ protected void shutdownOnNoRtcs(){
+ rtcout.println(Logbuf.TRACE, "Manager.shutdownOnNoRtcs()");
+ if (StringUtil.toBool(
+ m_config.getProperty("manager.shutdown_on_nortcs"),
+ "YES", "NO", true)) {
- Vector<RTObject_impl> comps = getComponents();
- if (comps.size() == 0) {
- shutdown();
+ Vector<RTObject_impl> comps = getComponents();
+ if (comps.size() == 0) {
+ shutdown();
+ }
}
}
- }
}
+ /**
+ * {@.ja タイマー処理用リスナー}
+ * {@.en Listener for timer processing}
+ */
shutdownOnNoRtcsClass m_shutdownOnNoRtcs = new shutdownOnNoRtcsClass();
/**
- * <p>System loggerを初期化します。</p>
+ * {@.ja System logger の初期化。}
+ * {@.en System logger initialization}
*
- * @return 正常に初期化できた場合はtrueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja System logger の初期化を実行する。
+ * コンフィギュレーションファイルに設定された情報に基づき、
+ * ロガーの初期化,設定を実行する。}
+ * {@.en Initialize System logger.
+ * Initialize logger and set it according to the set information in
+ * configuration file,}
+ *
+ * @return
+ * {@.ja 正常に初期化できた場合はtrueを、さもなくばfalseを返す。}
+ * {@.en Initialization result (Successful:true, Failed:false)}
*/
protected boolean initLogger() {
@@ -1505,15 +1921,17 @@
// Log stream mutex locking mode
rtcout.setLogLock(StringUtil.toBool(
- m_config.getProperty("logger.stream_lock"), "enable", "disable", false));
+ m_config.getProperty("logger.stream_lock"),
+ "enable", "disable", false));
- rtcout.println(rtcout.INFO, m_config.getProperty("openrtm.version"));
- rtcout.println(rtcout.INFO, "Copyright (C) 2003-2008");
- rtcout.println(rtcout.INFO, " Noriaki Ando");
- rtcout.println(rtcout.INFO, " Task-intelligence Research Group,");
- rtcout.println(rtcout.INFO, " Intelligent Systems Research Institute, AIST");
- rtcout.println(rtcout.INFO, "Manager starting.");
- rtcout.println(rtcout.INFO, "Starting local logging.");
+ rtcout.println(Logbuf.INFO, m_config.getProperty("openrtm.version"));
+ rtcout.println(Logbuf.INFO, "Copyright (C) 2003-2008");
+ rtcout.println(Logbuf.INFO, " Noriaki Ando");
+ rtcout.println(Logbuf.INFO, " Task-intelligence Research Group,");
+ rtcout.println(Logbuf.INFO,
+ " Intelligent Systems Research Institute, AIST");
+ rtcout.println(Logbuf.INFO, "Manager starting.");
+ rtcout.println(Logbuf.INFO, "Starting local logging.");
} else {
rtcout.setDisabled();
m_config.setProperty("logger.log_level","SILENT");
@@ -1523,10 +1941,11 @@
}
/**
- * <p>System Loggerの終了処理を行います。</p>
+ * {@.ja System Logger の終了処理。}
+ * {@.en System Logger finalization}
*/
protected void shutdownLogger() {
- rtcout.println(rtcout.TRACE, "Manager.shutdownLogger()");
+ rtcout.println(Logbuf.TRACE, "Manager.shutdownLogger()");
}
/**
@@ -1542,7 +1961,7 @@
*/
protected boolean initORB() {
- rtcout.println(rtcout.TRACE, "Manager.initORB()");
+ rtcout.println(Logbuf.TRACE, "Manager.initORB()");
// Initialize ORB
try {
@@ -1559,7 +1978,7 @@
Object obj = m_pORB.resolve_initial_references("RootPOA");
m_pPOA = POAHelper.narrow(obj);
if (m_pPOA == null) {
- rtcout.println(rtcout.ERROR, "Could not resolve RootPOA.");
+ rtcout.println(Logbuf.ERROR, "Could not resolve RootPOA.");
return false;
}
@@ -1569,9 +1988,9 @@
m_objManager = new CorbaObjectManager(m_pORB, m_pPOA);
} catch (Exception ex) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Exception: Caught unknown Exception in Manager.initORB().");
- rtcout.println(rtcout.DEBUG, ex.getMessage());
+ rtcout.println(Logbuf.DEBUG, ex.getMessage());
return false;
}
@@ -1594,10 +2013,10 @@
protected String createORBOptions() {
String opt = m_config.getProperty("corba.args");
- rtcout.println(rtcout.DEBUG, "corba.args: "+opt);
+ rtcout.println(Logbuf.DEBUG, "corba.args: "+opt);
String dumpString = new String();
dumpString = m_config._dump(dumpString, m_config, 0);
- rtcout.println(rtcout.DEBUG, dumpString);
+ rtcout.println(Logbuf.DEBUG, dumpString);
Vector<String> endpoints = new Vector<String>();
@@ -1610,7 +2029,7 @@
Properties config = getConfig();
String name = config.getProperty("manager.name");
String mgrloc = "corbaloc:iiop:1.2@"+mm+"/"+name;
- rtcout.println(rtcout.DEBUG, "corbaloc: "+mgrloc);
+ rtcout.println(Logbuf.DEBUG, "corbaloc: "+mgrloc);
opt = opt + " -ORBInitRef manager=" + mgrloc +" ";
}
@@ -1618,7 +2037,7 @@
createORBEndpoints(endpoints);
createORBEndpointOption(opt, endpoints);
*/
- rtcout.println(rtcout.PARANOID, "ORB options: "+opt);
+ rtcout.println(Logbuf.PARANOID, "ORB options: "+opt);
return opt;
}
@@ -1637,7 +2056,7 @@
protected void createORBEndpoints(Vector<String> endpoints) {
// If this process has master manager,
// master manager's endpoint inserted at the top of endpoints
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"manager.is_master: "+m_config.getProperty("manager.is_master"));
/* zxc
@@ -1669,11 +2088,11 @@
protected void createORBEndpointOption(String opt,
Vector<String> endpoints) {
String corba = m_config.getProperty("corba.id");
- rtcout.println(rtcout.DEBUG, "corba.id: "+corba);
+ rtcout.println(Logbuf.DEBUG, "corba.id: "+corba);
for (int i=0; i < endpoints.size(); ++i) {
String endpoint = endpoints.elementAt(i);
- rtcout.println(rtcout.DEBUG, "Endpoint is : "+endpoint);
+ rtcout.println(Logbuf.DEBUG, "Endpoint is : "+endpoint);
if (endpoint.indexOf(":") == -1) {
endpoint += ":";
}
@@ -1713,7 +2132,7 @@
if( !endPointInfo[0].equals("") ) {
}
else{
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Host of corba.endpoints is illegal." +endPointInfo[0]);
return;
}
@@ -1723,7 +2142,7 @@
port = (short)Integer.parseInt(endPointInfo[1]);
}
catch(Exception ex){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Port of corba.endpoints is illegal." +endPointInfo[1]);
}
}
@@ -1751,7 +2170,7 @@
result.put("com.sun.CORBA.ORBServerPort", endPointInfo[1]);
}
catch(Exception ex){
- rtcout.println(rtcout.WARN, ""+endPointInfo[1]);
+ rtcout.println(Logbuf.WARN, ""+endPointInfo[1]);
}
}
}
@@ -1859,7 +2278,7 @@
}
/**
- * {@.en Checks that the string is IPaddress. }
+ * {@.en Checks that the string is IPaddress.}
*/
private boolean isIpAddressFormat(String string){
java.util.regex.Pattern pattern
@@ -1870,43 +2289,53 @@
}
/**
- * <p>ORBの終了処理を行います。</p>
+ * {@.ja ORB の終了処理。}
+ * {@.en ORB finalization}
+ *
+ * <p>
+ * {@.ja ORB の終了処理を実行する。
+ * 実行待ちの処理が存在する場合には、その処理が終了するまで待つ。
+ * 実際の終了処理では、POA Managerを非活性化し、 ORB のシャットダウンを実行
+ * する。}
+ * {@.en Finalize ORB .
+ * When the waiting process exists, wait until it completes.
+ * In actual finalization, deactivate POA Manager and then shutdown of ORB.}
*/
protected void shutdownORB() {
- rtcout.println(rtcout.TRACE, "Manager.shutdownORB()");
+ rtcout.println(Logbuf.TRACE, "Manager.shutdownORB()");
try {
while (m_pORB.work_pending()) {
- rtcout.println(rtcout.PARANOID, "Pending work still exists.");
+ rtcout.println(Logbuf.PARANOID, "Pending work still exists.");
if (m_pORB.work_pending()) {
m_pORB.perform_work();
}
}
} catch (Exception e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught unknown Exception in Manager.shutdownORB().");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught unknown Exception in Manager.shutdownORB().");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
}
- rtcout.println(rtcout.DEBUG, "No pending works of ORB. Shutting down POA and ORB.");
+ rtcout.println(Logbuf.DEBUG, "No pending works of ORB. Shutting down POA and ORB.");
if (m_pPOA != null) {
try {
if (m_pPOAManager != null) {
m_pPOAManager.deactivate(false, true);
- rtcout.println(rtcout.DEBUG, "POA Manager was deactivated.");
+ rtcout.println(Logbuf.DEBUG, "POA Manager was deactivated.");
}
m_pPOA = null;
-// rtcout.println(rtcout.DEBUG, "POA was destroid.");
+// rtcout.println(Logbuf.DEBUG, "POA was destroid.");
} catch (SystemException ex) {
- rtcout.println(rtcout.ERROR, "Caught SystemException during root POA destruction");
+ rtcout.println(Logbuf.ERROR, "Caught SystemException during root POA destruction");
} catch (Exception ex) {
- rtcout.println(rtcout.ERROR, "Caught unknown exception during POA destruction.");
+ rtcout.println(Logbuf.ERROR, "Caught unknown exception during POA destruction.");
}
}
@@ -1914,28 +2343,51 @@
try {
m_pORB.shutdown(true);
- rtcout.println(rtcout.DEBUG, "ORB was shutdown.");
- rtcout.println(rtcout.DEBUG, "ORB was destroied.");
+ rtcout.println(Logbuf.DEBUG, "ORB was shutdown.");
+ rtcout.println(Logbuf.DEBUG, "ORB was destroied.");
m_pORB.destroy();
m_pORB = null;
ORBUtil.clearOrb();
} catch (SystemException ex) {
- rtcout.println(rtcout.ERROR, "Caught SystemException during ORB shutdown");
+ rtcout.println(Logbuf.ERROR, "Caught SystemException during ORB shutdown");
} catch (Exception ex) {
- rtcout.println(rtcout.ERROR, "Caught unknown exception during ORB shutdown.");
+ rtcout.println(Logbuf.ERROR, "Caught unknown exception during ORB shutdown.");
}
}
}
/**
- * <p>NamingManagerを初期化します。</p>
+ * {@.ja NamingManager の初期化。}
+ * {@.en NamingManager initialization}
+ *
+ * <p>
+ * {@.ja NamingManager の初期化処理を実行する。
+ * ただし、NamingManager を使用しないようにプロパティ情報に設定されている
+ * 場合には何もしない。
+ * NamingManager を使用する場合、プロパティ情報に設定されている
+ * デフォルト NamingServer を登録する。
+ * また、定期的に情報を更新するように設定されている場合には、指定された周期
+ * で自動更新を行うためのタイマを起動するとともに、更新用メソッドをタイマに
+ * 登録する。}
+ * {@.en Initialize NamingManager .
+ * However, operate nothing, if it is set to property that NamingManager
+ * is not used.
+ * Register default NamingServer that is set to property information,
+ * when NamingManager is used.
+ * Also, launch a timer that updates information automatically at specified
+ * cycle and register the method for the update to the timer, when it is set
+ * to update it reguraly.}
+ *
+ * @return
+ * {@.ja 初期化処理結果(初期化成功:true、初期化失敗:false)}
+ * {@.en Initialization result (Successful:true, Failed:false)}
*/
protected boolean initNaming() {
- rtcout.println(rtcout.TRACE, "Manager.initNaming()");
+ rtcout.println(Logbuf.TRACE, "Manager.initNaming()");
m_namingManager = new NamingManager(this);
@@ -1951,7 +2403,7 @@
String names[] = m_config.getProperty(meth[i] + ".nameservers").split(",");
for (int j = 0; j < names.length; ++j) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"Register Naming Server: " + meth[i] + " " + names[j]);
String[] nameServer = names[j].split(":");
@@ -1984,21 +2436,36 @@
}
/**
- * <p>NamingManagerの終了処理を行います。</p>
+ * {@.ja NamingManager の終了処理。}
+ * {@.en NamingManager finalization}
+ *
+ * <p>
+ * {@.ja NamingManager を終了する。
+ * 登録されている全要素をアンバインドし、終了する。}
+ * {@.en Finalize NamingManager.
+ * Unbind all registered elements and shutdown them.}
*/
protected void shutdownNaming() {
- rtcout.println(rtcout.TRACE, "Manager.shutdownNaming()");
+ rtcout.println(Logbuf.TRACE, "Manager.shutdownNaming()");
m_namingManager.unbindAll();
}
/**
- * <p>ネーミングサービスに登録されているコンポーネントの終了処理を行います。</p>
+ * {@.ja NamingManager に登録されている RTコンポーネントの終了処理。}
+ * {@.en NamingManager finalization}
+ *
+ * <p>
+ * {@.ja NamingManager に登録されているRTコンポーネントのリストを取得し、
+ * 全コンポーネントを終了する。}
+ * {@.en Get a list of RT-Components that have been registered
+ * to NamingManager,
+ * and shutdown all components.}
*/
protected void shutdownComponents() {
- rtcout.println(rtcout.TRACE, "Manager.shutdownComponents()");
+ rtcout.println(Logbuf.TRACE, "Manager.shutdownComponents()");
Vector<RTObject_impl> comps = m_namingManager.getObjects();
for (int i=0, len=comps.size(); i < len; ++i) {
@@ -2019,14 +2486,14 @@
m_pPOA.deactivate_object(m_pPOA.servant_to_id(m_ecs.elementAt(i)));
} catch (Exception e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught unknown Exception in Manager.shutdownComponents().");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, "Exception: Caught unknown Exception in Manager.shutdownComponents().");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
}
}
}
/**
- * {@.ja RTコンポーネントのコンフィギュレーション処理}
+ * {@.ja RTコンポーネントのコンフィギュレーション処理。}
* {@.en Configure RT-Component}
*
* <p>
@@ -2068,16 +2535,16 @@
name_prop.load(conff);
} catch (FileNotFoundException e) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Exception: Caught FileNotFoundException"
+" in Manager.configureComponent() name_conf.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
} catch (Exception e) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Exception: Caught unknown"
+" in Manager.configureComponent() name_conf.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
}
}
@@ -2090,17 +2557,17 @@
type_prop.load(conff);
} catch (FileNotFoundException e) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Exception: Caught FileNotFoundException"
+" in Manager.configureComponent() type_conf.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
e.printStackTrace();
} catch (Exception e) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Exception: Caught unknown Exception"
+" in Manager.configureComponent() type_conf.");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
e.printStackTrace();
}
}
@@ -2128,13 +2595,24 @@
}
/**
- * <p>ExecutionContextを初期化します。</p>
- *
- * @return 正常に初期化できた場合はtrueを、さもなくばfalseを返します。
+ * {@.ja ExecutionContextManager の初期化。}
+ * {@.en ExecutionContextManager initialization}
+ *
+ * <p>
+ * {@.ja 使用する各 ExecutionContext の初期化処理を実行し、
+ * 各 ExecutionContext
+ * 生成用 Factory を ExecutionContextManager に登録する。}
+ * {@.en Initialize each ExecutionContext that is used, and register each
+ * ExecutionContext creation Factory to ExecutionContextManager.}
+ *
+ * @return
+ * {@.ja 正常に初期化できた場合はtrueを、さもなくばfalseを返す。}
+ * {@.en ExecutionContextManager initialization result
+ * (Successful:true, Failed:false)}
*/
protected boolean initExecContext() {
- rtcout.println(rtcout.TRACE, "Manager.initExecContext()");
+ rtcout.println(Logbuf.TRACE, "Manager.initExecContext()");
PeriodicExecutionContext.PeriodicExecutionContextInit(this);
ExtTrigExecutionContext.ExtTrigExecutionContextInit(this);
@@ -2144,30 +2622,58 @@
}
/**
- * <p> intiComposite </p>
+ * {@.ja PeriodicECSharedComposite の初期化。}
+ * {@.en PeriodicECSharedComposite initialization}
*
- * @return boolan
+ * @return
+ * {@.ja PeriodicECSharedComposite 初期化処理実行結果}
+ * (初期化成功:true、初期化失敗:false)}
+ * {@.en PeriodicECSharedComposite initialization result
+ * (Successful:true, Failed:false)}
*/
protected boolean initComposite() {
- rtcout.println(rtcout.TRACE, "Manager.initComposite()");
+ rtcout.println(Logbuf.TRACE, "Manager.initComposite()");
PeriodicECSharedComposite.PeriodicECSharedCompositeInit(this);
return true;
}
/**
- * <p> intiFactories </p>
+ * {@.ja ファクトリの初期化。}
+ * {@.en Factories initialization}
*
- * @return boolan
+ * <p>
+ * {@.ja バッファ、スレッド、パブリッシャ、プロバイダ、コンシューマの
+ * ファクトリを初期化する。}
+ * {@.en Initialize buffer factories, thread factories,
+ * publisher factories,
+ * provider factories, and consumer factories.}
+ *
+ * @return
+ * {@.ja ファクトリ初期化処理実行結果
+ * (初期化成功:true、初期化失敗:false)}
+ * {@.en PeriodicECSharedComposite initialization result
+ * (Successful:true, Failed:false)}
*/
protected boolean initFactories() {
- rtcout.println(rtcout.TRACE, "Manager.initFactories()");
+ rtcout.println(Logbuf.TRACE, "Manager.initFactories()");
FactoryInit.init();
return true;
}
/**
- * <p>Timerを初期化します。</p>
+ * {@.ja Timer の初期化。}
+ * {@.en Timer initialization}
+ *
+ * <p>
+ * {@.ja 使用する各 Timer の初期化処理を実行する。
+ * (現状の実装では何もしない)}
+ * {@.en Initialize each Timer that is used.
+ * (In current implementation, nothing is done.)}
+ *
+ * @return
+ * {@.ja Timer 初期化処理実行結果(初期化成功:true、初期化失敗:false)}
+ * {@.en Timer Initialization result (Successful:true, Failed:false)}
*/
protected boolean initTimer() {
return true;
@@ -2193,9 +2699,12 @@
}
/**
- * <p> bindManagerServant </p>
+ * {@.ja ManagerServantをバインドする。}
+ * {@.en Binds ManagerServant.}
*
- * @return boolean
+ * @return
+ * {@.ja 実行結果(初期化成功:true、初期化失敗:false)}
+ * {@.en Result (Successful:true, Failed:false)}
*
*/
protected boolean bindManagerServant() {
@@ -2205,7 +2714,7 @@
return true;
}
if( m_mgrservant == null) {
- rtcout.println(rtcout.ERROR, "ManagerServant is not created.");
+ rtcout.println(Logbuf.ERROR, "ManagerServant is not created.");
return false;
}
@@ -2258,21 +2767,36 @@
}
/**
- * ManagerServant
+ * {@.ja ManagerServant オブジェクト}
+ * {@.en The object to the ManagerServant}
*/
ManagerServant m_mgrservant;
/**
- * <p>プロパティファイルを読み込んで、指定されたPropertiesオブジェクトに設定します。</p>
- *
- * @param properties 設定対象のPropertiesオブジェクト
- * @param fileName プロパティファイル名
- * @return 正常に設定できた場合はtrueを、さもなくばfalseを返します。
+ * {@.ja プロパティ情報のマージ。}
+ * {@.en Merge property information}
+ *
+ * <p>
+ * {@.ja 指定されたファイル内に設定されているプロパティ情報をロードし、
+ * 既存の設定済みプロパティとマージする。}
+ * {@.en Load property information that is configured in the specified file,
+ * and merge existing properties that has been configured.}
+ *
+ * @param properties
+ * {@.ja 設定対象のPropertiesオブジェクト}
+ * {@.en Target properties for the merge}
+ * @param fileName
+ * {@.ja プロパティファイル名}
+ * {@.en File name that property information is described}
+ * @return
+ * {@.ja 正常に設定できた場合はtrueを、さもなくばfalseを返す。}
+ * {@.en Merge result (Successful:true, Failed:false)}
+ *
*/
protected boolean mergeProperty(Properties properties, final String fileName) {
if (fileName == null) {
- rtcout.println(rtcout.ERROR, "Invalid configuration file name.");
+ rtcout.println(Logbuf.ERROR, "Invalid configuration file name.");
return false;
}
@@ -2287,13 +2811,15 @@
return true;
} catch (FileNotFoundException e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught FileNotFoundException in Manager.mergeProperty().");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG,
+ "Exception: Caught FileNotFoundException in Manager.mergeProperty().");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
e.printStackTrace();
} catch (Exception e) {
- rtcout.println(rtcout.DEBUG, "Exception: Caught unknown Exception in Manager.mergeProperty().");
- rtcout.println(rtcout.DEBUG, e.getMessage());
+ rtcout.println(Logbuf.DEBUG,
+ "Exception: Caught unknown Exception in Manager.mergeProperty().");
+ rtcout.println(Logbuf.DEBUG, e.getMessage());
e.printStackTrace();
}
}
@@ -2302,11 +2828,48 @@
}
/**
- * <p>指定されたPropertiesオブジェクトの内容を、指定された書式に従って文字列として出力します。</p>
- *
- * @param namingFormat 書式指定
- * @param properties 出力対象となるPropertiesオブジェクト
- * @return Propertiesオブジェクトの内容を文字列出力したもの
+ * {@.ja NamingServer に登録する際の登録情報を組み立てる。}
+ * {@.en Construct registration information when registering to
+ * Naming server}
+ *
+ * <p>
+ * {@.ja 指定された書式とプロパティ情報を基に NameServer に登録する際の
+ * 情報を組み立てる。
+ * 各書式指定用文字の意味は以下のとおり<ul>
+ * <li> % : コンテキストの区切り
+ * <li> n : インスタンス名称
+ * <li> t : 型名
+ * <li> m : 型名
+ * <li> v : バージョン
+ * <li> V : ベンダー
+ * <li> c : カテゴリ
+ * <li> h : ホスト名
+ * <li> M : マネージャ名
+ * <li> p : プロセスID</il></ul>}
+ * {@.en Construct information when registering to NameServer
+ * based on specified
+ * format and property information.
+ * Each format specification character means as follows:<ul>
+ * <li> % : Break of Context
+ * <li> n : Instance's name
+ * <li> t : Type name
+ * <li> m : Type name
+ * <li> v : Version
+ * <li> V : Vender
+ * <li> c : Category
+ * <li> h : Host name
+ * <li> M : Manager name
+ * <li> p : Process ID </li></ul>}
+ *
+ * @param namingFormat
+ * {@.ja 書式指定}
+ * {@.en Format specification for NamingService registration}
+ * @param properties
+ * {@.ja 出力対象となるPropertiesオブジェクト}
+ * {@.en Property information that is used}
+ * @return
+ * {@.ja Propertiesオブジェクトの内容を文字列出力したもの}
+ * {@.en Specification format conversion result}
*/
protected String formatString(final String namingFormat, Properties properties) {
@@ -2378,143 +2941,292 @@
}
/**
- * <p>唯一のManagerインスタンスです。</p>
+ * {@.ja 唯一のManagerインスタンス}
+ * {@.en This field is the only Manager instance.}
*/
protected static Manager manager;
/**
- * <p>Manager用ミューテックス変数です。</p>
+ * {@.ja Manager用ミューテックス変数}
+ * {@.en This field is a mutex variable for Manager.}
*/
protected static String manager_mutex = new String();
/**
- * <p>ORB</p>
+ * {@.ja ORB}
+ * {@.en ORB}
*/
protected ORB m_pORB;
/**
- * <p>POA</p>
+ * {@.ja POA}
+ * {@.en POA}
*/
protected POA m_pPOA;
/**
- * <p>POAManager</p>
+ * {@.ja POAManager}
+ * {@.en POAManager}
*/
protected POAManager m_pPOAManager;
/**
- * <p>ユーザコンポーネント初期化プロシジャオブジェクト</p>
+ * {@.ja ユーザコンポーネント初期化プロシジャオブジェクト}
+ * {@.en User component initialization procedure object}
*/
protected ModuleInitProc m_initProc;
/**
- * <p>Managerコンフィギュレーション</p>
+ * {@.ja Managerコンフィギュレーション}
+ * {@.en Managaer's configuration Properties}
*/
protected Properties m_config = new Properties();
/**
- * <p>Module Manager</p>
+ * {@.ja Module Manager}
+ * {@.en Module Manager}
*/
protected ModuleManager m_module;
/**
- * <p>Naming Manager</p>
+ * {@.ja Naming Manager}
+ * {@.en Naming Manager}
*/
protected NamingManager m_namingManager;
/**
- * <p>CORBA Object Manager</p>
+ * {@.ja CORBA Object Manager}
+ * {@.en CORBA Object Manager}
*/
protected CorbaObjectManager m_objManager;
/**
- * <p>Timer</p>
+ * {@.ja Timer Object}
+ * {@.en Timer Object}
*/
protected Timer m_timer;
/**
- * <p>ロガーストリーム</p>
+ * {@.ja ロガーストリーム}
+ * {@.en Logger stream}
*/
protected Logbuf rtcout;
/**
- * <p>Object検索用ヘルパークラスです。</p>
+ * {@.ja Object検索用ヘルパークラス}
+ * {@.en Helper class to find Object}
*/
protected class InstanceName implements equalFunctor {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param comp
+ * {@.ja Object}
+ * {@.en Object}
+ */
public InstanceName(RTObject_impl comp) {
m_name = comp.getInstanceName();
}
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * @param name
+ * {@.ja インスタンス名}
+ * {@.en Instance name}
+ *
+ */
public InstanceName(final String name) {
m_name = name;
}
+ /**
+ * {@.ja Object検索。}
+ * {@.en Finds Object}
+ *
+ * <p>
+ * {@.ja 指定されたObjectを検索する}
+ * {@.en The specified object is found.}
+ *
+ * @param comp
+ * {@.ja Object}
+ * {@.en Object}
+ *
+ * @return
+ * {@.ja 存在する場合はtrue}
+ * {@.en Returns true when existing.}
+ *
+ */
public boolean equalof(java.lang.Object comp) {
return m_name.equals(((RTObject_impl)comp).getInstanceName());
}
+ /**
+ * {@.ja インスタンス名}
+ * {@.en Instance name}
+ */
public String m_name;
}
/**
- * <p>Component Manager</p>
+ * {@.ja Component Manager}
+ * {@.en Component Manager}
*/
protected ObjectManager<String, RTObject_impl> m_compManager = new ObjectManager<String, RTObject_impl>();
/**
- * <p>Factory検索用ヘルパークラスです。</p>
+ * {@.ja Factory検索用ヘルパークラス}
+ * {@.en Helper class to find Factory}
*/
protected class FactoryPredicate implements equalFunctor {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param name
+ * {@.ja 実装 ID}
+ * {@.en implementation id}
+ */
public FactoryPredicate(final String name) {
m_name = name;
}
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param factory
+ * {@.ja ファクトリオブジェクト}
+ * {@.en Faactory Object}
+ */
public FactoryPredicate(FactoryBase factory) {
m_name = factory.profile().getProperty("implementation_id");
}
+ /**
+ * {@.ja Factory検索。}
+ * {@.en Finds Factory}
+ *
+ * <p>
+ * {@.ja 指定されたFactoryを検索する}
+ * {@.en The specified factory is found.}
+ *
+ * @param factory
+ * {@.ja ファクトリオブジェクト}
+ * {@.en Faactory Object}
+ *
+ * @return
+ * {@.ja 存在する場合はtrue}
+ * {@.en Returns true when existing.}
+ *
+ */
public boolean equalof(java.lang.Object factory) {
return m_name.equals(((FactoryBase)factory).profile().getProperty("implementation_id"));
}
-
+ /**
+ * {@.ja 実装 ID}
+ * {@.en implementation id}
+ */
public String m_name;
}
/**
- * <p>Component Factory Manager</p>
+ * {@.ja Component Factory Manager}
+ * {@.en Component Factory Manager}
*/
protected ObjectManager<String, FactoryBase> m_factory = new ObjectManager<String, FactoryBase>();
/**
- * <p>ECFactory検索用ヘルパークラスです。</p>
+ * {@.ja ECFactory検索用ヘルパークラス}
+ * {@.en Helper class to find ECFactory}
*/
class ECFactoryPredicate implements equalFunctor {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param name
+ * {@.ja ExecutionContextクラス名}
+ * {@.en Class name of ExecutionContext}
+ */
public ECFactoryPredicate(final String name) {
m_name = name;
}
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * @param factory
+ * {@.ja ECファクトリオブジェクト}
+ * {@.en ECFaactory Object}
+ *
+ */
public ECFactoryPredicate(ECFactoryBase factory) {
m_name = factory.name();
}
+ /**
+ * {@.ja Factory検索。}
+ * {@.en Finds Factory}
+ *
+ * <p>
+ * {@.ja 指定されたECFactoryを検索する}
+ * {@.en The specified ECFactory is found.}
+ *
+ * @param factory
+ * {@.ja ECファクトリオブジェクト}
+ * {@.en ECFaactory Object}
+ *
+ * @return
+ * {@.ja 存在する場合はtrue}
+ * {@.en Returns true when existing.}
+ *
+ */
public boolean equalof(java.lang.Object factory) {
return m_name.equals(((ECFactoryBase)factory).name());
}
+ /**
+ * {@.ja ExecutionContextクラス名}
+ * {@.en Class name of ExecutionContext}
+ */
public String m_name;
}
/**
- * <p>ExecutionContext Factory</p>
+ * {@.ja ExecutionContext Factory}
+ * {@.en ExecutionContext Factory}
*/
protected ObjectManager<String, java.lang.Object> m_ecfactory = new ObjectManager<String, java.lang.Object>();
/**
- * <p>ExecutionContext</p>
+ * {@.ja ExecutionContext}
+ * {@.en ExecutionContext}
*/
protected Vector<ExecutionContextBase> m_ecs = new Vector<ExecutionContextBase>();
/**
- * <p>ORB実行用ヘルパークラスです。</p>
+ * {@.ja ORB実行用ヘルパークラス}
+ * {@.en ORB exrcution helper class}
*/
protected class OrbRunner implements Runnable {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * @param orb
+ * {@.ja ORB}
+ * {@.en ORB}
+ */
public OrbRunner(ORB orb) {
m_pORB = orb;
// this.open("");
}
+ /**
+ * {@.ja ORB 活性化処理}
+ * {@.en ORB activation processing}
+ *
+ * @param args
+ * {@.ja 活性化時引数}
+ * {@.en ORB activation processing}
+ *
+ * @return
+ * {@.ja 活性化結果}
+ * {@.en Activation result}
+ */
public int open(String args) {
// activate();
Thread t = new Thread(this);
@@ -2522,16 +3234,40 @@
return 0;
}
+ /**
+ * {@.ja ORB 開始処理}
+ * {@.en ORB start processing}
+ *
+ * @return
+ * {@.ja 開始処理結果}
+ * {@.en Starting result}
+ */
public int svc() {
m_pORB.run();
// Manager.instance().shutdown();
return 0;
}
+ /**
+ * {@.ja ORB 終了処理}
+ * {@.en ORB close processing}
+ *
+ * @param flags
+ * {@.ja 終了処理フラグ}
+ * {@.en Flag of close processing}
+ *
+ * @return
+ * {@.ja 終了処理結果}
+ * {@.en Close result}
+ */
public int close(long flags) {
return 0;
}
+ /**
+ * {@.ja スレッド実行}
+ * {@.en Thread execution}
+ */
public void run() {
this.svc();
}
@@ -2539,23 +3275,54 @@
private ORB m_pORB;
}
/**
- * <p>ORB Runner</p>
+ * {@.ja ORB Runner}
+ * {@.en ORB Runner}
*/
protected OrbRunner m_runner;
/**
- * <p>終了処理用ヘルパークラスです。</p>
+ * {@.ja 終了処理用ヘルパークラス}
+ * {@.en ORB termination helper class.}
*/
protected class Terminator implements Runnable {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param manager
+ * {@.ja マネージャ・オブジェクト}
+ * {@.en Manager object}
+ */
public Terminator(Manager manager) {
m_manager = manager;
}
+ /**
+ * {@.ja 終了処理。}
+ * {@.en Termination processing}
+ *
+ * <p>
+ * {@.ja ORB,マネージャ終了処理を開始する。}
+ * {@.en Start ORB and manager's termination processing.}
+ *
+ */
public void terminate() {
this.open("");
}
+ /**
+ * {@.ja 終了処理活性化処理}
+ * {@.en Termination processing activation}
+ *
+ * @param args
+ * {@.ja 活性化時引数}
+ * {@.en Activation argument}
+ *
+ * @return
+ * {@.ja 活性化結果}
+ * {@.en Activation result}
+ */
public int open(String args) {
// activate();
Thread t = new Thread(this);
@@ -2563,36 +3330,81 @@
return 0;
}
+ /**
+ * {@.ja ORB,マネージャ終了処理}
+ * {@.en ORB and manager's termination processing}
+ *
+ * @return
+ * {@.ja 終了処理結果}
+ * {@.en Termination result}
+ */
public int svc() {
Manager.instance().shutdown();
return 0;
}
+ /**
+ * {@.ja スレッド実行}
+ * {@.en Thread execution}
+ */
public void run() {
this.svc();
}
+ /**
+ * {@.ja マネージャ・オブジェクト}
+ * {@.en Manager object}
+ */
public Manager m_manager;
}
/**
- * <p>Terminator</p>
+ * {@.ja Terminator}
+ * {@.en Terminator}
*/
protected Terminator m_terminator;
/**
- * <p>Terminator用カウンタ</p>
- */
+ * {@.ja Terminator用カウンタ}
+ * {@.en Counter for Terminator}
+ * */
protected int m_terminate_waiting;
/**
*
- * {@.ja コンフィギュレーションセット検索用ヘルパークラス}
+ * {@.ja プロパティ検索用ヘルパークラス}
+ * {@.en Helper class to find Properties}
*
*/
private class find_conf {
private Properties m_prop;
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en constructor}
+ *
+ * @param porp
+ * {@.ja プロパティ}
+ * {@.en Properties}
+ *
+ */
public find_conf(final Properties prop) {
m_prop = prop;
}
+ /**
+ * {@.ja プロパティ検索。}
+ * {@.en Finds Properties}
+ *
+ * <p>
+ * {@.ja 指定されたプロパティを検索する}
+ * {@.en The specified Properties is found.}
+ *
+ * @param porp
+ * {@.ja プロパティ}
+ * {@.en Properties}
+ *
+ * @return
+ * {@.ja 存在する場合はtrue}
+ * {@.en Returns true when existing.}
+ *
+ */
public boolean equalof(Properties prop) {
String str = m_prop.getProperty("implementation_id");
if (!str.equals(prop.getProperty("implementation_id"))) {
@@ -2616,9 +3428,19 @@
return true;
}
}
+ /**
+ * {@.ja コンポーネント削除用クラス}
+ * {@.en Class}
+ *
+ */
protected class Finalized {
String mutex = new String();
Vector<RTObject_impl> comps = new Vector<RTObject_impl>();
};
+ /**
+ * {@.ja コンポーネント削除用リスト}
+ * {@.en List for component deletion}
+ *
+ */
Finalized m_finalized = new Finalized();
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerConfig.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerConfig.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerConfig.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -17,10 +17,13 @@
import org.apache.commons.cli.ParseException;
/**
- * <p>Managerのコンフィグレーションを表現するクラスです。
- * コマンドライン引数や環境変数、設定ファイルを読み込み・解析してコンフィグレーション情報を生成します。</p>
- *
- * <p>各設定の優先度は次の通りです。
+ * {@.ja Managerのコンフィグレーションを表現するクラスです。}
+ * {@.en Modify Manager's configuration.}
+ *
+ * <p>
+ * {@.ja コマンドライン引数や環境変数、設定ファイルを読み込み・解析して
+ * コンフィグレーション情報を生成します。
+ * 各設定の優先度は次の通りです。
* <ol>
* <li>コマンドラインオプション -f</li>
* <li>環境変数 RTC_MANAGER_CONFIG</li>
@@ -31,15 +34,34 @@
* <li>デフォルト設定ファイル /usr/local/etc/rtc/rtc.conf</li>
* <li>埋め込みコンフィギュレーション値</li>
* </ol>
- * </p>
- *
- * <p>ただし、コマンドラインオプション -d が指定された場合は、
- * (たとえ -f で設定ファイルを指定しても)埋め込みコンフィグレーション値を優先的に使用します。</p>
+ * ただし、コマンドラインオプション -d が指定された場合は、
+ * (たとえ -f で設定ファイルを指定しても)埋め込みコンフィグレーション値を
+ * 優先的に使用します。}
+ * {@.en This class receives the command line arguments and will be
+ * instantiated.
+ * Set property information of Manager with the configuration file specified
+ * by the command line argument or the environment variable etc.
+ *
+ * The priorities of each configuration are as follows:
+ * <OL>
+ * <LI>Command option "-f"
+ * <LI>Environment variable "RTC_MANAGER_CONFIG"
+ * <LI>Default configuration file "./rtc.conf"
+ * <LI>Default configuration file "/etc/rtc.conf"
+ * <LI>Default configuration file "/etc/rtc/rtc.conf"
+ * <LI>Default configuration file "/usr/local/etc/rtc.conf"
+ * <LI>Default configuration file "/usr/local/etc/rtc/rtc.conf"
+ * <LI>Embedded configuration value
+ *</OL>
+ * If the command option "-d" is specified (even if specify configuration file
+ * by "-f" option), the embedded configuration values will be used.}
+ *
*/
class ManagerConfig {
/**
- * <p>Managerのデフォルト・コンフィグレーションのファイル・パス</p>
+ * {@.ja Managerのデフォルト・コンフィグレーションのファイル・パス}
+ * {@.en The default configuration file path for manager}
*/
public static final String[] CONFIG_FILE_PATH = {
"./rtc.conf",
@@ -51,22 +73,32 @@
};
/**
- * <p>デフォルト・コンフィグレーションのファイル・パスを識別する環境変数です。</p>
+ * {@.ja デフォルト・コンフィグレーションのファイル・パスを識別する
+ * 環境変数です。}
+ * {@.en The environment variable to distinguish the default configuration
+ * file path}
*/
public static final String CONFIG_FILE_ENV = "RTC_MANAGER_CONFIG";
/**
- * <p>デフォルトコンストラクタです。
- * ManagerConfigオブジェクトを生成するのみであり、何も処理は行われません。</p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*/
public ManagerConfig() {
m_isMaster = false;
}
/**
- * <p>コンストラクタです。コマンドライン引数を受け取り、コンフィグレーション情報を構成します。</p>
- *
- * @param args コマンドライン引数
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * <p>
+ * {@.ja 与えられた引数によりコンフィギュレーション情報の初期化を行う。}
+ * {@.en Initialize configuration information by given arguments.}
+ *
+ * @param args
+ * {@.ja コマンドライン引数}
+ * {@.en The command line arguments}
*/
public ManagerConfig(String[] args) throws Exception {
m_isMaster = false;
@@ -74,18 +106,33 @@
}
/**
- * <p>初期化を行います。コマンドライン引数を受け取り、コンフィグレーション情報を構成します。</p>
+ * {@.ja 初期化を行います。}
+ * {@.en Initialization}
*
- * <p>コマンドラインオプションには、以下のものを使用できます。
+ * <p>
+ * {@.ja ココマンドライン引数を受け取り、
+ * コンフィグレーション情報を構成します。
+ * マンドラインオプションには、以下のものを使用できます。
* <ul>
* <li>-f filePath : コンフィグレーションファイルのパスを指定します。</li>
* <li>-l module : ロードするモジュールを指定します。(未実装)</li>
* <li>-o options : その他のオプションを指定します。(未実装)</li>
* <li>-d : デフォルトコンフィグレーションを使用します。(未実装)</li>
- * </ul>
- * </p>
+ * </ul>}
+ *
+ * {@.en Initialize with command line options. The following command options
+ * are available.
+ * <ul>
+ * <li>-f file : Specify the configuration file.
+ * <li>-l module : Specify modules to be loaded. (Not implemented)
+ * <li>-o options: Specify other options. (Not implemented)
+ * <li>-d : Use default static configuration. (Not implemented)
+ * </ul>}
+ *
+ * @param args
+ * {@.ja コマンドライン引数}
+ * {@.en The command line arguments}
*
- * @param args コマンドライン引数
*/
public void init(String[] args) throws Exception {
parseArgs(args);
@@ -136,7 +183,7 @@
}
/**
- * {@.ja コマンド引数をパースする}
+ * {@.ja コマンド引数をパースする。}
* {@.en Parse the command arguments}
*
* <p>
@@ -222,10 +269,14 @@
}
/**
- * <p>使用すべきコンフィグレーションファイルを検索して特定します。
- * すでに特定済みの場合は、そのファイルの存在有無のみをチェックします。</p>
+ * {@.ja Configuration file の検索。}
+ * {@.en Find the configuration file}
+ *
+ * <p>
+ * {@.ja 使用すべきコンフィグレーションファイルを検索して特定します。
+ * すでに特定済みの場合は、そのファイルの存在有無のみをチェックします。
*
- * <p>なお、次の順序でコンフィグレーションファイルを検索します。
+ * なお、次の順序でコンフィグレーションファイルを検索します。
* <ol>
* <li>コマンドラインオプション -f</li>
* <li>環境変数 RTC_MANAGER_CONFIG</li>
@@ -234,11 +285,36 @@
* <li>デフォルト設定ファイル /etc/rtc/rtc.conf</li>
* <li>デフォルト設定ファイル /usr/local/etc/rtc.conf</li>
* <li>デフォルト設定ファイル /usr/local/etc/rtc/rtc.conf</li>
- * </ol>
- * </p>
+ * </ol>}
+ * {@.en Find the configuration file and configure it.
+ * Confirm the file existence when the configuration file has
+ * already configured.
+ * The configuration file is retrieved in the following order.
+ * <ol>
+ * <li>The command line option -f</li>
+ * <li>The environment variable RTC_MANAGER_CONFIG</li>
+ * <li>Default configuration file ./rtc.conf</li>
+ * <li>Default configuration file /etc/rtc.conf</li>
+ * <li>Default configuration file /etc/rtc/rtc.conf</li>
+ * <li>Default configuration file /usr/local/etc/rtc.conf</li>
+ * <li>Default configuration file /usr/local/etc/rtc/rtc.conf</li>
+ * </ol>}
*
- * @return コンフィグレーションファイル未特定の場合 : 使用すべきコンフィグレーションファイルを検索・特定できた場合はtrueを、さもなくばfalseを返します。<br />
- * コンフィグレーションファイル特定済みの場合 : 特定済みのコンフィグレーションファイルが存在すればtrueを、さもなくばfalseを返します。
+ * @return
+ * {@.ja <ul>
+ * <li>コンフィグレーションファイル未特定の場合 :
+ * 使用すべきコンフィグレーションファイルを検索・特定できた場合は
+ * trueを、さもなくばfalseを返します。
+ * <li>コンフィグレーションファイル特定済みの場合 :
+ * 特定済みのコンフィグレーションファイルが存在すればtrueを、
+ * さもなくばfalseを返します。}
+ * {@.en <ul>
+ * <li>When the configuration file is the unspecific:
+ * True is returned when the configuration file can be retrieved and,
+ * otherwise, false is returned.
+ * <li>When the configuration file is a specific settlement:
+ * If the configuration file exists, true is returned and,
+ * otherwise, false is returned.}
*/
protected boolean findConfigFile() {
@@ -270,9 +346,36 @@
}
/**
- * <p>システム情報を、指定されたPropertiesオブジェクトに追加します。</p>
+ * {@.ja システム情報を設定する。}
+ * {@.en Set system information}
+ *
+ * <p>
+ * {@.ja システム情報を取得しプロパティにセットする。
+ * 設定されるキーは以下の通り。
+ * <ul>
+ * <li> manager.os.name : OS名
+ * <li> manager.os.release : OSリリース名
+ * <li> maanger.os.version : OSバージョン名
+ * <li> manager.os.arch : OSアーキテクチャ
+ * <li> manager.os.hostname: ホスト名
+ * <li> manager.pid : プロセスID
+ * </ul>}
+ * {@.en Get the following system info. and set them to Manager's
+ * properties.
+ * <ul>
+ * <li> manager.os.name : OS name
+ * <li> manager.os.release : OS release name
+ * <li> manager.os.version : OS version
+ * <li> manager.os.arch : OS architecture
+ * <li> manager.os.hostname: Hostname
+ * <li> manager.pid : process ID
+ * </ul>}
+ *
*
- * @param properties システム情報追加先のPropertiesオブジェクト
+ * @param properties
+ * {@.ja システム情報を設定したプロパティ}
+ * {@.en Properties to set system information}
+ *
*/
protected void setSystemInformation(Properties properties) {
@@ -319,22 +422,36 @@
}
/**
- * <p>ファイルの存在有無を判定します。</p>
- *
- * @param filePath ファイルパス
- * @return ファイルが存在する場合はtrueを、さもなくばfalseを返します。
+ * {@.ja ファイルの存在確認}
+ * {@.en Check the file existence}
+ *
+ * <p>
+ * {@.ja 指定されたファイルが存在するか確認する。}
+ * {@.en Confirm whether the specified file exists}
+ *
+ * @param filePath
+ * {@.ja ファイルパス}
+ * {@.en The target confirmation file}
+ *
+ * @return
+ * {@.ja 対象ファイル確認結果(存在する場合にtrue)}
+ * {@.en file existance confirmation (True if the file exists.)}
*/
protected boolean fileExist(String filePath) {
return (new File(filePath)).exists();
}
/**
- * <p>使用されるコンフィグレーションファイルのパス<p>
+ * {@.ja 使用されるコンフィグレーションファイルのパス}
+ * {@.en Manager's configuration file path}
*/
protected String m_configFile;
/**
- * <p> Manager master flag </p>
- * <p> true:master,false:slave </p>
+ * {@.ja Manager マスタフラグ}
+ * {@.en Manager master flag}
+ *
+ * {@.ja true:マスタ,false:スレーブ}
+ * {@.en true:master,false:slave}
*/
protected boolean m_isMaster;
/**
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerServant.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerServant.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ManagerServant.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,48 +1,50 @@
package jp.go.aist.rtm.RTC;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.ORBUtil;
+import jp.go.aist.rtm.RTC.util.POAUtil;
+import jp.go.aist.rtm.RTC.util.Properties;
+import jp.go.aist.rtm.RTC.util.StringUtil;
+import jp.go.aist.rtm.RTC.util.equalFunctor;
+
import org.omg.CORBA.ORB;
import org.omg.CORBA.Object;
-import org.omg.PortableServer.POA;
-import org.omg.PortableServer.POAHelper;
-import org.omg.PortableServer.Servant;
-
-import java.util.Vector;
-import java.util.List;
-import java.util.ArrayList;
-
-import RTM.ManagerPOA;
-import RTM.ManagerHelper;
-import RTM.ManagerProfile;
-import RTM.ModuleProfile;
-import RTM.ModuleProfileListHolder;
-
-import RTC.RTObject;
import RTC.ComponentProfile;
import RTC.ComponentProfileListHolder;
import RTC.RTCListHolder;
+import RTC.RTObject;
import RTC.ReturnCode_t;
-
+import RTM.ManagerHelper;
+import RTM.ManagerPOA;
+import RTM.ManagerProfile;
+import RTM.ModuleProfile;
import _SDOPackage.NVListHolder;
-import _SDOPackage.NameValue;
-import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.POAUtil;
-import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
-import jp.go.aist.rtm.RTC.util.ORBUtil;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.util.equalFunctor;
-import jp.go.aist.rtm.RTC.log.Logbuf;
-
-/**
- * <p> ManagerServant </p>
- */
+ /**
+ * {@.ja ManagerのCORBA化クラス}
+ * {@.en Manager CORBA class}
+ *
+ * <p>
+ * {@.ja ManagerをCORBAサーバント化し、外部からコンポーネントの生成・削除、
+ * システム状態の取得などが行える。}
+ * {@.en This class changes Manager to CORBA Servant.
+ * Generation/deletion of the component, to get the state of the system,
+ * etc. can be done from the outside.}
+ *
+ */
public class ManagerServant extends ManagerPOA {
/**
- * <p> Constructor </p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*/
public ManagerServant() {
rtcout = new Logbuf("ManagerServant");
@@ -53,7 +55,7 @@
if (StringUtil.toBool(config.getProperty("manager.is_master"),
"YES", "NO", true)) {
// this is master manager
- rtcout.println(rtcout.TRACE, "This manager is master.");
+ rtcout.println(Logbuf.TRACE, "This manager is master.");
try{
//Registers the reference
@@ -64,25 +66,25 @@
"manager", m_mgr.getPOA().servant_to_reference(this) );
}
catch(Exception ex){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Manager CORBA servant creation failed."+ex);
return ;
}
if (!createINSManager()) {
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Manager CORBA servant creation failed.");
return;
}
m_isMaster = true;
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Manager CORBA servant was successfully created.");
/*
{
String ior;
ior = m_mgr.getORB().object_to_string(m_objref);
-rtcout.println(rtcout.DEBUG,
+rtcout.println(Logbuf.DEBUG,
"Manager's IOR information: "+ior);
System.err.println("Manager's IOR information: "+ior);
}
@@ -90,12 +92,12 @@
return;
}
else { // manager is slave
- rtcout.println(rtcout.TRACE, "This manager is slave.");
+ rtcout.println(Logbuf.TRACE, "This manager is slave.");
try {
RTM.Manager owner;
owner = findManager(config.getProperty("corba.master_manager"));
if (owner == null) {
- rtcout.println(rtcout.INFO, "Master manager not found.");
+ rtcout.println(Logbuf.INFO, "Master manager not found.");
return;
}
@@ -110,7 +112,7 @@
"manager", m_mgr.getPOA().servant_to_reference(this) );
}
catch(Exception ex){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Manager CORBA servant creation failed."+ex);
return ;
}
@@ -118,7 +120,7 @@
if (!createINSManager()) {
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Manager CORBA servant creation failed.");
return;
}
@@ -128,7 +130,7 @@
{
String ior;
ior = m_mgr.getORB().object_to_string(m_objref);
-rtcout.println(rtcout.DEBUG,
+rtcout.println(Logbuf.DEBUG,
"Manager's IOR information: "+ior);
System.err.println("Manager's IOR information: "+ior);
}
@@ -136,7 +138,7 @@
return;
}
catch (Exception ex) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Unknown exception caught.");
}
}
@@ -144,10 +146,16 @@
}
/**
- * <p> _this </p>
+ * {@.ja CORBAオブジェクトの取得。}
+ * {@.en Gets CORBA object.}
*
- * @return RTM.Manager
- *
+ * <p>
+ * {@.ja CORBAオブジェクト参照を取得する。}
+ * {@.en Gets RTM.Manager object.}
+ *
+ * @return
+ * {@.ja CORBAオブジェクト}
+ * {@.en RTM.Manager object.}
*/
public RTM.Manager _this() {
if (this.m_objref == null) {
@@ -169,7 +177,7 @@
*/
public boolean createINSManager() {
- rtcout.println(rtcout.DEBUG, "createINSManager()");
+ rtcout.println(Logbuf.DEBUG, "createINSManager()");
try{
/*
//Registers the reference
@@ -181,7 +189,7 @@
*/
//
- rtcout.println(rtcout.DEBUG, "gets object.");
+ rtcout.println(Logbuf.DEBUG, "gets object.");
org.omg.CORBA.Object obj
= m_mgr.getORB().resolve_initial_references("manager");
this.m_objref = RTM.ManagerHelper.narrow(obj);
@@ -194,13 +202,13 @@
this.m_objref = ManagerHelper.narrow(ref);
String ior = m_mgr.getORB().object_to_string(m_objref);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Manager's IOR information:"+ior);
*/
}
catch(Exception ex){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Manager CORBA servant creation failed."+ex);
return false;
}
@@ -216,13 +224,13 @@
* {@.en Manager reference}
*/
public RTM.Manager findManager(final String host_port) {
- rtcout.println(rtcout.TRACE, "findManager(host_port = "+host_port+")");
+ rtcout.println(Logbuf.TRACE, "findManager(host_port = "+host_port+")");
try{
Properties config = m_mgr.getConfig();
String name = config.getProperty("manager.name");
String mgrloc = "corbaloc:iiop:1.2@"+host_port+"/"+name;
- rtcout.println(rtcout.DEBUG, "corbaloc: "+mgrloc);
+ rtcout.println(Logbuf.DEBUG, "corbaloc: "+mgrloc);
ORB orb = ORBUtil.getOrb();
Object mobj;
@@ -235,57 +243,72 @@
String ior;
ior = orb.object_to_string(mobj);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Manager's IOR information: "+ior);
return mgr;
}
catch(org.omg.CORBA.SystemException ex) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"CORBA SystemException caught (CORBA."+ex.toString()+")");
return (RTM.Manager)null;
}
catch (Exception ex) {
- rtcout.println(rtcout.DEBUG, "Unknown exception caught.");
+ rtcout.println(Logbuf.DEBUG, "Unknown exception caught.");
return (RTM.Manager)null;
}
}
/**
- * <p> load_module </p>
+ * {@.ja モジュールをロードする}
+ * {@.en Loading a module}
*
- * <p> Loading a module </p>
- * <p> This operation loads a specified loadable module and perform
- * initialization with the specified function. </p>
+ * <p>
+ * {@.ja 当該マネージャに指定されたモジュールをロードし、指定された初期化
+ * 関数で初期化を行う。}
+ * {@.en This operation loads a specified loadable module and perform
+ * initialization with the specified function.}
*
- * @param pathname A path to a loading module.
- * @param initfunc Module initialization function.
- * @return The return code.
+ * @param pathname
+ * {@.ja モジュールへのパス}
+ * {@.en A path to a loading module.}
+ * @param initfunc
+ * {@.ja モジュールの初期化関数}
+ * {@.en Module initialization function.}
+ * @return
+ * {@.ja リターンコード}
+ * {@.en The return code.}
*/
public RTC.ReturnCode_t load_module(final String pathname,
final String initfunc) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"ManagerServant.load_module("+pathname+", "+initfunc+")");
m_mgr.load(pathname, initfunc);
return ReturnCode_t.RTC_OK;
}
/**
- * <p> unload_module </p>
+ * {@.ja モジュールをアンロードする}
+ * {@.en Unloading a module}
*
- * <p> Unloading a module </p >
- * <p> This operation unloads a specified loadable module. </p >
- * @param pathname A path to a loading module.
- * @return The return code.
+ * <p>
+ * {@.ja 当該マネージャに指定されたモジュールをアンロードする。}
+ * {@.en This operation unloads a specified loadable module.}
+ * @param pathname
+ * {@.ja モジュールへのパス}
+ * {@.en A path to a loading module.}
+ * @return
+ * {@.ja リターンコード}
+ * {@.en The return code.}
*/
public RTC.ReturnCode_t unload_module(final String pathname) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"ManagerServant.unload_module("+pathname+")");
try {
m_mgr.unload(pathname);
} catch(Exception ex) {
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught.Not Found:"+pathname+" "+ex.toString());
}
return ReturnCode_t.RTC_OK;
@@ -305,7 +328,7 @@
*
*/
public RTM.ModuleProfile[] get_loadable_modules() {
- rtcout.println(rtcout.TRACE, "get_loadable_modules()");
+ rtcout.println(Logbuf.TRACE, "get_loadable_modules()");
// copy local module profiles
Vector<Properties> prof = m_mgr.getLoadableModules();
RTM.ModuleProfile[] cprof = new RTM.ModuleProfile[prof.size()];
@@ -313,7 +336,7 @@
String dumpString = new String();
dumpString = prof.elementAt(i)._dump(dumpString,
prof.elementAt(i), 0);
- rtcout.println(rtcout.VERBOSE, dumpString);
+ rtcout.println(Logbuf.VERBOSE, dumpString);
_SDOPackage.NVListHolder nvlist = new _SDOPackage.NVListHolder();
NVUtil.copyFromProperties(nvlist, prof.elementAt(i));
cprof[i] = new RTM.ModuleProfile(nvlist.value);
@@ -322,7 +345,7 @@
if (false) {
// copy slaves' module profiles
synchronized(m_slaveMutex) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
m_slaves.length+" slaves exists.");
for (int i=0, len=m_slaves.length; i < len; ++i) {
try {
@@ -340,7 +363,7 @@
}
}
catch(Exception ex) {
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"slave ("+i+") has disappeared.");
m_slaves[i] = (RTM.Manager)null;
}
@@ -378,13 +401,21 @@
}
/**
- * <p> get_loaded_modules </p>
- * <p> Getting loaded module profiles </p>
- * <p> This operation returns loaded module profiles. </p>
- * @return A module profile list.
+ * {@.ja モジュールのプロファイルを取得}
+ * {@.en Getting loaded module profiles}
+ *
+ * <p>
+ * {@.ja ロード済みのモジュールのプロファイルを取得する。}
+ * {@.en This operation returns loaded module profiles.}
+ *
+ *
+ * @return
+ * {@.ja モジュールプロファイル}
+ * {@.en A module profile list.}
+ *
*/
public RTM.ModuleProfile[] get_loaded_modules() {
- rtcout.println(rtcout.TRACE, "get_loaded_modules()");
+ rtcout.println(Logbuf.TRACE, "get_loaded_modules()");
// copy local module profiles
RTM.ModuleProfileListHolder cprof = new RTM.ModuleProfileListHolder();
@@ -405,7 +436,7 @@
// copy slaves' module profile
synchronized(m_slaveMutex) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
m_slaves.length+" slave managers exists.");
for (int i=0, len= m_slaves.length; i < len; ++i) {
try {
@@ -419,7 +450,7 @@
}
}
catch(Exception ex) {
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"slave ("+i+") has disappeared.");
m_slaves[i] = (RTM.Manager)null;
}
@@ -455,14 +486,21 @@
}
/**
- * <p> get_factory_profiles </p>
- * <p> Getting component factory profiles </p>
- * <p> This operation returns component factory profiles from loaded
- * RT-Component module factory profiles. </p>
- * @return An RT-Component factory profile list.
+ * {@.ja コンポーネントファクトリのプロファイルを取得する}
+ * {@.en Getting component factory profiles}
+ *
+ * <p>
+ * {@.ja ロード済みのモジュールのうち、RTコンポーネントのモジュールが持つ
+ * ファクトリのプロファイルのリストを取得する。}
+ * {@.en This operation returns component factory profiles from loaded
+ * RT-Component module factory profiles.}
+ *
+ * @return
+ * {@.ja コンポーネントファクトリのプロファイルリスト}
+ * {@.en An RT-Component factory profile list.}
*/
public RTM.ModuleProfile[] get_factory_profiles() {
- rtcout.println(rtcout.TRACE, "get_factory_profiles()");
+ rtcout.println(Logbuf.TRACE, "get_factory_profiles()");
Vector<Properties> prof = m_mgr.getFactoryProfiles();
ModuleProfile[] cprof = new ModuleProfile[prof.size()];
@@ -479,7 +517,7 @@
if (false) {
// copy slaves' factory profile
synchronized(m_slaveMutex) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
m_slaves.length+" slaves exists.");
for (int i=0, len=m_slaves.length; i < len; ++i) {
try {
@@ -496,7 +534,7 @@
}
}
catch(Exception ex) {
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"slave ("+i+") has disappeared.");
m_slaves[i] = (RTM.Manager)null;
}
@@ -526,7 +564,7 @@
*
*/
public RTC.RTObject create_component(final String module_name) {
- rtcout.println(rtcout.TRACE, "create_component("+module_name+")");
+ rtcout.println(Logbuf.TRACE, "create_component("+module_name+")");
String arg = module_name;
int pos0 = arg.indexOf("&manager=");
@@ -534,7 +572,7 @@
if (pos0 < 0 && pos1 < 0){
if (false) { //is_master()
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"Master manager cannot create component: "+module_name);
return null;
}
@@ -563,19 +601,19 @@
endpos = arg.length();
}
String mgrstr = arg.substring(pos + 1, endpos);
- rtcout.println(rtcout.VERBOSE, "Manager arg: "+mgrstr);
+ rtcout.println(Logbuf.VERBOSE, "Manager arg: "+mgrstr);
String[] mgrvstr = mgrstr.split(":");
if (mgrvstr.length != 2) {
- rtcout.println(rtcout.WARN, "Invalid manager name: "+mgrstr);
+ rtcout.println(Logbuf.WARN, "Invalid manager name: "+mgrstr);
return null;
}
int eqpos = mgrstr.indexOf("=");
if (eqpos < 0) {
- rtcout.println(rtcout.WARN, "Invalid argument: "+module_name);
+ rtcout.println(Logbuf.WARN, "Invalid argument: "+module_name);
return null;
}
mgrstr = mgrstr.substring(eqpos + 1);
- rtcout.println(rtcout.DEBUG, "Manager is : "+mgrstr);
+ rtcout.println(Logbuf.DEBUG, "Manager is : "+mgrstr);
// find manager
RTM.Manager mgrobj = findManager(mgrstr);
@@ -592,13 +630,13 @@
cmd.add("-p");
cmd.add(mgrvstr[1]); // port number
- rtcout.println(rtcout.DEBUG, "Invoking command: "+cmd);
+ rtcout.println(Logbuf.DEBUG, "Invoking command: "+cmd);
try{
ProcessBuilder pb = new ProcessBuilder(cmd);
Process p = pb.start();
}
catch(Exception ex){
- rtcout.println(rtcout.DEBUG, cmd + ": failed");
+ rtcout.println(Logbuf.DEBUG, cmd + ": failed");
return null;
}
@@ -626,52 +664,52 @@
}
if (mgrobj == null) {
- rtcout.println(rtcout.WARN, "Manager cannot be found.");
+ rtcout.println(Logbuf.WARN, "Manager cannot be found.");
return null;
}
// create component on the manager
arg = arg.substring(0, pos);
- rtcout.println(rtcout.DEBUG, "Creating component on "+mgrstr);
- rtcout.println(rtcout.DEBUG, "arg: "+arg);
+ rtcout.println(Logbuf.DEBUG, "Creating component on "+mgrstr);
+ rtcout.println(Logbuf.DEBUG, "arg: "+arg);
try {
RTObject rtobj;
rtobj = mgrobj.create_component(arg);
- rtcout.println(rtcout.DEBUG, "Component created "+arg);
+ rtcout.println(Logbuf.DEBUG, "Component created "+arg);
return rtobj;
}
catch (org.omg.CORBA.SystemException e) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Exception was caught while creating component.");
return null;
}
}
/**
- * <p> delete_component </p>
- * <p> Deleting an RT-Component </p>
- * <p> This operation delete an RT-Component according to the string
- * argument. </p>
+ * {@.ja コンポーネントを削除する}
+ * {@.en Deleting an RT-Component}
*
+ * <p>
+ * {@.ja 引数に指定されたコンポーネントを削除する。}
+ * {@.en This operation delete an RT-Component according to the string
+ * argument.}
+ *
* @param instance_name
- * @return Return code
+ * {@.ja インスタンス名}
+ * {@.en Instance name}
+ * @return
+ * {@.ja リターンコード}
+ * {@.en Return code}
*
*/
public RTC.ReturnCode_t delete_component(final String instance_name) {
- rtcout.println(rtcout.TRACE, "delete_component("+instance_name+")");
+ rtcout.println(Logbuf.TRACE, "delete_component("+instance_name+")");
m_mgr.deleteComponent(instance_name);
return ReturnCode_t.RTC_OK;
}
/**
- * <p> get_components </p>
- * <p> Getting RT-Component list running on this manager </p>
- * <p> This operation returns RT-Component list running
- * on this manager. </p>
- * @return A list of RT-Components
- */
- /**
* {@.ja 起動中のコンポーネントのリストを取得する}
* {@.en Getting RT-Component list running on this manager}
*
@@ -686,7 +724,7 @@
*
*/
public RTC.RTObject[] get_components() {
- rtcout.println(rtcout.TRACE, "get_component()");
+ rtcout.println(Logbuf.TRACE, "get_component()");
Vector<RTObject_impl> rtcs = m_mgr.getComponents();
RTCListHolder crtcs = new RTCListHolder();
@@ -696,7 +734,7 @@
crtcs.value[i] = rtcs.elementAt(i).getObjRef();
}
// get slaves' component references
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
m_slaves.length+" slaves exists.");
for (int i=0, len=m_slaves.length; i < len; ++i) {
try {
@@ -710,7 +748,7 @@
}
}
catch(Exception ex) {
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"slave ("+i+") has disappeared.");
m_slaves[i] = (RTM.Manager)null;
}
@@ -724,14 +762,22 @@
}
/**
- * <p> get_component_profiles </p>
- * <p> Getting RT-Component's profile list running on this manager </p>
- * <p> This operation returns RT-Component's profile list running on
- * this manager. </p>
- * @return A list of RT-Components' profiles
+ * {@.ja 起動中のコンポーネントプロファイルのリストを取得する}
+ * {@.en Getting RT-Component's profile list running on this manager}
+ *
+ * <p>
+ * {@.ja 現在当該マネージャ上で起動中のコンポーネントのプロファイルのリス
+ * トを返す。}
+ * {@.en This operation returns RT-Component's profile list running on
+ * this manager.}
+ *
+ * @return
+ * {@.ja RTコンポーネントプロファイルのリスト}
+ * {@.en A list of RT-Components' profiles}
+ *
*/
public RTC.ComponentProfile[] get_component_profiles() {
- rtcout.println(rtcout.TRACE, "get_component_profiles()");
+ rtcout.println(Logbuf.TRACE, "get_component_profiles()");
ComponentProfileListHolder cprofs = new ComponentProfileListHolder();
Vector<RTObject_impl> rtcs = m_mgr.getComponents();
@@ -742,7 +788,7 @@
}
// copy slaves' component profiles
synchronized(m_slaveMutex) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
m_slaves.length+" slaves exists.");
for (int i=0, len=m_slaves.length; i < len; ++i) {
try {
@@ -758,7 +804,7 @@
}
}
catch(Exception ex) {
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"slave ("+i+") has disappeared.");
m_slaves[i] = (RTM.Manager)null;
}
@@ -773,13 +819,20 @@
}
/**
- * <p> get_profile </p>
- * <p> Getting this manager's profile. </p>
- * <p> This operation returns this manager's profile. </p>
- * @return Manager's profile
+ * {@.ja マネージャのプロファイルを取得する}
+ * {@.en Getting this manager's profile.}
+ *
+ * <p>
+ * {@.ja 現在当該マネージャのプロファイルを取得する。}
+ * {@.en This operation returns this manager's profile.}
+ *
+ * @return
+ * {@.ja マネージャプロファイル}
+ * {@.en Manager's profile}
+ *
*/
public RTM.ManagerProfile get_profile() {
- rtcout.println(rtcout.TRACE, "get_profile()");
+ rtcout.println(Logbuf.TRACE, "get_profile()");
NVListHolder nvlist = new NVListHolder();
ManagerProfile prof = new ManagerProfile();
@@ -790,13 +843,20 @@
}
/**
- * <p> get_configuration </p>
- * <p> Getting this manager's configuration. </p>
- * <p> This operation returns this manager's configuration. </p>
- * @return Manager's configuration
+ * {@.ja マネージャのコンフィギュレーションを取得する}
+ * {@.en Getting this manager's configuration.}
+ *
+ * <p>
+ * {@.ja 現在当該マネージャのコンフィギュレーションを取得する。}
+ * {@.en This operation returns this manager's configuration.}
+ *
+ * @return
+ * {@.ja マネージャコンフィギュレーション}
+ * {@.en Manager's configuration}
+ *
*/
public _SDOPackage.NameValue[] get_configuration() {
- rtcout.println(rtcout.TRACE, "get_configuration()");
+ rtcout.println(Logbuf.TRACE, "get_configuration()");
NVListHolder nvlist = new NVListHolder();
NVUtil.copyFromProperties(nvlist, m_mgr.getConfig());
@@ -804,42 +864,69 @@
}
/**
- * <p> set_configuration </p>
- * <p> Setting manager's configuration </p>
- * <p> This operation sets managers configuration. </p>
- * @param name A configuration key name to be set
- * @param value A configuration value to be set
- * @return Return code
+ * {@.ja マネージャのコンフィギュレーションを設定する}
+ * {@.en Setting manager's configuration}
+ *
+ * <p>
+ * {@.ja 現在当該マネージャのコンフィギュレーションを設定する。}
+ * {@.en This operation sets managers configuration.}
+ *
+ * @param name
+ * {@.ja セットするコンフィギュレーションのキー名}
+ * {@.en A configuration key name to be set}
+ * @param value
+ * {@.ja セットするコンフィギュレーションの値}
+ * {@.en A configuration value to be set}
+ * @return
+ * {@.ja リターンコード}
+ * {@.en Return code}
*/
public RTC.ReturnCode_t set_configuration(final String name,
final String value) {
- rtcout.println(rtcout.TRACE, "set_configuration()");
+ rtcout.println(Logbuf.TRACE, "set_configuration()");
m_mgr.getConfig().setProperty(name, value);
return ReturnCode_t.RTC_OK;
}
/**
- * <p> Whether this manager is master or not </p>
- * <p> It returns "True" if this manager is a master, and it returns
- * "False" in other cases. </p>
- * @return A boolean value that means it is master or not.
+ * {@.ja マネージャがマスターかどうか。}
+ * {@.en Whether this manager is master or not}
+ *
+ * <p>
+ * {@.ja この関数はマネージャがマスターかどうかを返す。Trueならば、当該マ
+ * ネージャはマスターであり、それ以外は False を返す。}
+ * {@.en It returns "True" if this manager is a master, and it returns
+ * "False" in other cases.}
+ *
+ * @return
+ * {@.ja マスターマネージャかどうかのbool値}
+ * {@.en A boolean value that means it is master or not.}
*/
public boolean is_master() {
- rtcout.println(rtcout.TRACE, "is_master(): "+m_isMaster);
+ rtcout.println(Logbuf.TRACE, "is_master(): "+m_isMaster);
return m_isMaster;
}
/**
- * <p> Getting master managers </p>
- * <p> This operation returns master manager list if this manager is
+ * {@.ja マスターマネージャの取得。}
+ * {@.en Getting master managers}
+ *
+ * <p>
+ * {@.ja このマネージャがスレーブマネージャの場合、マスターとなっているマ
+ * ネージャのリストを返す。このマネージャがマスターの場合、空のリス
+ * トが返る。}
+ * {@.en This operation returns master manager list if this manager is
* slave. If this manager is master, an empty sequence would be
- * returned. </p>
- * @return Master manager list
+ * returned.}
+ *
+ * @return
+ * {@.ja マスターマネージャのリスト}
+ * {@.en Master manager list}
*/
public RTM.Manager[] get_master_managers() {
- rtcout.println(rtcout.TRACE, "get_master_managers()");
+ rtcout.println(Logbuf.TRACE, "get_master_managers()");
synchronized(m_masterMutex) {
RTM.ManagerListHolder holder = new RTM.ManagerListHolder(m_masters);
@@ -848,43 +935,65 @@
}
/**
- * <p> Getting a master manager </p>
- * <p> This operation returns a master manager with specified id. If
+ * {@.ja マスターマネージャの追加。}
+ * {@.en Getting a master manager}
+ *
+ * <p>
+ * {@.ja このマネージャのマスタとしてマネージャを一つ追加する。戻り値には、
+ * 当該マネージャ上で追加されたマスターマネージャを識別するユニーク
+ * なIDが返される。このマネージャがマスタの場合、当該IDで指定された
+ * マスターマネージャを返す。IDで指定されたマスターマネージャがない
+ * 場合、nilオブジェクトが返る。}
+ * {@.en This operation returns a master manager with specified id. If
* the manager with the specified id does not exist, nil object
- * reference would be returned. </p>
- * @return ReturnCode_t
+ * reference would be returned.}
+ *
+ * @return
+ * {@.ja マスターマネージャ}
+ * {@.en A master manager}
+ *
*/
public ReturnCode_t add_master_manager(RTM.Manager mgr) {
synchronized(m_masterMutex) {
long index;
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"add_master_manager(), "+m_masters.length+" masters");
RTM.ManagerListHolder holder = new RTM.ManagerListHolder(m_masters);
index = CORBA_SeqUtil.find(holder, new is_equiv(mgr));
if (!(index < 0)) {// found in my list
- rtcout.println(rtcout.ERROR, "Already exists.");
+ rtcout.println(Logbuf.ERROR, "Already exists.");
return ReturnCode_t.BAD_PARAMETER;
}
CORBA_SeqUtil.push_back(holder, (RTM.Manager)mgr._duplicate());
m_masters = holder.value;
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"add_master_manager() done, "+m_masters.length+" masters");
return ReturnCode_t.RTC_OK;
}
}
/**
- * <p> Removing a master manager </p>
- * <p> This operation removes a master manager from this manager. </p>
- * @param mgr A master manager
- * @return ReturnCode_t
+ * {@.ja マスターマネージャの削除}
+ * {@.en Removing a master manager}
+ *
+ * <p>
+ * {@.ja このマネージャが保持するマスタのうち、指定されたものを削除する。}
+ * {@.en This operation removes a master manager from this manager.}
+ *
+ * @param mgr
+ * {@.ja マスターマネージャ}
+ * {@.en A master manager}
+ * @return
+ * {@.ja ReturnCode_t}
+ * {@.en ReturnCode_t}
+ *
*/
public ReturnCode_t remove_master_manager(RTM.Manager mgr) {
synchronized(m_masterMutex) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"remove_master_manager(), "+m_masters.length+" masters");
long index;
@@ -892,13 +1001,13 @@
index = CORBA_SeqUtil.find(holder, new is_equiv(mgr));
if (index < 0) { // not found in my list
- rtcout.println(rtcout.ERROR, "Not found.");
+ rtcout.println(Logbuf.ERROR, "Not found.");
return ReturnCode_t.BAD_PARAMETER;
}
CORBA_SeqUtil.erase(holder, (int)index);
m_masters = holder.value;
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"remove_master_manager() done, "+m_masters.length+" masters");
return ReturnCode_t.RTC_OK;
}
@@ -906,15 +1015,25 @@
/**
- * <p> Getting slave managers </p>
- * <p> This operation returns slave manager list if this manager is
+ * {@.ja スレーブマネージャの取得。}
+ * {@.en Getting slave managers}
+ *
+ * <p>
+ * {@.ja このマネージャがスレーブマネージャの場合、スレーブとなっているマ
+ * ネージャのリストを返す。このマネージャがスレーブの場合、空のリス
+ * トが返る。}
+ * {@.en This operation returns slave manager list if this manager is
* slave. If this manager is slave, an empty sequence would be
- * returned. </p>
- * @return Slave manager list
+ * returned.}
+ *
+ * @return
+ * {@.ja スレーブマネージャのリスト}
+ * {@.en Slave manager list}
+ *
*/
public RTM.Manager[] get_slave_managers() {
synchronized(m_masterMutex) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"get_slave_managers(), "+m_slaves.length+" slaves");
RTM.ManagerListHolder holder = new RTM.ManagerListHolder(m_slaves);
@@ -923,14 +1042,23 @@
}
/**
- * <p> Getting a slave manager </p>
- * <p> This operation add a slave manager to this manager. </p>
- * @param mgr A slave manager
- * @return ReturnCode_t
+ * {@.ja スレーブマネージャの追加}
+ * {@.en Getting a slave manager}
+ *
+ * <p>
+ * {@.ja このマネージャのマスタとしてマネージャを一つ追加する。}
+ * {@.en This operation add a slave manager to this manager.}
+ *
+ * @param mgr
+ * {@.ja スレーブマネージャ}
+ * {@.en A slave manager}
+ * @return
+ * {@.ja ReturnCode_t}
+ * {@.en ReturnCode_t}
*/
public ReturnCode_t add_slave_manager(RTM.Manager mgr) {
synchronized(m_masterMutex) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"add_slave_manager(), "+m_slaves.length+" slaves");
long index;
@@ -938,40 +1066,49 @@
index = CORBA_SeqUtil.find(holder, new is_equiv(mgr));
if (!(index < 0)) { // found in my list
- rtcout.println(rtcout.ERROR, "Already exists.");
+ rtcout.println(Logbuf.ERROR, "Already exists.");
return ReturnCode_t.BAD_PARAMETER;
}
CORBA_SeqUtil.push_back(holder, (RTM.Manager)mgr._duplicate());
m_slaves = holder.value;
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"add_slave_manager() done, "+m_slaves.length+" slaves");
return ReturnCode_t.RTC_OK;
}
}
/**
- * <p> Removing a slave manager </p>
- * <p> This operation removes a slave manager from this manager. </p>
- * @param mgr A slave manager
- * @return ReturnCode_t
+ * {@.ja スレーブマネージャの削除}
+ * {@.en Removing a slave manager}
+ *
+ * <p>
+ * {@.ja このマネージャが保持するマスタのうち、指定されたものを削除する。}
+ * {@.en This operation removes a slave manager from this manager.}
+ *
+ * @param mgr
+ * {@.ja スレーブマネージャ}
+ * {@.en A slave manager}
+ * @return
+ * {@.ja ReturnCode_t}
+ * {@.en ReturnCode_t}
*/
public ReturnCode_t remove_slave_manager(RTM.Manager mgr) {
synchronized(m_masterMutex) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"remove_slave_manager(), "+m_slaves.length+" slaves");
long index;
RTM.ManagerListHolder holder = new RTM.ManagerListHolder(m_slaves);
index = CORBA_SeqUtil.find(holder, new is_equiv(mgr));
if (index < 0) {// not found in my list
- rtcout.println(rtcout.ERROR, "Not found.");
+ rtcout.println(Logbuf.ERROR, "Not found.");
return ReturnCode_t.BAD_PARAMETER;
}
CORBA_SeqUtil.erase(holder, (int)index);
m_slaves = holder.value;
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"remove_slave_manager() done, "+m_slaves.length+" slaves");
return ReturnCode_t.RTC_OK;
}
@@ -1022,7 +1159,12 @@
*/
/**
- * <p> fork </p>
+ * {@.ja プロセスのコピーを生成する}
+ * {@.en The copy of the process is generated.}
+ *
+ * @return
+ * {@.ja ReturnCode_t}
+ * {@.en ReturnCode_t}
*/
public RTC.ReturnCode_t fork() {
// m_mgr.fork();
@@ -1030,7 +1172,11 @@
}
/**
- * <p> shutdown </p>
+ * {@.ja shutdownする}
+ * {@.en This method shutdowns RTC.}
+ * @return
+ * {@.ja ReturnCode_t}
+ * {@.en ReturnCode_t}
*/
public RTC.ReturnCode_t shutdown() {
m_mgr.terminate();
@@ -1038,7 +1184,11 @@
}
/**
- * <p> restart </p>
+ * {@.ja 再起動する。}
+ * {@.en This method restarts RTC.}
+ * @return
+ * {@.ja ReturnCode_t}
+ * {@.en ReturnCode_t}
*/
public ReturnCode_t restart() {
// m_mgr.restart();
@@ -1046,14 +1196,22 @@
}
/**
- * <p> get_service </p>
+ * {@.ja RTCのリファレンスを取得する。}
+ * {@.en Get the reference of RTC.}
+ * @return
+ * {@.ja RTCのリファレンス}
+ * {@.en RTC reference}
*/
public org.omg.CORBA.Object get_service(final String name) {
return null;
}
/**
- * <p> getObjRef </p>
+ * {@.ja Managerのリファレンスを取得する。}
+ * {@.en Get the reference of Manager.}
+ * @return
+ * {@.ja Managerのリファレンス}
+ * {@.en Manager reference}
*/
public RTM.Manager getObjRef() {
return (RTM.Manager)m_objref;
@@ -1062,9 +1220,11 @@
/**
* <p> setObjRef </p>
*/
+/*
public void setObjRef(final RTM.Manager rtobj) {
m_objref = rtobj;
}
+*/
/**
* <p></p>
@@ -1076,6 +1236,10 @@
*/
private RTM.Manager m_objref;
+ /**
+ * {@.ja ロガーストリーム}
+ * {@.en Logger stream}
+ */
protected Logbuf rtcout;
private boolean m_isMaster;
private String m_masterMutex = new String();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ModuleInitProc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ModuleInitProc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ModuleInitProc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,15 +1,21 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>Managerが初期化されてアクティブ化された後に呼び出される、
- * 初期化プロシジャコールバックインタフェースです。</p>
+ * {@.ja Managerが初期化されてアクティブ化された後に呼び出される、
+ * 初期化プロシジャコールバックインタフェース}
+ * {@.en This interface is an initialization procedure callback interface
+ * called after Manager is initialized and made active.}
*/
public interface ModuleInitProc {
/**
- * <p>Managerが初期化されてアクティブ化された後に呼び出されます。</p>
+ * {@.ja Managerが初期化されてアクティブ化された後に呼び出される}
+ * {@.en After Manager is initialized and made active,
+ * this method is called.}
*
- * @param mgr Managerオブジェクト
+ * @param mgr
+ * {@.ja Managerオブジェクト}
+ * {@.en Manager object}
*/
public void myModuleInit(Manager mgr);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ModuleManager.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ModuleManager.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ModuleManager.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,31 +1,35 @@
package jp.go.aist.rtm.RTC;
-import org.omg.CORBA.portable.Streamable;
-
+import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.io.File;
+import java.net.MalformedURLException;
import java.net.URI;
+import java.net.URL;
import java.net.URLClassLoader;
-import java.net.MalformedURLException;
-import java.net.URL;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
import java.util.Vector;
-import java.util.Set;
-import java.util.Iterator;
import jp.go.aist.rtm.RTC.util.Properties;
+import jp.go.aist.rtm.RTC.util.StringHolder;
import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.util.StringHolder;
import jp.go.aist.rtm.RTC.log.Logbuf;
-/**
-* <p>モジュール管理クラスです。モジュールのロード・アンロードなどを管理します。</p>
-*/
+ /**
+ * {@.ja モジュールマネージャクラス}
+ * {@.en ModuleManager class}
+ *
+ * <p>
+ * {@.ja モジュールのロード、アンロードなどを管理するクラス}
+ * {@.en This is a class to manage for loading and unloading modules.}
+ *
+ */
public class ModuleManager {
private final String CONFIG_EXT = "manager.modules.config_ext";
@@ -41,10 +45,10 @@
private final String MOD_PRELOAD = "manager.modules.preload";
/**
- * {@.ja コンストラクタです。}
+ * {@.ja コンストラクタ。}
* {@.en Constructor}
* <p>
- * {@.ja 指定されたPropertiesオブジェクト内の情報に基づいてi
+ * {@.ja 指定されたPropertiesオブジェクト内の情報に基づいて
* 初期化を行います。}
* {@.en Initialize based on information in the set Property object.}
*
@@ -84,15 +88,22 @@
}
/**
- * <p>デストラクタです。ロード済みモジュールのアンロードなど、リソースの解放処理を行います。
- * 当該ModuleManagerオブジェクトの使用を終えた際に、明示的に呼び出してください。</p>
+ * {@.ja デストラクタ。}
+ * {@.en destructer}
+ *
+ * <p>
+ * {@.ja ロード済みモジュールのアンロードなど、
+ * リソースの解放処理を行います。
+ * 当該ModuleManagerオブジェクトの使用を終えた際に、
+ * 明示的に呼び出してください。}
*/
public void destruct() {
unloadAll();
}
/**
- * <p>ファイナライザです。</p>
+ * {@.ja ファイナライザ。}
+ * {@.en finalize}
*/
protected void finalize() throws Throwable {
@@ -105,7 +116,7 @@
}
/**
- * {@.ja モジュールのロード}
+ * {@.ja モジュールのロード。}
* {@.en Load the module}
*
* <p>
@@ -145,7 +156,7 @@
*
*/
public String load(final String moduleName) throws Exception {
- rtcout.println(rtcout.TRACE, "load(fname = " + moduleName +")");
+ rtcout.println(Logbuf.TRACE, "load(fname = " + moduleName +")");
String module_path = null;
if(moduleName==null || moduleName.length()==0) {
@@ -210,6 +221,9 @@
StringHolder packageModuleName = new StringHolder();
target = getClassFromName(url,name,packageModuleName);
module_path = packageModuleName.value;
+ if(target!=null){
+ break;
+ }
}
}
else{
@@ -333,7 +347,7 @@
urls[0] = uri.toURL();
}
catch(java.net.MalformedURLException ex){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"java.net.MalformedURLException: toURL() threw Exception."+ex);
return null;
}
@@ -342,7 +356,7 @@
}
/**
- * {@.ja モジュールのアンロード}
+ * {@.ja モジュールのアンロード。}
* {@.en Load and intialize the module}
*
* <p>
@@ -378,7 +392,7 @@
*/
public String load(final String moduleName, final String methodName)
throws Exception {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"load(fname = "+moduleName+" init_func = "+methodName+")");
if (moduleName == null || moduleName.length() == 0) {
@@ -416,9 +430,16 @@
}
/**
- * <p>指定されたモジュールをアンロードします。</p>
- *
- * @param moduleName アンロードするモジュール名
+ * {@.ja モジュールのアンロード}
+ * {@.en Unload the module}
+ *
+ * <p>
+ * {@.ja 指定したロード済みモジュールをクローズし、アンロードする。}
+ * {@.en Close and unload the specified module that has been loaded.}
+ *
+ * @param moduleName
+ * {@.ja アンロード対象モジュール名}
+ * {@.en Name of module for the unloading}
*/
public void unload(String moduleName) throws Exception {
if( !m_modules.containsKey(moduleName) )
@@ -427,7 +448,13 @@
}
/**
- * <p>すべてのモジュールをアンロードします。</p>
+ * {@.ja 全モジュールのアンロード}
+ * {@.en Unload all modules}
+ *
+ * <p>
+ * {@.ja 全てのロード済みモジュールをアンロードする。}
+ * {@.en Unload all modules that have been loaded.}
+ *
*/
public void unloadAll() {
m_modules = new HashMap<String, DLLEntity>();
@@ -470,6 +497,22 @@
/**
* <p>初期化関数シンボルを生成する</p>
*/
+ /**
+ * {@.ja 初期化関数シンボルを生成する}
+ * {@.en Create initialization function symbol}
+ *
+ * <p>
+ * {@.ja 初期化関数の名称を組み立てる。}
+ * {@.en Assemble names of the initialization functions.}
+ *
+ * @param class_path
+ * {@.ja 初期化対象モジュール名称}
+ * {@.en Name of module for initialization}
+ *
+ * @return
+ * {@.ja 初期化関数名称組み立て結果}
+ * {@.en Assembly result of initialization function name}
+ */
public String getInitFuncName(String class_path) {
if( class_path==null || class_path.length()==0 ) return null;
String base_names[] = class_path.split("\\.");
@@ -478,36 +521,66 @@
}
/**
- * <p>規定となるモジュールロードパスを指定します。</p>
+ * {@.ja モジュールロードパスを指定する。}
+ * {@.en Set the module load path}
*
- * @param loadPath 規定ロードパス
+ * <p>
+ * {@.ja モジュールロード時に対象モジュールを検索するパスを指定する。}
+ * {@.en Specify searching path to find the target module when loading
+ * module.}
+ *
+ * @param loadPath
+ * {@.ja 規定ロードパス}
+ * {@.en List of module search path}
*/
public void setLoadpath(final Vector<String> loadPath) {
m_loadPath = new Vector<String>(loadPath);
}
/**
- * <p>規定となるモジュールロードパスを取得します。</p>
- *
- * @return 規定モジュールロードパス
- */
+ * {@.ja モジュールロードパスを取得する。}
+ * {@.en Get the module load path}
+ *
+ * <p>
+ * {@.ja 設定されているモジュールを検索対象パスリストを取得する。}
+ * {@.en Get the search path of the set module.}
+ *
+ * @return
+ * {@.ja 規定モジュールロードパス}
+ * {@.en List of module search path}
+ *
+ */
public Vector<String> getLoadPath() {
return new Vector<String>(m_loadPath);
}
/**
- * <p>規定となるモジュールロードパスを追加します。</p>
+ * {@.ja モジュールロードパスを追加する。}
+ * {@.en Add the module load path}
*
- * @param loadPath 追加する規定ロードパス
+ * <p>
+ * {@.ja 指定されたパスリストを検索対象パスリストに追加する。}
+ * {@.en Add specified path list to search path list.}
+ *
+ * @param loadPath
+ * {@.ja 追加する規定ロードパス}
+ * {@.en List of additional module search path}
*/
public void addLoadPath(final Vector<String> loadPath) {
m_loadPath.addAll(loadPath);
}
/**
- * <p>ロード済みのモジュールリストを取得します。</p>
+ * {@.ja ロード済みのモジュールリストを取得する}
+ * {@.en Get the module list that has been loaded}
*
- * @return ロード済みモジュールリスト
+ * <p>
+ * {@.ja 既にロード済みのモジュールリストを取得する。}
+ * {@.en Get the module list that has been loaded.}
+ *
+ * @return
+ * {@.ja ロード済みモジュールリスト}
+ * {@.en List of module that has been loaded}
*/
public Vector<Properties> getLoadedModules() {
Vector<Properties> props = new Vector<Properties>();
@@ -532,7 +605,7 @@
*
*/
public Vector<Properties> getLoadableModules() {
- rtcout.println(rtcout.TRACE, "getLoadableModules()");
+ rtcout.println(Logbuf.TRACE, "getLoadableModules()");
Vector<String> dlls = new Vector<String>();
String separator = System.getProperty("file.separator");
for (int i=0; i < m_loadPath.size(); ++i) {
@@ -584,7 +657,7 @@
al.add(2,"module_file_path");
al.add(3,dlls.elementAt(ic));
props.add(new Properties((String[])al.toArray(new String[]{})));
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"loadabe module:"+dlls.elementAt(ic));
}
catch(Exception e){
@@ -596,40 +669,67 @@
}
/**
- * <p>モジュールのフルクラス名指定を指定します。</p>
+ * {@.ja モジュールの絶対パス指定許可。}
+ * {@.en Allow absolute path when specify module path}
+ *
+ * <p>
+ * {@.ja ロード対象モジュールの絶対パス指定を許可するように設定する。}
+ * {@.en Set to allow the absolute path when specify the module for
+ * the load.}
*/
public void allowAbsolutePath() {
m_absoluteAllowed = true;
}
/**
- * <p>モジュールのフルクラス名指定解除を指定します。</p>
+ * {@.ja モジュールの絶対パス指定禁止}
+ * {@.en Disallow absolute path when specify module path}
+ *
+ * <p>
+ * {@.ja ロード対象モジュールの絶対パス指定を禁止するように設定する。}
+ * {@.en Set to disallow the absolute path when specify the module for
+ * the load.}
*/
public void disallowAbsolutePath() {
m_absoluteAllowed = false;
}
/**
- * <p>モジュールのダウンロード許可を指定します。</p>
+ * {@.ja モジュールのURL指定許可。}
+ * {@.en Allow URL when specify module path}
+ *
+ * <p>
+ * {@.ja ロード対象モジュールのURL指定を許可する。
+ * 本設定が許可されている場合、モジュールをダウンロードしてロードすることが
+ * 許可される。}
+ * {@.en Allow URL when specify module for the load.
+ * When this setup is allowed, downloading and loading the module will
+ * be allowed.}
*/
public void allowModuleDownload() {
m_downloadAllowed = true;
}
/**
- * <p>モジュールのダウンロード許可を解除します。</p>
+ * {@.ja モジュールのURL指定禁止}
+ * {@.en Disallow URL when specify module path}
+ *
+ * <p>
+ * {@.ja ロード対象モジュールのURL指定を禁止する。}
+ * {@.en Disallow URL when specify module for the load.}
*/
public void disallowModuleDownload() {
m_downloadAllowed = false;
}
/**
- * <p>ModuleManagerプロパティ</p>
+ * {@.ja Module Manager プロパティ}
+ * {@.en Module Manager properties}
*/
protected Properties m_properties;
/**
- * <p>ロード済みモジュール</p>
- * <p> Module list that has already loaded </p>
+ * {@.ja ロード済みモジュール}
+ * {@.en Module list that has already loaded}
*/
protected Map<String, DLLEntity> m_modules
@@ -640,27 +740,33 @@
}
/**
- * <p>モジュールロードパス</p>
+ * {@.ja モジュール・ロード・パス・リスト}
+ * {@.en Module load path list}
*/
protected Vector<String> m_loadPath = new Vector<String>();
/**
- * <p>コンフィギュレーションパス</p>
+ * {@.ja コンフィギュレーション・パス・リスト}
+ * {@.en Configuration path list}
*/
protected Vector<String> m_configPath = new Vector<String>();
/**
- * <p>モジュールダウンロード許可フラグ</p>
+ * {@.ja モジュールURL指定許可フラグ}
+ * {@.en Flag of URL when specify module for the load.}
*/
protected boolean m_downloadAllowed;
/**
- * <p>モジュール絶対パス指定許可フラグ</p>
+ * {@.ja モジュール絶対パス指定許可フラグ}
+ * {@.en Flag of absolute path when specify module for the load.}
*/
protected boolean m_absoluteAllowed;
/**
- * <p>初期実行関数サフィックス</p>
+ * {@.ja 初期実行関数サフィックス}
+ * {@.en Initial execution function suffix}
*/
protected String m_initFuncSuffix = new String();
/**
- * <p>初期実行関数プリフィックス</p>
+ * {@.ja 初期実行関数プリフィックス}
+ * {@.en Initial execution function prefix}
*/
protected String m_initFuncPrefix = new String();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,29 +1,67 @@
package jp.go.aist.rtm.RTC;
-/**
- * <p>Naming Service管理用インターフェースです。</p>
- */
+ /**
+ * {@.ja Naming Service管理用インターフェース。}
+ * {@.en NamingService management interface}
+ *
+ * <p>
+ * {@.ja NamingServer 管理用抽象インターフェースクラス。
+ * 具象管理クラスは、以下の純粋仮想関数の実装を提供しなければならない。
+ * <ul>
+ * <li> bindObject() : 指定したオブジェクトのNamingServiceへのバインド
+ * <li> unbindObject() : 指定したオブジェクトのNamingServiceからのアンバインド
+ * <li> isAlive() : ネームサーバの生存を確認
+ * </ul>}
+ * {@.en This is the abstract interface class for NamingServer management.
+ * Concrete management classes must implement the following pure virtual
+ * functions.
+ * <ul>
+ * <li> bindObject() : Bind the specified object to NamingService
+ * <li> unbindObject() : Unbind the specified object from NamingService
+ * <li> isAlive() : Check if the name service is alive
+ * </ul>}
+ *
+ */
public interface NamingBase {
/**
- * <p>オブジェクトをNameServerにbindします。</p>
+ * {@.ja 指定したオブジェクトをNamingServiceへバインドする純粋仮想関数}
+ * {@.en Pure virtual function to bind the specified objects
+ * to the NamingService}
*
- * @param name bind時の名称
- * @param rtobj bind対象オブジェクト
+ * <p>
+ * @param name
+ * {@.ja バインド時の名称}
+ * {@.en The name to be bound to the NamingService}
+ * @param rtobj
+ * {@.ja バインド対象オブジェクト}
+ * {@.en The target objects to be bound to the NamingSerivce}
*/
public void bindObject(final String name, final RTObject_impl rtobj);
/**
- * <p>オブジェクトをNameServerにbindします。</p>
+ * {@.ja 指定したManagerServantをNamingServiceへバインドする純粋仮想関数}
+ * {@.en Pure virtual function to bind the specified ManagerServants
+ * to NamingService}
*
- * @param name bind時の名称
- * @param mgr bind対象マネージャサーバント
+ * @param name
+ * {@.ja バインド時の名称}
+ * {@.en The name to be bound to the NamingService}
+ * @param mgr
+ * {@.ja バインド対象ManagerServant}
+ * {@.en The target objects to be bound to the NamingSerivce}
*/
public void bindObject(final String name, final ManagerServant mgr);
/**
- * <p>オブジェクトをNameServerからunbindします。</p>
- *
- * @param name unbind対象オブジェクト名
+ * {@.ja 指定したオブジェクトをNamingServiceからアンバインドするための
+ * 純粋仮想関数}
+ * {@.en Pure virtual function to unbind the specified objects from
+ * NamingService}
+ *
+ * @param name
+ * {@.ja アンバインド対象オブジェクト名}
+ * {@.en The name of the object released from NamingService}
+ *
*/
public void unbindObject(final String name);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingManager.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingManager.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingManager.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,23 @@
package jp.go.aist.rtm.RTC;
import java.util.Vector;
-import java.util.logging.FileHandler;
-import java.util.logging.ConsoleHandler;
-import java.io.IOException;
+
import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.CallbackFunction;
import jp.go.aist.rtm.RTC.util.StringUtil;
-/**
-* <p>Naming Service管理クラスです。コンポーネントの登録・解除などを管理します。</p>
-*/
+ /**
+ * {@.ja NamingServer 管理クラス。}
+ * {@.en NamingServer management class}
+ *
+ * <p>
+ * {@.ja コンポーネントのNamingServiceへの登録、解除などを管理する。}
+ * {@.en Manage to register and unregister components to NamingService.}
+ */
public class NamingManager implements CallbackFunction {
/**
- * {@.ja コンストラクタです。}
+ * {@.ja コンストラクタ。}
* {@.en Constructor}
*
* @param manager
@@ -28,7 +31,7 @@
}
/**
- * {@.ja NameServer の登録}
+ * {@.ja NameServer の登録。}
* {@.en Regster the NameServer}
*
* <p>
@@ -38,7 +41,7 @@
* Currently. only CORBA can be specified.}
*
* @param method
- * {@.ja NamingService の形式}
+ * {@.ja NamingService の形式。}
* {@.en Format of NamingService}
* @param name_server
* {@.ja 登録する NameServer の名称}
@@ -47,7 +50,7 @@
*/
public void registerNameServer(final String method,
final String name_server) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"NamingManager.registerNameServer("
+ method + ", " + name_server + ")");
NamingBase name = createNamingObj(method, name_server);
@@ -59,7 +62,7 @@
}
/**
- * {@.ja 指定したオブジェクトのNamingServiceへバインド}
+ * {@.ja 指定したオブジェクトのNamingServiceへバインド。}
* {@.en Bind the specified objects to NamingService}
*
* <p>
@@ -78,7 +81,7 @@
*
*/
public void bindObject(final String name, final RTObject_impl rtobj) {
- rtcout.println(rtcout.TRACE, "NamingManager.bindObject(" + name + ")");
+ rtcout.println(Logbuf.TRACE, "NamingManager.bindObject(" + name + ")");
synchronized (m_names) {
int len = m_names.size();
for(int intIdx=0; intIdx < len; ++intIdx ) {
@@ -96,13 +99,7 @@
}
/**
- * <p> bindObject </p>
- *
- * @param name bind時の名称
- * @param mgr bind対象マネージャサーバント
- */
- /**
- * {@.ja 指定したManagerServantのNamingServiceへバインド}
+ * {@.ja 指定したManagerServantのNamingServiceへバインド。}
* {@.en Bind the specified ManagerServants to NamingService}
*
* <p>
@@ -122,7 +119,7 @@
*
*/
public void bindObject(final String name, final ManagerServant mgr) {
- rtcout.println(rtcout.TRACE, "NamingManager.bindObject(" + name + ")");
+ rtcout.println(Logbuf.TRACE, "NamingManager.bindObject(" + name + ")");
synchronized (m_names) {
int len = m_names.size();
for(int intIdx=0; intIdx < len; ++intIdx ) {
@@ -140,7 +137,7 @@
}
/**
- * {@.ja NamingServer の情報の更新}
+ * {@.ja NamingServer の情報の更新。}
* {@.en Update information of NamingServer}
*
* <p>
@@ -152,7 +149,7 @@
*
*/
public void update(){
- rtcout.println(rtcout.TRACE, "NamingManager.update()");
+ rtcout.println(Logbuf.TRACE, "NamingManager.update()");
boolean rebind = StringUtil.toBool(
m_manager.getConfig().getProperty("naming.update.rebind"),
@@ -162,7 +159,7 @@
int len = m_names.size();
for( int intIdx=0; intIdx < len; ++intIdx ) {
if( m_names.elementAt(intIdx).ns == null ) {
- rtcout.println(rtcout.DEBUG, "Retrying connection to "
+ rtcout.println(Logbuf.DEBUG, "Retrying connection to "
+ m_names.elementAt(intIdx).method + "/" +
m_names.elementAt(intIdx).nsname);
retryConnection(m_names.elementAt(intIdx));
@@ -174,7 +171,7 @@
bindCompsTo(m_names.elementAt(intIdx).ns);
}
if (!m_names.elementAt(intIdx).ns.isAlive()) {
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"Name server: "
+ m_names.elementAt(intIdx).nsname + " ("
+ m_names.elementAt(intIdx).method
@@ -184,7 +181,7 @@
}
}
catch(Exception ex){
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"Name server: "
+ m_names.elementAt(intIdx).nsname + " ("
+ m_names.elementAt(intIdx).method
@@ -198,7 +195,7 @@
}
/**
- * {@.ja コンポネントをリバインドする}
+ * {@.ja コンポネントをリバインドする。}
* {@.en Rebind the component to NameServer}
*
* <p>
@@ -216,7 +213,7 @@
try {
nsobj = createNamingObj(ns.method, ns.nsname);
if (nsobj != null) {// if succeed
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"Connected to a name server: "
+ ns.nsname + "/"
+ ns.method );
@@ -225,13 +222,13 @@
return;
}
else {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Name service: " + ns.method + "/"
+ ns.nsname +" still not available.");
}
}
catch (Exception ex) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Name service: " + ns.method + "/"
+ ns.nsname +" disappeared again.");
if (nsobj != null) {
@@ -241,12 +238,19 @@
}
/**
- * <p>オブジェクトをNameServerからunbindします。</p>
+ * {@.ja 指定したオブジェクトをNamingServiceからアンバインド。}
+ * {@.en Unbind the specified objects from NamingService}
*
- * @param name unbind対象オブジェクト名
+ * <p>
+ * {@.ja 指定したオブジェクトを NamingService からアンバインドする。}
+ * {@.en Unbind the specified objects from NamingService.}
+ *
+ * @param name
+ * {@.ja アンバインド対象オブジェクト}
+ * {@.en The target objects for the unbinding}
*/
public void unbindObject(final String name) {
- rtcout.println(rtcout.TRACE, "NamingManager.unbindObject(" + name + ")");
+ rtcout.println(Logbuf.TRACE, "NamingManager.unbindObject(" + name + ")");
//
synchronized (m_names) {
int len = m_names.size();
@@ -261,7 +265,7 @@
}
/**
- * {@.ja 全てのオブジェクトをNamingServiceからアンバインド}
+ * {@.ja 全てのオブジェクトをNamingServiceからアンバインド。}
* {@.en Unbind all objects from NamingService}
*
* <p>
@@ -270,7 +274,7 @@
*
*/
protected void unbindAll() {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"NamingManager.unbindAll(): m_compNames="
+ Integer.toString(m_compNames.size())
+ " m_mgrNames=" + Integer.toString(m_mgrNames.size()));
@@ -297,9 +301,16 @@
}
/**
- * <p>NameServerに登録されているオブジェクトを取得します。</p>
+ * {@.ja バインドされている全てのオブジェクトを取得。}
+ * {@.en Get all bound objects}
*
- * @return 登録オブジェクトのリスト
+ * <p>
+ * {@.ja バインドされている全てのオブジェクトを 取得する。}
+ *
+ * @return
+ * {@.ja バインド済みオブジェクト リスト}
+ * {@.en Bound object list}
+ *
*/
protected synchronized Vector<RTObject_impl> getObjects() {
Vector<RTObject_impl> comps = new Vector<RTObject_impl>();
@@ -311,7 +322,7 @@
}
/**
- * {@.ja NameServer 管理用オブジェクトの生成}
+ * {@.ja NameServer 管理用オブジェクトの生成。}
* {@.en Create objects for NameServer management}
*
* <p>
@@ -333,7 +344,7 @@
*/
protected NamingBase createNamingObj(final String method,
final String name_server) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"createNamingObj(method = "
+ method + ", nameserver = )" + name_server);
String m = method;
@@ -343,12 +354,12 @@
= new NamingOnCorba(m_manager.getORB(), name_server);
NamingBase name = nameb;
if( name == null ) return null;
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"NameServer connection succeeded: "
+ method + "/" + name_server);
return name;
} catch (Exception ex) {
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"NameServer connection failed: "
+ method +"/" + name_server);
return null;
@@ -358,9 +369,16 @@
}
/**
- * <p>オブジェクトをNameServerにbindします。</p>
+ * {@.ja 設定済みコンポーネントを NameServer に登録。}
+ * {@.en Register the configured component to NameServer}
*
- * @param ns bind対象オブジェクト
+ * <p>
+ * {@.ja 設定済みコンポーネントを指定した NameServer に登録する。}
+ * {@.en Register the already configured components to NameServer.}
+ *
+ * @param ns
+ * {@.ja 登録対象 NameServer}
+ * {@.en The target NameServer for the registration}
*/
protected void bindCompsTo(NamingBase ns) {
int len = m_compNames.size();
@@ -370,11 +388,20 @@
}
/**
- * <p>コンポーネントを登録します。
- * 対象コンポーネントが既に登録済みの場合は何もしません。</p>
+ * {@.ja NameServer に登録するコンポーネントの設定。}
+ * {@.en Configure the components that will be registered to NameServer}
*
- * @param name bind時の名称
- * @param rtobj bind対象オブジェクト
+ * <p>
+ * {@.ja NameServer に登録するコンポーネントを設定する。
+ * 対象コンポーネントが既に登録済みの場合は何もしない。}
+ * {@.en Configure the components that will be registered to NameServer.}
+ *
+ * @param name
+ * {@.ja コンポーネントの登録時名称}
+ * {@.en Names of components at the registration}
+ * @param rtobj
+ * {@.ja 登録対象オブジェクト}
+ * {@.en The target objects for registration}
*/
protected void registerCompName(final String name, final RTObject_impl rtobj) {
int len = m_compNames.size();
@@ -389,11 +416,22 @@
}
/**
- * <p>マネージャサーバントを登録します。
- * 対象マネージャサーバントが既に登録済みの場合は何もしません。</p>
+ * {@.ja NameServer に登録するManagerServantの設定。}
+ * {@.en Configure the ManagerServants that will be registered
+ * to NameServer}
+ *
+ * <p>
+ * {@.ja NameServer に登録するManagerServantを設定する。
+ * 対象マネージャサーバントが既に登録済みの場合は何もしない。}
+ * {@.en Configure the ManagerServants that will be registered
+ * to NameServer.}
*
- * @param name bind時の名称
- * @param mgr bind対象マネージャサーバント
+ * @param name
+ * {@.ja ManagerServantの登録時名称}
+ * {@.en Names of ManagerServants at the registration}
+ * @param mgr
+ * {@.ja 登録対象ManagerServant}
+ * {@.en The target ManagerServants for registration}
*/
protected void registerMgrName(final String name, final ManagerServant mgr) {
int len = m_mgrNames.size();
@@ -408,9 +446,15 @@
}
/**
- * <p>登録済みコンポーネントの登録を解除します。</p>
+ * {@.ja NameServer に登録するコンポーネントの設定解除。}
+ * {@.en Unregister the components that will be registered to NameServer}
*
- * @param name 解除対象コンポーネントの名称
+ * <p>
+ * {@.ja NameServer に登録するコンポーネントの設定を解除する。}
+ *
+ * @param name
+ * {@.ja 設定解除対象コンポーネントの名称}
+ * {@.en Names of the target components for unregistration}
*/
protected void unregisterCompName(final String name) {
int len = m_compNames.size();
@@ -424,9 +468,17 @@
}
/**
- * <p>登録済みマネージャサーバントの登録を解除します。</p>
+ * {@.ja NameServer に登録するManagerServantの設定解除。}
+ * {@.en Unregister the ManagerServants that will be registered
+ * to NameServer}
*
- * @param name 解除対象マネージャサーバントの名称
+ * <p>
+ * {@.ja NameServer に登録するManagerServantの設定を解除する。}
+ *
+ * @param name
+ * {@.ja 設定解除対象ManagerServantの名称}
+ * {@.en Names of the target ManagerServants for unregistration}
+ *
*/
protected void unregisterMgrName(final String name) {
int len = m_mgrNames.size();
@@ -440,15 +492,24 @@
}
/**
- * <p>Naming Serviceクラスです。</p>
- */
+ * {@.ja NameServer 管理用クラス}
+ * {@.en Class for NameServer management}
+ */
protected class Names {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*
- * @param meth NamingServerタイプ
- * @param name NamingServer名称
- * @param naming NameServerオブジェクト
+ * @param meth
+ * {@.ja NamingServerタイプ}
+ * {@.en NamingServer type}
+ * @param name
+ * {@.ja NamingServer名称}
+ * {@.en NamingServer name}
+ * @param naming
+ * {@.ja NameServerオブジェクト}
+ * {@.en NamingServer object}
+ *
*/
public Names(final String meth, final String name, NamingBase naming) {
method = meth;
@@ -457,92 +518,117 @@
}
/**
- * <p>NamingServerタイプ</p>
+ * {@.ja NamingServerタイプ}
+ * {@.en NamingServer type}
*/
public String method;
/**
- * <p>NamingServer名称</p>
+ * {@.ja NamingServer名称}
+ * {@.en NamingServer name}
*/
public String nsname;
/**
- * <p>NameServerオブジェクト</p>
+ * {@.ja NameServerオブジェクト}
+ * {@.en NameServer object}
*/
public NamingBase ns;
}
/**
- * <p>登録されたNameServer</p>
+ * {@.ja 登録された NameServer リスト}
+ * {@.en NameServer list}
*/
protected Vector<Names> m_names = new Vector<Names>();
/**
- * <p>Naming Service登録用コンポーネントクラスです。</p>
+ * {@.ja Naming Service登録用コンポーネントクラス}
+ * {@.en Class for component management}
*/
protected class Comps {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*
- * @param n コンポーネント名称
- * @param obj 登録対象オブジェクト
+ * @param n
+ * {@.ja コンポーネント名称}
+ * {@.en Component name}
+ * @param obj
+ * {@.ja 登録対象オブジェクト}
+ * {@.en object}
*/
public Comps(final String n, final RTObject_impl obj) {
name = n;
rtobj = obj;
}
/**
- * <p>コンポーネント名称</p>
+ * {@.ja コンポーネント名称}
+ * {@.en Component name}
*/
public String name;
/**
- * <p>登録対象オブジェクト</p>
+ * {@.ja 登録対象オブジェクト}
+ * {@.en object}
*/
public RTObject_impl rtobj;
}
/**
- * <p>Naming Service登録用マネージャサーバントクラスです。</p>
+ * {@.ja Naming Service登録用マネージャサーバントクラス}
+ * {@.en Class for ManagerServant management}
*/
protected class Mgr {
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*
* @param n
+ * {@.ja 名称}
+ * {@.en name}
* @param obj
+ * {@.ja オブジェクト}
+ * {@.en object}
*/
public Mgr(final String n, final ManagerServant obj) {
name = n;
mgr = obj;
}
/**
- * <p>コンポーネント名称</p>
+ * {@.ja コンポーネント名称}
+ * {@.en Component name}
*/
public String name;
/**
- * <p>登録対象マネージャサーバント</p>
+ * {@.ja 登録対象マネージャサーバント}
+ * {@.en ManagerServant}
*/
public ManagerServant mgr;
}
/**
- * <p>登録されたコンポーネント</p>
+ * {@.ja 登録されたコンポーネントリスト}
+ * {@.en Component list}
*/
protected Vector<Comps> m_compNames = new Vector<Comps>();
/**
- * <p>登録されたマネージャサーバント</p>
+ * {@.ja 登録されたManagerServantリスト}
+ * {@.en ManagerServant list}
*/
protected Vector<Mgr> m_mgrNames = new Vector<Mgr>();
/**
- * <p>タイマーに登録されたリスナーから呼び出されるメソッドです。</p>
+ * {@.ja タイマーに登録されたリスナーから呼び出されるメソッド}
+ * {@.en Method that calls from listener registered in timer}
*/
public void doOperate() {
this.update();
}
/**
- * <p>Managerオブジェクト</p>
+ * {@.ja Managerオブジェクト}
+ * {@.en Manager object}
*/
protected Manager m_manager;
/**
- * <p>Logging用フォーマットオブジェクト</p>
+ * {@.ja Logging用フォーマットオブジェクト}
+ * {@.en Format object for Logging}
*/
protected Logbuf rtcout;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingOnCorba.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingOnCorba.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NamingOnCorba.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,13 +1,18 @@
package jp.go.aist.rtm.RTC;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+
import org.omg.CORBA.ORB;
-
-import jp.go.aist.rtm.RTC.log.Logbuf;
-import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-/**
-* <p>CORBA用Naming Serviceクラスです。</p>
-*/
+ /**
+ * {@.ja CORBA 用 NamingServer 管理クラス。}
+ * {@.en NamingServer management class for CORBA}
+ *
+ * <p>
+ * {@.ja CORBA 用 NamingServer 管理用クラス。
+ * CORBA コンポーネントの NamingService への登録、解除などを管理する。}
+ * {@.en NamingServer management class for CORBA.
+ * Manage to register and unregister CORBA components to NamingService.}
+ */
class NamingOnCorba implements NamingBase {
/**
@@ -81,11 +86,15 @@
}
/**
- * <p> bindObject </p>
+ * {@.ja 指定したManagerServantをNamingServiceへバインド}
+ * {@.en Bind the specified ManagerServants to NamingService}
*
- * @param name bind時の名称
- * @param mgr bind対象マネージャサーバント
- *
+ * @param name
+ * {@.ja バインド時の名称}
+ * {@.en Names at the binding}
+ * @param mgr
+ * {@.ja バインド対象ManagerServant}
+ * {@.en The target ManagerServants for the binding}
*/
public void bindObject(final String name, final ManagerServant mgr) {
try{
@@ -110,7 +119,7 @@
*
*/
public void unbindObject(final String name) {
- rtcout.println(rtcout.INFO, "unbindObject(name = " +name+")");
+ rtcout.println(Logbuf.INFO, "unbindObject(name = " +name+")");
try {
m_cosnaming.unbind(name);
} catch (Exception ex) {
@@ -128,13 +137,14 @@
*
*/
public boolean isAlive() {
- rtcout.println(rtcout.TRACE, "isAlive()");
+ rtcout.println(Logbuf.TRACE, "isAlive()");
return m_cosnaming.isAlive();
}
private CorbaNaming m_cosnaming;
/**
* {@.ja Logging用フォーマットオブジェクト}
+ * {@.en Format object for Logging}
*/
protected Logbuf rtcout;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NumberingPolicy.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NumberingPolicy.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/NumberingPolicy.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,22 +1,58 @@
package jp.go.aist.rtm.RTC;
/**
-* <p>オブジェクト生成時のナンバーリング・ポリシー(命名規則)管理用インターフェースです。</p>
-*/
+ * {@.ja オブジェクト生成時ネーミング・ポリシー(命名規則)管理用
+ * 抽象インターフェース。}
+ * {@.en Abstruct class for naming policy management when creating objects.}
+ *
+ * <p>
+ * {@.ja オブジェクトを生成する際のネーミング・ポリシー(命名規則)を
+ * 管理するための抽象インターフェースクラス。
+ * 具象クラスは、以下の純粋仮想関数の実装を提供しなければならない。
+ * <ul>
+ * <li> onCreate() : オブジェクト生成時の名称作成
+ * <li> onDelete() : オブジェクト削除時の名称解放
+ * </ul>}
+ * {@.en This is the abstract interface class to manage the naming policy when
+ * creating objects.
+ * Concrete classes must implement the following pure virtual functions.
+ * <ul>
+ * <li> onCreate() : Create the name when creating objects.
+ * <li> onDelete() : Delete the name when deleting objects.
+ * </ul>}
+ */
public interface NumberingPolicy {
- /**
- * <p>オブジェクト生成時に対象オブジェクトの名称を決定します。</p>
- *
- * @param obj 命名対象オブジェクト
- *
- * @return オブジェクト名
- */
+ /**
+ * {@.ja オブジェクト生成時の名称作成。}
+ * {@.en Create the name when creating objects.}
+ *
+ * <p>
+ * {@.ja オブジェクト生成時の名称を生成するための純粋仮想関数}
+ * {@.en Pure virtual function to create the name when creating objects.}
+ *
+ * @param obj
+ * {@.ja 名称生成対象オブジェクト}
+ * {@.en The target object for the creation}
+ *
+ * @return
+ * {@.ja 生成したオブジェクト名称}
+ * {@.en Name of the created object}
+ *
+ */
public String onCreate(RTObject_impl obj);
- /**
- * <p>削除対象のオブジェクト名を解除します。</p>
- *
- * @param obj 削除対象オブジェクト
- */
+ /**
+ * {@.ja オブジェクト削除時の名称解放。}
+ * {@.en Delete the name when deleting objects.}
+ *
+ * <p>
+ * {@.ja オブジェクト削除時に名称を解放するための純粋仮想関数}
+ * {@.en Pure virtual function to delete the name when deleting object.}
+ *
+ * @param obj
+ * {@.ja 名称解放対象オブジェクト}
+ * {@.en The target object of the delete}
+ *
+ */
public void onDelete(RTObject_impl obj);
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectCreator.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectCreator.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectCreator.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,17 +1,21 @@
-package jp.go.aist.rtm.RTC;
-/**
- * <p> </p>
- */
-public interface ObjectCreator<ABSTRACTCLASS>{
-
- /**
- * <p> creator_ </p>
- *
- * @return Object Created instances
- *
- */
- public ABSTRACTCLASS creator_();
-
-}
-
-
+package jp.go.aist.rtm.RTC;
+/**
+ * {@.ja オブジェクト生成用インターフェース}
+ * {@.en Interface for object generation}
+ */
+public interface ObjectCreator<ABSTRACTCLASS>{
+
+ /**
+ * {@.ja インスタンスを生成する。}
+ * {@.en Generates the instance.}
+ *
+ * @return
+ * {@.ja 生成したインスタンス}
+ * {@.en Object Created instances}
+ *
+ */
+ public ABSTRACTCLASS creator_();
+
+}
+
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectDestructor.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectDestructor.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectDestructor.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,16 +1,21 @@
-package jp.go.aist.rtm.RTC;
-/**
- * <p> </p>
- */
-public interface ObjectDestructor {
-
- /**
- * <p> destructor_ </p>
- *
- * @param obj The target instances for destruction
- *
- */
- public void destructor_(Object obj);
-
-}
-
+package jp.go.aist.rtm.RTC;
+/**
+ * {@.ja オブジェクト破棄用インターフェース}
+ * {@.en Interface for object destruction}
+ */
+public interface ObjectDestructor {
+
+ /**
+ * {@.ja インスタンスを破棄する。}
+ * {@.en Destroys the object.}
+ * <p> destructor_ </p>
+ *
+ * @param obj
+ * {@.ja 破壊するインスタンス}
+ * {@.en The target instances for destruction}
+ *
+ */
+ public void destructor_(Object obj);
+
+}
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectManager.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectManager.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/ObjectManager.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -5,10 +5,19 @@
import jp.go.aist.rtm.RTC.util.equalFunctor;
/**
- * <p>オブジェクト管理クラスです。</p>
+ * {@.ja オブジェクト管理クラス。}
+ * {@.en Class for managing objects}
*
- * @param <IDENTIFIER> オブジェクト識別子のデータ型を指定します。
- * @param <TARGET> 管理対象となるオブジェクトの型を指定します。
+ * <p>
+ * {@.ja 各種オブジェクトを管理するためのクラス。}
+ * {@.en This is a class for managing various objects.}
+ *
+ * @param <IDENTIFIER>
+ * {@.ja オブジェクト識別子のデータ型を指定する}
+ * {@.en The data type of the object flag is specified.}
+ * @param <TARGET>
+ * {@.ja 管理対象となるオブジェクトの型を指定する}
+ * {@.en The type of the object to be managed is specified.}
*/
public class ObjectManager<IDENTIFIER, TARGET> {
@@ -16,12 +25,26 @@
}
/**
- * <p>オブジェクトを登録します。すでに同一と判定されるオブジェクトが登録済みの場合は、
- * 指定したオブジェクトの登録は行われません。</p>
+ * {@.ja 指定したオブジェクトを登録。}
+ * {@.en Register the specified object}
*
- * @param obj 登録対象のオブジェクト
- * @param equalFunc 同一判定に用いるオブジェクト
- * @return 指定したオブジェクトが登録された場合trueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja 指定したオブジェクトを登録する。
+ * 同一オブジェクトが登録済みの場合は、何も行わない。}
+ * {@.en Register the object that was specified.
+ * If the same object is already registered, this does not anything.}
+ *
+ * @param obj
+ * {@.ja 登録対象オブジェクト}
+ * {@.en The target object for the registration}
+ * @param equalFunc
+ * {@.ja 同一判定に用いるオブジェクト}
+ * {@.en The Object used for the same judgment.}
+ *
+ * @return
+ * {@.ja 登録処理結果(オブジェクトを登録した場合にtrue)}
+ * {@.en Registration result (True if object was registerd)}
+ *
*/
public boolean registerObject(TARGET obj, equalFunctor equalFunc) {
@@ -40,11 +63,26 @@
}
/**
- * <p>指定した同一判定に合致するオブジェクトの登録を解除します。</p>
+ * {@.ja 指定したオブジェクトを登録解除する。}
+ * {@.en Unregister the specified object}
*
- * @param equalFunc 同一判定に用いるオブジェクト
- * @return 登録解除に成功した場合は、そのオブジェクトを返します。<br />
- * 指定した条件に合致するオブジェクトが存在しなかった場合は、nullを返します。
+ * <p>
+ * {@.ja 指定した同一判定に合致するオブジェクトの登録を解除し、取得する。
+ * 指定したオブジェクトが登録されていない場合にはNULLを返す。}
+ * {@.en Unregister the object that was specified and get it.
+ * This operation returns NULL if the specified object is not
+ * registered.}
+ *
+ * @param equalFunc
+ * {@.ja 同一判定に用いるオブジェクト}
+ * {@.en The object of the target object for the unregistration}
+ *
+ * @return
+ * {@.ja 登録解除に成功した場合は、そのオブジェクトを返す。
+ * 指定した条件に合致するオブジェクトが存在しなかった場合は、
+ * nullを返す。}
+ * {@.en Unregistered object.
+ * Returns NULL if the specified object is not registered.}
*/
public TARGET unregisterObject(equalFunctor equalFunc) {
@@ -63,11 +101,27 @@
}
/**
- * <p>登録されているオブジェクトの中から、指定した条件に合致するものを検索して取得します。</p>
+ * {@.ja オブジェクトを検索する。}
+ * {@.en Find the object}
*
- * @param equalFunc 同一判定に用いるオブジェクト
- * @return 条件に合致するオブジェクトが見つかった場合は、そのオブジェクトを返します。<br />
- * 条件に合致するオブジェクトが見つからない場合は、nullを返します。
+ * <p>
+ * {@.ja 登録されているオブジェクトの中から指定した条件に合致する
+ * オブジェクトを検索して取得する。
+ * 指定した条件に合致するオブジェクトが登録されていない場合にはNULLを返す。}
+ * {@.en Find the object that matches the specified condition among
+ * the registered objects and get it.
+ * This operation returns NULL if the object that does matches the specified
+ * condition is not registered.}
+ *
+ * @param equalFunc
+ * {@.ja 同一判定に用いるオブジェクト}
+ * {@.en The object of the target object for finding}
+ *
+ * @return
+ * {@.ja 条件に合致するオブジェクトが見つかった場合は、
+ * そのオブジェクトを返す。
+ * 条件に合致するオブジェクトが見つからない場合は、nullを返す。}
+ * {@.en Result of finding object}
*/
public synchronized TARGET find(equalFunctor equalFunc) {
@@ -81,9 +135,13 @@
}
/**
- * <p>登録されているオブジェクトのリストを取得します。</p>
+ * {@.ja 登録されているオブジェクトのリストを取得する。}
+ * {@.en Get a list of obejects that are registerd}
+ *
+ * @return
+ * {@.ja 登録されているオブジェクト・リスト}
+ * {@.en List of registerd objects.}
*
- * @return 登録されているオブジェクトリスト
*/
public synchronized Vector<TARGET> getObjects() {
@@ -91,7 +149,8 @@
}
/**
- * <p>登録されているオブジェクトリスト</p>
+ * {@.ja 登録されているオブジェクトリスト}
+ * {@.en The list of registered objects}
*/
protected Vector<TARGET> m_objects = new Vector<TARGET>();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/OutPortConsumerFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/OutPortConsumerFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/OutPortConsumerFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,29 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>OutPortConsumer用ファクトリの実装です。</p>
+ * {@.ja OutPortConsumer用ファクトリの実装}
+ * {@.en Implement of factory for OutPortConsumer}
*/
public class OutPortConsumerFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*/
private OutPortConsumerFactory() {
}
/**
- * <p> instance </p>
+ * {@.ja インスタンス生成。}
+ * {@.en Create instance}
*
- * @return OutPortConsumerFactory object
+ * <p>
+ * {@.ja インスタンスを生成する。}
+ *
+ * @return
+ * {@.ja インスタンス}
+ * {@.en OutPortConsumerFactory object}
+ *
*/
public static OutPortConsumerFactory instance() {
if (factory_global == null) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/OutPortProviderFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/OutPortProviderFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/OutPortProviderFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,29 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>OutPortProvider用ファクトリの実装です。</p>
+ * {@.ja OutPortProvider用ファクトリの実装}
+ * {@.en Implement of factory for OutPortProvider}
*/
public class OutPortProviderFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*/
private OutPortProviderFactory() {
}
/**
- * <p> instance </p>
+ * {@.ja インスタンス生成。}
+ * {@.en Create instance}
*
- * @return OutPortProviderFactory object
+ * <p>
+ * {@.ja インスタンスを生成する。}
+ *
+ * @return
+ * {@.ja インスタンス}
+ * {@.en OutPortProviderFactory object}
+ *
*/
public static OutPortProviderFactory instance() {
if (factory_global == null) {
@@ -32,7 +41,8 @@
return factory_global;
}
/**
- * <p> mutex </p>
+ * {@.ja 排他制御用変数}
+ * {@.en Variable for exclusive control}
*/
private static String factory_global_mutex = new String();
/**
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTask.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTask.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTask.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,447 +1,662 @@
-package jp.go.aist.rtm.RTC;
-
-
-import java.lang.Object;
-import java.lang.Thread;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.IllegalAccessException;
-
-import jp.go.aist.rtm.RTC.util.TimeValue;
-import jp.go.aist.rtm.RTC.TimeMeasure;
-import jp.go.aist.rtm.RTC.ObjectCreator;
-import jp.go.aist.rtm.RTC.ObjectDestructor;
-import jp.go.aist.rtm.RTC.PeriodicTaskFactory;
-
-
-
-/**
-* <p>PeriodicTask</p>
-*/
-public class PeriodicTask extends PeriodicTaskBase implements ObjectCreator<PeriodicTaskBase>, ObjectDestructor{
-
- /**
- * <p> ctor </p>
- */
- public PeriodicTask() {
- m_nowait = false;
- m_func = null;
- m_deleteInDtor = true;
- m_execCount = 0;
- m_execCountMax = 10;
- m_periodCount = 0;
- m_periodCountMax = 10;
- m_execTime = new TimeMeasure();
- m_execStat = new statistics_t();
- m_execStat.stat = m_execTime.getStatistics();
-
- m_periodTime = new TimeMeasure();
- m_periodStat = new statistics_t();
- m_periodStat.stat = m_periodTime.getStatistics();
- }
-
- /**
- * <p> Starting the task </p>
- *
- * Starting a thread to execute a task. If the task/thread is
- * started properly, it will return 'TRUE'. if the task/thread
- * are already started or task function object is not set, 'FALSE'
- * will be returned.
- *
- *
- */
- public void activate() {
- synchronized (m_alive.mutex) {
- if (m_func == null) { return; }
- if (m_alive.value) { return; }
-
- m_alive.value = true;
- start();
- }
- }
-
- /**
- *
- * <p> Finalizing the task </p>
- *
- * Finalizing the task running.
- *
- */
- public void _finalize() {
- synchronized (m_alive.mutex) {
- m_alive.value = false;
- }
- synchronized (m_suspend.mutex) {
- m_suspend.suspend = false;
- try {
- m_suspend.mutex.notify();
- }
- catch(java.lang.IllegalMonitorStateException e) {
- }
- }
- }
-
- /**
- * <p> Suspending the task </p>
- *
- * Suspending the task running.
- *
- */
- public int _suspend() {
- synchronized (m_suspend.mutex) {
- m_suspend.suspend = true;
- }
- return 0;
- }
-
- /**
- * <p> Resuming the suspended task </p>
- *
- * Resuming the suspended task
- *
- */
- public int _resume() {
- m_periodTime.reset();
- m_execTime.reset();
-
- synchronized (m_suspend.mutex) {
- m_suspend.suspend = false;
- try {
- m_suspend.mutex.notify();
- }
- catch(java.lang.IllegalMonitorStateException e) {
- }
- }
- return 0;
- }
-
- /**
- * <p> Executing the suspended task one tick </p>
- *
- * Executing the suspended task one tick
- *
- */
- public void signal() {
- synchronized (m_suspend.mutex) {
- try {
- m_suspend.mutex.notify();
- }
- catch(java.lang.IllegalMonitorStateException e) {
- }
- }
- }
-
- /**
- * <p> Setting task execution function </p>
- *
- * @param obj
- * @param delete_in_dtor
- * @return boolean
- *
- */
- public boolean setTask(Object obj, String func, boolean delete_in_dtor) {
- if (obj == null) {
- return false;
- }
- m_deleteInDtor = delete_in_dtor;
- m_func = new TaskFuncBase(obj,func);
- return true;
- }
- /**
- * <p> Setting task execution function </p>
- *
- * @param obj Set int (*)() type function pointer
- * @return boolean
- *
- */
- public boolean setTask(Object obj) {
- return setTask(obj, "svc", true);
- }
-
- public boolean setTask(Object obj, String func) {
- return setTask(obj, func, true);
- }
-
- public boolean setTask(Object obj, boolean delete_in_dtor) {
- return setTask(obj, "svc", delete_in_dtor);
- }
- /**
- * <p> Setting task execution period </p>
- *
- * @param period Execution period [sec]
- *
- */
- public void setPeriod(double period) {
- m_period.convert(period);
-
- if (m_period.sec() == 0 && m_period.usec() == 0)
- {
- m_nowait = true;
- return;
- }
- m_nowait = false;
- return;
- }
-
- /**
- * <p> Setting task execution period </p>
- *
- * @param period Execution period
- *
- */
- public void setPeriod(TimeValue period) {
- m_period = period;
-
- if (m_period.sec() == 0 && m_period.usec() == 0)
- {
- m_nowait = true;
- return;
- }
- m_nowait = false;
- return;
- }
-
- /**
- * <p> This function can set the measurement of the execution time
- * effective/invalidly. </p>
- * @param value true:effectuation
- */
- public void executionMeasure(boolean value) {
- m_execMeasure = value;
- }
-
- /**
- * <p> This function sets the cycle to measure the execution time. </p>
- *
- * @param n Cycle frequency
- */
- public void executionMeasureCount(int n) {
- m_execCountMax = n;
- }
-
- /**
- * <p> This function can set the measurement of the execution time i
- * effective/invalidly. </p>
- * @param value true:effectuation
- */
- public void periodicMeasure(boolean value) {
- m_periodMeasure = value;
- }
-
- /**
- * <p> This function sets the cycle to measure the execution time. </p>
- *
- * @param n Cycle frequency
- */
- public void periodicMeasureCount(int n) {
- m_periodCountMax = n;
- }
-
- /**
- * <p> This function acquires the measurement result of the execution
- * time. </p>
- * @return TimeMeasure.Statistics
- */
- public TimeMeasure.Statistics getExecStat() {
- synchronized (m_execStat.mutex) {
- return m_execStat.stat;
- }
- }
-
- /**
- * <p> This function acquires the measurement result at time of the
- * cycle. </p>
- * @return TimeMeasure.Statistics
- */
- public TimeMeasure.Statistics getPeriodStat() {
- synchronized (m_periodStat.mutex) {
- return m_periodStat.stat;
- }
- }
-
-
- /**
- * <p> svc </p>
- *
- * @return int
- *
- */
- protected int svc() {
- while (m_alive.value){ // needs lock?
- if (m_periodMeasure) {
- m_periodTime.tack();
- }
- { // wait if suspended
- synchronized (m_suspend.mutex) {
- if (m_suspend.suspend) {
- try {
- m_suspend.mutex.wait();
- }
- catch(InterruptedException e ){
- }
- // break if finalized
- if (!m_alive.value)
- {
- return 0;
- }
- }
- }
- }
- if (m_periodMeasure) { m_periodTime.tick(); }
-
- // task execution
- if (m_execMeasure) { m_execTime.tick(); }
- m_func.svc();
- if (m_execMeasure) { m_execTime.tack(); }
-
- // wait for next period
- updateExecStat();
- sleep();
- updatePeriodStat();
- }
- return 0;
- }
- /**
- * <p> run </p>
- */
- public void run() {
-
- this.svc();
- }
- /**
- * <p> sleep </p>
- *
- */
- protected void sleep() {
- if (m_nowait) {
- return;
- }
- TimeValue tv =
- new TimeValue(m_period.toDouble()-m_execTime.interval().toDouble());
- if (tv.toDouble()<0) {
- return;
- }
- try{
- sleep((long)(tv.toDouble()*1000));
- }
- catch(InterruptedException e){
- }
- }
- /**
- * <p> updateExecStat </p>
- *
- */
- protected void updateExecStat() {
- if (m_execCount > m_execCountMax) {
- synchronized (m_execStat.mutex) {
- m_execStat.stat = m_execTime.getStatistics();
- m_execCount = 0;
- }
- }
- ++m_execCount;
- }
- /**
- * <p> updatePeriodStat </p>
- *
- */
- protected void updatePeriodStat() {
- if (m_periodCount > m_periodCountMax) {
- synchronized (m_periodStat.mutex) {
- m_periodStat.stat = m_periodTime.getStatistics();
- m_periodCount = 0;
- }
- }
- ++m_periodCount;
- }
-
- // execution period
- protected TimeValue m_period = new TimeValue(0.0);
- protected boolean m_nowait;
- protected TaskFuncBase m_func;
- protected boolean m_deleteInDtor;
-
- // alive flag
- protected class alive_t
- {
- public alive_t(boolean val) {
- value = val;
- }
- public boolean value;
- public String mutex = new String();
- };
- protected alive_t m_alive = new alive_t(false);
-
- // suspend flag
- protected class suspend_t
- {
- public suspend_t(boolean sus){
- suspend = sus;
- }
- public boolean suspend;
- public String mutex = new String();
- };
- protected suspend_t m_suspend = new suspend_t(false);
-
- // time measurement statistics struct
- protected class statistics_t
- {
- public TimeMeasure.Statistics stat;
- public String mutex = new String();
- };
-
- // variables for execution time measurement
- protected boolean m_execMeasure;
- protected int m_execCount;
- protected int m_execCountMax;
- protected statistics_t m_execStat;
- protected TimeMeasure m_execTime;
-
- // variables for period time measurement
- protected boolean m_periodMeasure;
- protected int m_periodCount;
- protected int m_periodCountMax;
- protected statistics_t m_periodStat;
- protected TimeMeasure m_periodTime;
-
- /**
- * <p> creator_ </p>
- *
- * @return Object Created instances
- *
- */
- public PeriodicTaskBase creator_() {
- return new PeriodicTask();
- }
- /**
- * <p> destructor_ </p>
- *
- * @param obj The target instances for destruction
- *
- */
- public void destructor_(Object obj) {
- PeriodicTaskBase task = (PeriodicTaskBase)obj;
- task._finalize();
- try{
- task.join();
- }
- catch(java.lang.InterruptedException e){
- ;
- }
- obj = null;
- }
-
- /**
- * <p> PeriodicTaskInit </p>
- *
- */
- public static void PeriodicTaskInit() {
- final PeriodicTaskFactory<PeriodicTaskBase,String> factory
- = PeriodicTaskFactory.instance();
-
- factory.addFactory("default",
- new PeriodicTask(),
- new PeriodicTask());
-
- }
-};
-
+package jp.go.aist.rtm.RTC;
+
+import jp.go.aist.rtm.RTC.util.TimeValue;
+
+
+
+ /**
+ * {@.ja 周期タスクスレッド実行クラス。}
+ * {@.en PeriodicTask class}
+ *
+ * <p>
+ * {@.ja 特定の関数を周期実行するためのスレッドオブジェクトを実現する。
+ * 使用手順は以下の通り。
+ *
+ * <ol>
+ * <li>task; // インスタンス生成
+ * <li>task.setTask(TaskFuncBase(obj, mem_func)); // 実行する関数を与える
+ * <li>task.activate(); // スレッドをスタートさせる
+ * </ol>
+ *
+ * <ul>
+ * <li>task.suspend(); // 周期実行を止める
+ * <li>task.signal(); // 1周期だけ実行
+ * <li>task.resume(); // 周期実行を再開
+ *
+ * <li>task.finalize(); // タスクを終了させる</ul>}
+ *
+ */
+public class PeriodicTask extends PeriodicTaskBase implements ObjectCreator<PeriodicTaskBase>, ObjectDestructor{
+
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ */
+ public PeriodicTask() {
+ m_nowait = false;
+ m_func = null;
+ m_deleteInDtor = true;
+ m_execCount = 0;
+ m_execCountMax = 10;
+ m_periodCount = 0;
+ m_periodCountMax = 10;
+ m_execTime = new TimeMeasure();
+ m_execStat = new statistics_t();
+ m_execStat.stat = m_execTime.getStatistics();
+
+ m_periodTime = new TimeMeasure();
+ m_periodStat = new statistics_t();
+ m_periodStat.stat = m_periodTime.getStatistics();
+ }
+
+ /**
+ * {@.ja タスク実行を開始する。}
+ * {@.en Starting the task}
+ *
+ * <p>
+ * {@.ja タスクの実行を開始するためにスレッドをスタートさせる。タスクが
+ * 正常に開始された場合は true が返り、すでにタスクが開始済み、また
+ * は実行するタスクが設定されていなければ false を返す。}
+ * {@.en Starting a thread to execute a task. If the task/thread is
+ * started properly, it will return 'TRUE'. if the task/thread
+ * are already started or task function object is not set, 'FALSE'
+ * will be returned.}
+ *
+ */
+ public void activate() {
+ synchronized (m_alive.mutex) {
+ if (m_func == null) { return; }
+ if (m_alive.value) { return; }
+
+ m_alive.value = true;
+ start();
+ }
+ }
+
+ /**
+ * {@.ja タスク実行を終了する。}
+ * {@.en Finalizing the task}
+ *
+ * <p>
+ * {@.ja 実行中のタスクを終了する。}
+ * {@.en Finalizing the task running.}
+ *
+ */
+ public void _finalize() {
+ synchronized (m_alive.mutex) {
+ m_alive.value = false;
+ }
+ synchronized (m_suspend.mutex) {
+ m_suspend.suspend = false;
+ try {
+ m_suspend.mutex.notify();
+ }
+ catch(java.lang.IllegalMonitorStateException e) {
+ }
+ }
+ }
+
+ /**
+ * {@.ja タスク実行を中断する。}
+ * {@.en Suspending the task}
+ *
+ * <p>
+ * {@.ja 実行中のタスクを中断する。}
+ * {@.en Suspending the task running.}
+ *
+ */
+ public int _suspend() {
+ synchronized (m_suspend.mutex) {
+ m_suspend.suspend = true;
+ }
+ return 0;
+ }
+
+ /**
+ * {@.ja 中断されているタスクを再開する。}
+ * {@.en Resuming the suspended task}
+ * <p>
+ * {@.ja 中断されているタスクを再開する}
+ * {@.en Resuming the suspended task}
+ *
+ */
+ public int _resume() {
+ m_periodTime.reset();
+ m_execTime.reset();
+
+ synchronized (m_suspend.mutex) {
+ m_suspend.suspend = false;
+ try {
+ m_suspend.mutex.notify();
+ }
+ catch(java.lang.IllegalMonitorStateException e) {
+ }
+ }
+ return 0;
+ }
+
+ /**
+ * {@.ja 中断されているタスクを1周期だけ実行する。}
+ * {@.en Executing the suspended task one tick}
+ *
+ * <p>
+ * {@.ja 中断されているタスクを1周期だけ実行する}
+ * {@.en Executing the suspended task one tick}
+ *
+ */
+ public void signal() {
+ synchronized (m_suspend.mutex) {
+ try {
+ m_suspend.mutex.notify();
+ }
+ catch(java.lang.IllegalMonitorStateException e) {
+ }
+ }
+ }
+
+ /**
+ * {@.ja タスク実行関数をセットする。}
+ * {@.en Setting task execution function}
+ *
+ *
+ * @param obj
+ * {@.ja オブジェクト}
+ * {@.en Object}
+ * @param func
+ * {@.ja 関数名}
+ * {@.en Function name}
+ * @param delete_in_dtor
+ * {@.ja 削除フラグ}
+ * {@.en Delete flag.}
+ */
+ public boolean setTask(Object obj, String func, boolean delete_in_dtor) {
+ if (obj == null) {
+ return false;
+ }
+ m_deleteInDtor = delete_in_dtor;
+ m_func = new TaskFuncBase(obj,func);
+ return true;
+ }
+ /**
+ * {@.ja タスク実行関数をセットする。}
+ * {@.en Setting task execution function}
+ *
+ *
+ * @param obj
+ * {@.ja オブジェクト}
+ * {@.en object}
+ */
+ public boolean setTask(Object obj) {
+ return setTask(obj, "svc", true);
+ }
+
+ /**
+ * {@.ja タスク実行関数をセットする。}
+ * {@.en Setting task execution function}
+ *
+ *
+ * @param obj
+ * {@.ja オブジェクト}
+ * {@.en Object}
+ * @param func
+ * {@.ja 関数名}
+ * {@.en Function name}
+ */
+ public boolean setTask(Object obj, String func) {
+ return setTask(obj, func, true);
+ }
+
+ /**
+ * {@.ja タスク実行関数をセットする。}
+ * {@.en Setting task execution function}
+ *
+ * @param obj
+ * {@.ja オブジェクト。}
+ * {@.en Object}
+ * @param delete_in_dtor
+ * {@.ja 削除フラグ}
+ * {@.en Delete flag.}
+ */
+ public boolean setTask(Object obj, boolean delete_in_dtor) {
+ return setTask(obj, "svc", delete_in_dtor);
+ }
+ /**
+ * {@.ja タスク実行周期をセットする。}
+ * {@.en Setting task execution period}
+ *
+ * @param period
+ * {@.ja 実行周期 [sec]}
+ * {@.en Execution period [sec]}
+ *
+ */
+ public void setPeriod(double period) {
+ m_period.convert(period);
+
+ if (m_period.sec() == 0 && m_period.usec() == 0)
+ {
+ m_nowait = true;
+ return;
+ }
+ m_nowait = false;
+ return;
+ }
+
+ /**
+ * {@.ja タスク実行周期をセットする。}
+ * {@.en Setting task execution period}
+ *
+ * @param period
+ * {@.ja 実行周期}
+ * {@.en period Execution period}
+ *
+ */
+ public void setPeriod(TimeValue period) {
+ m_period = period;
+
+ if (m_period.sec() == 0 && m_period.usec() == 0)
+ {
+ m_nowait = true;
+ return;
+ }
+ m_nowait = false;
+ return;
+ }
+
+ /**
+ * {@.ja タスク関数実行時間計測を有効にするか。}
+ * {@.en Validate a Task execute time measurement}
+ *
+ * <p>
+ * {@.en This function can set the measurement of the execution time
+ * effective/invalidly. }
+ *
+ * @param value
+ * {@.ja フラグ(true: 有効, false: 無効)}
+ * {@.en true:effectuation}
+ */
+ public void executionMeasure(boolean value) {
+ m_execMeasure = value;
+ }
+
+ /**
+ * {@.ja タスク周期時間計測周期。}
+ * {@.en Task period time measurement count}
+ *
+ * <p>
+ * {@.en This function sets the cycle to measure the execution time.}
+ *
+ * @param n
+ * {@.ja 計測周期}
+ * {@.en Cycle frequency}
+ *
+ */
+ public void executionMeasureCount(int n) {
+ m_execCountMax = n;
+ }
+
+ /**
+ * {@.ja タスク周期時間計測を有効にするか。}
+ * {@.en Validate a Task period time measurement}
+ *
+ * <p>
+ * {@.en This function can set the measurement of the execution time
+ * effective/invalidly.}
+ * @param value
+ * {@.ja フラグ(true: 有効, false: 無効)}
+ * {@.en true:effectuation}
+ */
+ public void periodicMeasure(boolean value) {
+ m_periodMeasure = value;
+ }
+
+ /**
+ * {@.ja タスク周期時間計測周期。}
+ * {@.en Task period time measurement count}
+ *
+ * <p>
+ * {@.en This function sets the cycle to measure the execution time.}
+ *
+ * @param n
+ * {@.ja 計測周期}
+ * {@.en Cycle frequency}
+ */
+ public void periodicMeasureCount(int n) {
+ m_periodCountMax = n;
+ }
+
+ /**
+ * {@.ja タスク関数実行時間計測結果を取得。}
+ * {@.en Get a result in task execute time measurement}
+ * <p>
+ * {@.en This function acquires the measurement result of the execution
+ * time.}
+ * @return
+ * {@.ja 実行時間の統計}
+ * {@.en Statistics}
+ */
+ public TimeMeasure.Statistics getExecStat() {
+ synchronized (m_execStat.mutex) {
+ return m_execStat.stat;
+ }
+ }
+
+ /**
+ * {@.ja タスク周期時間計測結果を取得。}
+ * {@.en Get a result in task period time measurement}
+ *
+ * <p>
+ * {@.en This function acquires the measurement result at time of the
+ * cycle.}
+ * @return
+ * {@.ja 実行時間の統計}
+ * {@.en Statistics}
+ */
+ public TimeMeasure.Statistics getPeriodStat() {
+ synchronized (m_periodStat.mutex) {
+ return m_periodStat.stat;
+ }
+ }
+
+
+ /**
+ * {@.ja PeriodicTask 用のスレッド実行}
+ * {@.en Thread execution for PeriodicTask}
+ */
+ protected int svc() {
+ while (m_alive.value){ // needs lock?
+ if (m_periodMeasure) {
+ m_periodTime.tack();
+ }
+ { // wait if suspended
+ synchronized (m_suspend.mutex) {
+ if (m_suspend.suspend) {
+ try {
+ m_suspend.mutex.wait();
+ }
+ catch(InterruptedException e ){
+ }
+ // break if finalized
+ if (!m_alive.value)
+ {
+ return 0;
+ }
+ }
+ }
+ }
+ if (m_periodMeasure) { m_periodTime.tick(); }
+
+ // task execution
+ if (m_execMeasure) { m_execTime.tick(); }
+ m_func.svc();
+ if (m_execMeasure) { m_execTime.tack(); }
+
+ // wait for next period
+ updateExecStat();
+ sleep();
+ updatePeriodStat();
+ }
+ return 0;
+ }
+ /**
+ * {@.ja スレッド実行}
+ * {@.en Thread execution}
+ */
+ public void run() {
+
+ this.svc();
+ }
+ /**
+ * {@.ja スレッド休止}
+ * {@.en Thread sleep}
+ */
+ protected void sleep() {
+ if (m_nowait) {
+ return;
+ }
+ TimeValue tv =
+ new TimeValue(m_period.toDouble()-m_execTime.interval().toDouble());
+ if (tv.toDouble()<0) {
+ return;
+ }
+ try{
+ sleep((long)(tv.toDouble()*1000));
+ }
+ catch(InterruptedException e){
+ }
+ }
+ /**
+ * {@.ja 実行状態更新}
+ * {@.en Update for execute state}
+ */
+ protected void updateExecStat() {
+ if (m_execCount > m_execCountMax) {
+ synchronized (m_execStat.mutex) {
+ m_execStat.stat = m_execTime.getStatistics();
+ m_execCount = 0;
+ }
+ }
+ ++m_execCount;
+ }
+ /**
+ * {@.ja 周期状態更新}
+ * {@.en Update for period state}
+ */
+ protected void updatePeriodStat() {
+ if (m_periodCount > m_periodCountMax) {
+ synchronized (m_periodStat.mutex) {
+ m_periodStat.stat = m_periodTime.getStatistics();
+ m_periodCount = 0;
+ }
+ }
+ ++m_periodCount;
+ }
+
+ // execution period
+ /**
+ * {@.ja タスク実行周期}
+ * {@.en Task execution period}
+ */
+ protected TimeValue m_period = new TimeValue(0.0);
+ /**
+ * {@.ja スレッド休止フラグ}
+ * {@.en Thread sleep flag}
+ */
+ protected boolean m_nowait;
+ /**
+ * {@.ja タスク実行関数}
+ * {@.en Task execution function}
+ */
+ protected TaskFuncBase m_func;
+ /**
+ * {@.ja タスク実行関数削除フラグ}
+ * {@.en Task execution function delete flag}
+ */
+ protected boolean m_deleteInDtor;
+
+ // alive flag
+ /**
+ * {@.ja alive_t クラス}
+ * {@.en alive_t class}
+ */
+ protected class alive_t
+ {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ */
+ public alive_t(boolean val) {
+ value = val;
+ }
+ /**
+ * {@.ja フラグ格納用変数}
+ * {@.en Variable for flag storage}
+ */
+ public boolean value;
+ /**
+ * {@.ja 排他制御用変数}
+ * {@.en Variable for exclusive control}
+ */
+ public String mutex = new String();
+ };
+ /**
+ * {@.ja タスク生存フラグ}
+ * {@.en Task alive flag}
+ */
+ protected alive_t m_alive = new alive_t(false);
+
+ // suspend flag
+ /**
+ * {@.ja タスク中断管理用クラス}
+ * {@.en Class for task suspend management}
+ */
+ protected class suspend_t
+ {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ */
+ public suspend_t(boolean sus){
+ suspend = sus;
+ }
+ /**
+ * {@.ja フラグ格納用変数}
+ * {@.en Variable for flag storage}
+ */
+ public boolean suspend;
+ /**
+ * {@.ja 排他制御用変数}
+ * {@.en Variable for exclusive control}
+ */
+ public String mutex = new String();
+ };
+ /**
+ * {@.ja タスク中断情報}
+ * {@.en Task suspend infomation}
+ */
+ protected suspend_t m_suspend = new suspend_t(false);
+
+ // time measurement statistics struct
+ /**
+ * {@.ja タスク実行時間計測管理用クラス}
+ * {@.en Structure for task execution time measurement management}
+ */
+ protected class statistics_t
+ {
+ /**
+ * {@.ja 計測時間}
+ * {@.en Measurement time}
+ */
+ public TimeMeasure.Statistics stat;
+ /**
+ * {@.ja 排他制御用変数}
+ * {@.en Variable for exclusive control}
+ */
+ public String mutex = new String();
+ };
+
+ // variables for execution time measurement
+ /**
+ * {@.ja タスク実行時間計測フラグ}
+ * {@.en Task execution time measurement flag}
+ */
+ protected boolean m_execMeasure;
+ /**
+ * {@.ja タスク実行時間計測回数}
+ * {@.en Task execution time measurement count}
+ */
+ protected int m_execCount;
+ /**
+ * {@.ja タスク実行時間計測周期}
+ * {@.en Task execution time measurement max count}
+ */
+ protected int m_execCountMax;
+ /**
+ * {@.ja タスク実行時間計測統計}
+ * {@.en Task execution time measurement statistics}
+ */
+ protected statistics_t m_execStat;
+ /**
+ * {@.ja タスク実行時間計測情報}
+ * {@.en Task execution time measurement infomation}
+ */
+ protected TimeMeasure m_execTime;
+
+ // variables for period time measurement
+ /**
+ * {@.ja タスク周期時間計測フラグ}
+ * {@.en Task periodic time measurement flag}
+ */
+ protected boolean m_periodMeasure;
+ /**
+ * {@.ja タスク周期時間計測回数}
+ * {@.en Task periodic time measurement count}
+ */
+ protected int m_periodCount;
+ /**
+ * {@.ja タスク周期時間計測最大数}
+ * {@.en Task periodic time measurement max count}
+ */
+ protected int m_periodCountMax;
+ /**
+ * {@.ja タスク周期時間計測統計}
+ * {@.en Task periodic time measurement statistics}
+ */
+ protected statistics_t m_periodStat;
+ /**
+ * {@.ja タスク周期時間計測情報}
+ * {@.en Task periodic time measurement infomation}
+ */
+ protected TimeMeasure m_periodTime;
+
+ /**
+ * {@.ja PeriodicTaskを生成する。}
+ * {@.en Creats PeriodicTask.}
+ *
+ * @return
+ * {@.ja 生成したインスタンスのPeriodicTaskBase}
+ * {@.en Object Created PeriodicTaskBase}
+ *
+ */
+ public PeriodicTaskBase creator_() {
+ return new PeriodicTask();
+ }
+ /**
+ * {@.ja インスタンスを破棄する。}
+ * {@.en Destroys the object.}
+ *
+ * @param obj
+ * {@.ja 破壊するインスタンス}
+ * {@.en The target instances for destruction}
+ *
+ */
+ public void destructor_(Object obj) {
+ PeriodicTaskBase task = (PeriodicTaskBase)obj;
+ task._finalize();
+ try{
+ task.join();
+ }
+ catch(java.lang.InterruptedException e){
+ ;
+ }
+ obj = null;
+ }
+
+ /**
+ * {@.ja 初期化処理。}
+ * {@.en Initialization}
+ * <p>
+ * {@.ja ファクトリへオブジェクトを追加する。}
+ * {@.en Adds the object to the factory.}
+ *
+ */
+ public static void PeriodicTaskInit() {
+ final PeriodicTaskFactory<PeriodicTaskBase,String> factory
+ = PeriodicTaskFactory.instance();
+
+ factory.addFactory("default",
+ new PeriodicTask(),
+ new PeriodicTask());
+
+ }
+};
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTaskBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTaskBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTaskBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,37 +1,238 @@
-package jp.go.aist.rtm.RTC;
-
-import java.lang.Thread;
-import java.lang.reflect.Method;
-
-import jp.go.aist.rtm.RTC.TaskFuncBase;
-import jp.go.aist.rtm.RTC.TimeMeasure;
-import jp.go.aist.rtm.RTC.util.TimeValue;
-
-/**
- *
- * <p> </p>
- *
- */
-public abstract class PeriodicTaskBase extends Thread {
-
- public abstract void activate();
- public abstract void _finalize();
- public abstract int _suspend();
- public abstract int _resume();
- public abstract void signal();
- public abstract boolean setTask(Object obj, boolean delete_in_dtor);
- public abstract boolean setTask(Object obj);
- public abstract boolean setTask(Object obj, String func);
- public abstract boolean setTask(Object obj, String func, boolean delete_in_dtor);
-
- public abstract void setPeriod(double period);
- public abstract void setPeriod(TimeValue period);
- public abstract void executionMeasure(boolean value);
- public abstract void executionMeasureCount(int n);
- public abstract void periodicMeasure(boolean value);
- public abstract void periodicMeasureCount(int n);
- public abstract TimeMeasure.Statistics getExecStat();
- public abstract TimeMeasure.Statistics getPeriodStat();
-
-}
-
+package jp.go.aist.rtm.RTC;
+
+import jp.go.aist.rtm.RTC.util.TimeValue;
+
+ /**
+ * {@.ja タスク制御用抽象クラス}
+ * {@.en Abstract class for task control}
+ */
+public abstract class PeriodicTaskBase extends Thread {
+
+ /**
+ * {@.ja タスク実行を開始する。}
+ * {@.en Starting the task}
+ * <p>
+ * {@.ja タスク実行を開始する純粋仮想関数}
+ * {@.en Pure virtual function for starting the task.}
+ */
+ public abstract void activate();
+ /**
+ * {@.ja タスク実行を終了する。}
+ * {@.en Finalizing the task}
+ *
+ * <p>
+ * {@.ja タスク実行を終了する純粋仮想関数。}
+ * {@.en Pure virtual function for finalizing the task.}
+ */
+ public abstract void _finalize();
+ /**
+ * {@.ja タスク実行を中断する。}
+ * {@.en Suspending the task}
+ *
+ * <p>
+ * {@.ja タスク実行を中断する純粋仮想関数。}
+ * {@.en Pure virtual function for suspending the task.}
+ *
+ */
+ public abstract int _suspend();
+ /**
+ * {@.ja 中断されているタスクを再開する。}
+ * {@.en Resuming the suspended task}
+ *
+ * <p>
+ * {@.ja 中断されているタスクを再開する純粋仮想関数。}
+ * {@.en Pure virtual function for resuming the suspended task.}
+ *
+ */
+ public abstract int _resume();
+ /**
+ * {@.ja 中断されているタスクを1周期だけ実行する。}
+ * {@.en Executing the suspended task one tick}
+ *
+ * <p>
+ * {@.ja 中断されているタスクを1周期だけ実行する純粋仮想関数。}
+ * {@.en Pure virtual function for executing the suspended task one tick.}
+ */
+ public abstract void signal();
+ /**
+ * {@.ja タスク実行関数をセットする。}
+ * {@.en Setting task execution function}
+ *
+ * <p>
+ * {@.ja タスク実行関数をセットする純粋仮想関数。}
+ * {@.en Pure virtual function for setting task execution function.}
+ *
+ * @param obj
+ * {@.ja オブジェクト。}
+ * {@.en Object}
+ * @param delete_in_dtor
+ * {@.ja 削除フラグ}
+ * {@.en Delete flag.}
+ */
+ public abstract boolean setTask(Object obj, boolean delete_in_dtor);
+ /**
+ * {@.ja タスク実行関数をセットする。}
+ * {@.en Setting task execution function}
+ *
+ * <p>
+ * {@.ja タスク実行関数をセットする純粋仮想関数。}
+ * {@.en Pure virtual function for setting task execution function.}
+ *
+ * @param obj
+ * {@.ja オブジェクト}
+ * {@.en Object}
+ */
+ public abstract boolean setTask(Object obj);
+ /**
+ * {@.ja タスク実行関数をセットする。}
+ * {@.en Setting task execution function}
+ *
+ * <p>
+ * {@.ja タスク実行関数をセットする純粋仮想関数。}
+ * {@.en Pure virtual function for setting task execution function.}
+ *
+ * @param obj
+ * {@.ja オブジェクト}
+ * {@.en Object}
+ * @param func
+ * {@.ja 関数名}
+ * {@.en Function name}
+ */
+ public abstract boolean setTask(Object obj, String func);
+ /**
+ * {@.ja タスク実行関数をセットする。}
+ * {@.en Setting task execution function}
+ *
+ * <p>
+ * {@.ja タスク実行関数をセットする純粋仮想関数。}
+ * {@.en Pure virtual function for setting task execution function.}
+ *
+ * @param obj
+ * {@.ja オブジェクト}
+ * {@.en Object}
+ * @param func
+ * {@.ja 関数名}
+ * {@.en Function name}
+ * @param delete_in_dtor
+ * {@.ja 削除フラグ}
+ * {@.en Delete flag.}
+ */
+ public abstract boolean setTask(Object obj, String func,
+ boolean delete_in_dtor);
+
+ /**
+ * {@.ja タスク実行周期をセットする。}
+ * {@.en Setting task execution period}
+ *
+ * <p>
+ * {@.ja タスク実行周期をセットする純粋仮想関数。}
+ * {@.en Pure virtual function for setting task execution period.}
+ *
+ * @param period
+ * {@.ja 実行周期}
+ * {@.en Execution period.}
+ *
+ */
+ public abstract void setPeriod(double period);
+ /**
+ * {@.ja タスク実行周期をセットする。}
+ * {@.en Setting task execution period}
+ *
+ * <p>
+ * {@.ja タスク実行周期をセットする純粋仮想関数。}
+ * {@.en Pure virtual function for setting task execution period.}
+ *
+ * @param period
+ * {@.ja 実行周期}
+ * {@.en Execution period.}
+ *
+ */
+ public abstract void setPeriod(TimeValue period);
+ /**
+ * {@.ja タスク関数実行時間計測を有効にする。}
+ * {@.en Validate a Task execute time measurement}
+ *
+ * <p>
+ * {@.ja タスク関数実行時間計測を有効にする純粋仮想関数。}
+ * {@.en Pure virtual function for validate a Task execute time
+ * measurement.}
+ *
+ * @param value
+ * {@.ja フラグ(true: 有効, false: 無効)}
+ * {@.en flag(true: Valid, false: Invalid).}
+ *
+ */
+ public abstract void executionMeasure(boolean value);
+ /**
+ * {@.ja タスク関数実行時間計測周期用純粋仮想関数。}
+ * {@.en Task execute time measurement period}
+ *
+ * <p>
+ * {@.ja タスク関数実行時間計測周期用純粋仮想関数。}
+ * {@.en Pure virtual function for task execute time measurement period.}
+ *
+ * @param n
+ * {@.ja 計測周期}
+ * {@.en Measurement period.}
+ *
+ */
+ public abstract void executionMeasureCount(int n);
+ /**
+ * {@.ja タスク周期時間計測を有効にする。}
+ * {@.en Validate a Task period time measurement}
+ *
+ * <p>
+ * {@.ja タスク周期時間計測を有効にする純粋仮想関数。}
+ * {@.en Pure virtual function for validate a Task period time measurement.}
+ *
+ * @param value
+ * {@.ja フラグ(true: 有効, false: 無効)}
+ * {@.en flag(true: Valid, false: Invalid).}
+ */
+ public abstract void periodicMeasure(boolean value);
+ /**
+ * {@.ja タスク周期時間計測周期用純粋仮想関数。}
+ * {@.en Task period time measurement count}
+ *
+ * <p>
+ * {@.ja タスク周期時間計測周期用純粋仮想関数。}
+ * {@.en Pure virtual function for task period time measurement count.}
+ *
+ * @param n
+ * {@.ja 計測周期}
+ * {@.en Measurement period.}
+ *
+ */
+ public abstract void periodicMeasureCount(int n);
+ /**
+ * {@.ja タスク関数実行時間計測結果を取得する。}
+ * {@.en Get a result in task execute time measurement}
+ *
+ * <p>
+ * {@.ja タスク関数実行時間計測結果を取得する純粋仮想関数。}
+ * {@.en Pure virtual function for get a result in task execute
+ * time measurement.}
+ *
+ * @return
+ * {@.ja 実行時間の統計}
+ * {@.en Statistics}
+ *
+ */
+ public abstract TimeMeasure.Statistics getExecStat();
+ /**
+ * {@.ja タスク周期時間計測結果を取得する。}
+ * {@.en Get a result in task period time measurement}
+ *
+ * <p>
+ * {@.ja タスク周期時間計測結果を取得する純粋仮想関数。}
+ * {@.en Pure virtual function for get a result in task period
+ * time measurement.}
+ *
+ * @return
+ * {@.ja 実行時間の統計}
+ * {@.en Statistics}
+ */
+ public abstract TimeMeasure.Statistics getPeriodStat();
+
+}
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTaskFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTaskFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PeriodicTaskFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,29 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>PeriodicTask用ファクトリの実装です。</p>
+ * {@.ja PeriodicTask用ファクトリの実装}
+ * {@.en Implement of factory for PeriodicTask}
*/
public class PeriodicTaskFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*/
private PeriodicTaskFactory() {
}
/**
- * <p> instance </p>
+ * {@.ja インスタンス生成。}
+ * {@.en Create instance}
*
- * @return PeriodicTaskFactory object
+ * <p>
+ * {@.ja インスタンスを生成する。}
+ *
+ * @return
+ * {@.ja インスタンス}
+ * {@.en PeriodicTaskFactory object}
+ *
*/
public static PeriodicTaskFactory instance() {
if (factory_global == null) {
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListener.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListener.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListener.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListener.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,42 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+import java.util.Observer;
+
+import RTC.PortProfile;
+
+ /**
+ * {@.ja PortActionListener クラス}
+ * {@.en PortActionListener class}
+ * <p>
+ * {@.ja 各アクションに対応するユーザーコードが呼ばれる直前のタイミング
+ * でコールされるリスなクラスの基底クラス。
+ * <ul>
+ * <li> ADD_PORT:
+ * <li> REMOVE_PORT:
+ * </ul>}
+ * {@.en
+ * This class is abstract base class for listener classes that
+ * provides callbacks for various events in rtobject.
+ * <ul>
+ * <li> ADD_PORT:
+ * <li> REMOVE_PORT:
+ * </ul>}
+ *
+ */
+
+public abstract class PortActionListener implements Observer{
+ public void update(Observable o, Object obj) {
+ RTC.PortProfile arg = (RTC.PortProfile)obj;
+ operator(arg);
+ }
+ /**
+ * {@.ja 仮想コールバック関数}
+ * {@.en Virtual Callback function}
+ * <p>
+ * {@.ja PortActionListener のコールバック関数}
+ * {@.en This is a the Callback function for PortActionListener.}
+ *
+ */
+ public abstract void operator(final RTC.PortProfile prof);
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerHolder.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerHolder.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerHolder.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,22 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+
+import RTC.PortProfile;
+ /**
+ * {@.ja PortActionListener ホルダクラス}
+ * {@.en PortActionListener holder class}
+ * <p>
+ * {@.ja 複数の PortActionListener を保持し管理するクラス。}
+ * {@.en This class manages one ore more instances of
+ * PortActionListener class.}
+ *
+ */
+
+public class PortActionListenerHolder extends Observable{
+ public void notify(final RTC.PortProfile prof) {
+ super.setChanged();
+ super.notifyObservers(prof);
+ super.clearChanged();
+ }
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerType.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerType.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerType.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PortActionListenerType.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,52 @@
+package jp.go.aist.rtm.RTC;
+ /**
+ * {@.ja PortActionListener のタイプ}
+ * {@.en The types of PortActionListener}
+ * <p>
+ * {@.ja
+ * <ul>
+ * <li> ADD_PORT: Port 追加時
+ * <li> REMOVE_PORT: Port 削除時
+ * </ul>}
+ * {@.en
+ * <ul>
+ * <li> ADD_PORT: At the time of port addition
+ * <li> REMOVE_PORT: At the time of port deletion
+ * </ul>}
+ */
+public class PortActionListenerType {
+ public static final int ADD_PORT = 0;
+ public static final int REMOVE_PORT = 1;
+ public static final int PORT_ACTION_LISTENER_NUM = 2;
+
+ private static final String[] TypeString = {
+ "ADD_PORT",
+ "REMOVE_PORT",
+ "PORT_ACTION_LISTENER_NUM",
+ };
+
+ /**
+ * {@.ja PortActionListenerType を文字列に変換}
+ * {@.en Convert PortActionListenerType into the string.}
+ * <p>
+ * {@.ja PortActionListenerType を文字列に変換する}
+ * {@.en Convert PortActionListenerType into the string.}
+ * </p>
+ *
+ * @param type
+ * {@.ja 変換対象 PortActionListenerType}
+ * {@.en The target PortActionListenerType for transformation}
+ *
+ * @return
+ * {@.ja 文字列変換結果}
+ * {@.en Trnasformation result of string representation}
+ *
+ */
+ public static String toString(final int type){
+ if (type < PORT_ACTION_LISTENER_NUM) {
+ return TypeString[type];
+ }
+ return "";
+ }
+}
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListener.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListener.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListener.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListener.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,77 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+import java.util.Observer;
+
+import RTC.ReturnCode_t;
+
+ /**
+ * {@.ja PostComponentActionListener クラス}
+ * {@.en PostComponentActionListener class}
+ * <p>
+ * {@.ja OMG RTC仕様で定義されている以下のコンポーネントアクショントについ
+ * て、
+ * <ul>
+ * <li> on_initialize()
+ * <li> on_finalize()
+ * <li> on_startup()
+ * <li> on_shutdown()
+ * <li> on_activated
+ * <li> on_deactivated()
+ * <li> on_aborted()
+ * <li> on_error()
+ * <li> on_reset()
+ * <li> on_execute()
+ * <li> on_state_update()
+ * <li> on_rate_changed()
+ * </ul>
+ * 各アクションに対応するユーザーコードが呼ばれる直前のタイミング
+ * でコールされるリスなクラスの基底クラス。
+ * <ul>
+ * <li> POST_ON_INITIALIZE:
+ * <li> POST_ON_FINALIZE:
+ * <li> POST_ON_STARTUP:
+ * <li> POST_ON_SHUTDOWN:
+ * <li> POST_ON_ACTIVATED:
+ * <li> POST_ON_DEACTIVATED:
+ * <li> POST_ON_ABORTING:
+ * <li> POST_ON_ERROR:
+ * <li> POST_ON_RESET:
+ * <li> POST_ON_EXECUTE:
+ * <li> POST_ON_STATE_UPDATE:
+ * <li> POST_ON_RATE_CHANGED:
+ * </ul>}
+ * {@.en This class is abstract base class for listener classes that
+ * provides callbacks for various events in rtobject.
+ * <ul>
+ * <li> on_initialize()
+ * <li> on_finalize()
+ * <li> on_startup()
+ * <li> on_shutdown()
+ * <li> on_activated
+ * <li> on_deactivated()
+ * <li> on_aborted()
+ * <li> on_error()
+ * <li> on_reset()
+ * <li> on_execute()
+ * <li> on_state_update()
+ * <li> on_rate_changed()
+ * </ul>}
+ */
+public abstract class PostComponentActionListener implements Observer{
+ public void update(Observable o, Object obj) {
+ PostComponentActionListenerArgument arg = (PostComponentActionListenerArgument)obj;
+ operator(arg.m_exec_handle, arg.m_ret);
+ }
+ /**
+ * {@.ja 仮想コールバック関数}
+ * {@.en Virtual Callback function}
+ * <p>
+ * {@.ja PostComponentActionListener のコールバック関数}
+ * {@.en This is a the Callback function for PostComponentActionListener.}
+ *
+ */
+ public abstract void operator(final int exec_handle, RTC.ReturnCode_t ret);
+}
+
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerArgument.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerArgument.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerArgument.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerArgument.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,26 @@
+package jp.go.aist.rtm.RTC;
+
+import RTC.ReturnCode_t;
+ /**
+ * {@.ja PostComponentActionListenerArgument クラス}
+ * {@.en PostComponentActionListenerArgumen class}
+ *
+ *
+ */
+public class PostComponentActionListenerArgument {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ */
+ public PostComponentActionListenerArgument(int handle,
+ RTC.ReturnCode_t ret){
+ m_exec_handle = handle;
+ m_ret = ret;
+ }
+ public int m_exec_handle;
+ public RTC.ReturnCode_t m_ret;
+}
+
+
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerHolder.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerHolder.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerHolder.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,25 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+
+import RTC.ReturnCode_t;
+ /**
+ * {@.ja PostComponentActionListener ホルダクラス}
+ * {@.en PostComponentActionListener holder class}
+ * <p>
+ * {@.ja 複数の PostComponentActionListener を保持し管理するクラス。}
+ * {@.en This class manages one ore more instances of
+ * PostComponentActionListener class.}
+ *
+ */
+
+public class PostComponentActionListenerHolder extends Observable{
+ public void notify(final int ec_id, RTC.ReturnCode_t ret) {
+ super.setChanged();
+ PostComponentActionListenerArgument arg
+ = new PostComponentActionListenerArgument(ec_id,ret);
+ super.notifyObservers((Object)arg);
+ super.clearChanged();
+ }
+}
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerType.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerType.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerType.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PostComponentActionListenerType.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,90 @@
+package jp.go.aist.rtm.RTC;
+ /**
+ * {@.ja PostComponentActionListener のタイプ}
+ * {@.en The types of PostComponentActionListener}
+ * <p>
+ * {@.ja <ul>
+ * <li> POST_ON_INITIALIZE: onInitialize 直後
+ * <li> POST_ON_FINALIZE: onFinalize 直後
+ * <li> POST_ON_STARTUP: onStartup 直後
+ * <li> POST_ON_SHUTDOWN: onShutdown 直後
+ * <li> POST_ON_ACTIVATED: onActivated 直後
+ * <li> POST_ON_DEACTIVATED: onDeactivated 直後
+ * <li> POST_ON_ABORTING: onAborted 直後
+ * <li> POST_ON_ERROR: onError 直後
+ * <li> POST_ON_RESET: onReset 直後
+ * <li> POST_ON_EXECUTE: onExecute 直後
+ * <li> POST_ON_STATE_UPDATE: onStateUpdate 直後
+ * <li> POST_ON_RATE_CHANGED: onRateChanged 直後
+ * </ul>}
+ * {@.en <ul>
+ * <li> POST_ON_INITIALIZE: Immediately after onInitialize
+ * <li> POST_ON_FINALIZE: Immediately after onFinalize
+ * <li> POST_ON_STARTUP: Immediately after onStartup
+ * <li> POST_ON_SHUTDOWN: Immediately after onShutdown
+ * <li> POST_ON_ACTIVATED: Immediately after onActivated
+ * <li> POST_ON_DEACTIVATED: Immediately after onDeactivated
+ * <li> POST_ON_ABORTING: Immediately after onAborted
+ * <li> POST_ON_ERROR: Immediately after onError
+ * <li> POST_ON_RESET: Immediately after onReset
+ * <li> POST_ON_EXECUTE: Immediately after onExecute
+ * <li> POST_ON_STATE_UPDATE: Immediately after onStateUpdate
+ * <li> POST_ON_RATE_CHANGED: Immediately after onRateChanged
+ * </ul>}
+ * </p>
+ */
+public class PostComponentActionListenerType {
+ public static final int POST_ON_INITIALIZE = 0;
+ public static final int POST_ON_FINALIZE = 1;
+ public static final int POST_ON_STARTUP = 2;
+ public static final int POST_ON_SHUTDOWN = 3;
+ public static final int POST_ON_ACTIVATED = 4;
+ public static final int POST_ON_DEACTIVATED = 5;
+ public static final int POST_ON_ABORTING = 6;
+ public static final int POST_ON_ERROR = 7;
+ public static final int POST_ON_RESET = 8;
+ public static final int POST_ON_EXECUTE = 9;
+ public static final int POST_ON_STATE_UPDATE = 10;
+ public static final int POST_ON_RATE_CHANGED = 11;
+ public static final int POST_COMPONENT_ACTION_LISTENER_NUM = 12;
+
+ private static final String[] TypeString = {
+ "POST_ON_INITIALIZE",
+ "POST_ON_FINALIZE",
+ "POST_ON_STARTUP",
+ "POST_ON_SHUTDOWN",
+ "POST_ON_ACTIVATED",
+ "POST_ON_DEACTIVATED",
+ "POST_ON_ABORTING",
+ "POST_ON_ERROR",
+ "POST_ON_RESET",
+ "POST_ON_EXECUTE",
+ "POST_ON_STATE_UPDATE",
+ "POST_ON_RATE_CHANGED",
+ "POST_COMPONENT_ACTION_LISTENER_NUM",
+ };
+
+ /**
+ * {@.ja PostComponentActionListenerType を文字列に変換}
+ * {@.en Convert PostComponentActionListenerType into the string.}
+ * <p>
+ * {@.ja PostComponentActionListenerType を文字列に変換する}
+ * {@.en Convert PostComponentActionListenerType into the string.}
+ * </p>
+ *
+ * @param type
+ * {@.ja 変換対象 PostComponentActionListenerType}
+ * {@.en The target PostComponentActionListenerType for transformation}
+ *
+ * @return
+ * {@.ja 文字列変換結果}
+ * {@.en Trnasformation result of string representation}
+ *
+ */
+ public static String toString(final int type){
+ if (type < POST_COMPONENT_ACTION_LISTENER_NUM) {
+ return TypeString[type];
+ }
+ return "";
+ }
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListener.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListener.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListener.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListener.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,77 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+import java.util.Observer;
+
+import java.lang.Integer;
+ /**
+ * {@.ja PreComponentActionListener クラス}
+ * {@.en PreComponentActionListener class}
+ * <p>
+ * {@.ja OMG RTC仕様で定義されている以下のコンポーネントアクショントについ
+ * て、
+ * <ul>
+ * <li> on_initialize()
+ * <li> on_finalize()
+ * <li> on_startup()
+ * <li> on_shutdown()
+ * <li> on_activated
+ * <li> on_deactivated()
+ * <li> on_aborted()
+ * <li> on_error()
+ * <li> on_reset()
+ * <li> on_execute()
+ * <li> on_state_update()
+ * <li> on_rate_changed()
+ * </ul>
+ * 各アクションに対応するユーザーコードが呼ばれる直前のタイミング
+ * でコールされるリスなクラスの基底クラス。
+ * <ul>
+ * <li> PRE_ON_INITIALIZE:
+ * <li> PRE_ON_FINALIZE:
+ * <li> PRE_ON_STARTUP:
+ * <li> PRE_ON_SHUTDOWN:
+ * <li> PRE_ON_ACTIVATED:
+ * <li> PRE_ON_DEACTIVATED:
+ * <li> PRE_ON_ABORTING:
+ * <li> PRE_ON_ERROR:
+ * <li> PRE_ON_RESET:
+ * <li> PRE_IN_EXECUTE:
+ * <li> PRE_ON_STATE_UPDATE:
+ * <li> PRE_ON_RATE_CHANGED:
+ * </ul>}
+ * {@.en This class is abstract base class for listener classes that
+ * provides callbacks for various events in rtobject.
+ * <ul>
+ * <li> on_initialize()
+ * <li> on_finalize()
+ * <li> on_startup()
+ * <li> on_shutdown()
+ * <li> on_activated
+ * <li> on_deactivated()
+ * <li> on_aborted()
+ * <li> on_error()
+ * <li> on_reset()
+ * <li> on_execute()
+ * <li> on_state_update()
+ * <li> on_rate_changed()
+ * </ul>}
+ * </p>
+ *
+ */
+public abstract class PreComponentActionListener implements Observer{
+ public void update(Observable o, Object obj) {
+ Integer arg = (Integer)obj;
+ operator(arg.intValue());
+ }
+ /**
+ * {@.ja 仮想コールバック関数}
+ * {@.en Virtual Callback function}
+ * <p>
+ * {@.ja PreComponentActionListener のコールバック関数}
+ * {@.en This is a the Callback function for PreComponentActionListener.}
+ *
+ */
+ public abstract void operator(final int exec_handle);
+}
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerHolder.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerHolder.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerHolder.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,23 @@
+package jp.go.aist.rtm.RTC;
+
+import java.util.Observable;
+
+import java.lang.Integer;
+ /**
+ * {@.ja PreComponentActionListener ホルダクラス}
+ * {@.en PreComponentActionListener holder class}
+ * <p>
+ * {@.ja 複数の PreComponentActionListener を保持し管理するクラス。}
+ * {@.en This class manages one ore more instances of
+ * PreComponentActionListener class.}
+ *
+ */
+public class PreComponentActionListenerHolder extends Observable{
+ public void notify(final int exec_handle) {
+ super.setChanged();
+ Integer arg = new Integer(exec_handle);
+ super.notifyObservers(arg);
+ super.clearChanged();
+ }
+}
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerType.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerType.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerType.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PreComponentActionListenerType.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,90 @@
+package jp.go.aist.rtm.RTC;
+ /**
+ * {@.ja PreComponentActionListener のタイプ}
+ * {@.en The types of PreComponentActionListener}
+ * <p>
+ * {@.ja <ul>
+ * <li> PRE_ON_INITIALIZE: onInitialize 直前
+ * <li> PRE_ON_FINALIZE: onFinalize 直前
+ * <li> PRE_ON_STARTUP: onStartup 直前
+ * <li> PRE_ON_SHUTDOWN: onShutdown 直前
+ * <li> PRE_ON_ACTIVATED: onActivated 直前
+ * <li> PRE_ON_DEACTIVATED: onDeactivated 直前
+ * <li> PRE_ON_ABORTING: onAborted 直前
+ * <li> PRE_ON_ERROR: onError 直前
+ * <li> PRE_ON_RESET: onReset 直前
+ * <li> PRE_ON_EXECUTE: onExecute 直前
+ * <li> PRE_ON_STATE_UPDATE: onStateUpdate 直前
+ * <li> PRE_ON_RATE_CHANGED: onRateChanged 直前
+ * </ul>}
+ * {@.en <ul>
+ * <li> PRE_ON_INITIALIZE: Immediately before onInitialize
+ * <li> PRE_ON_FINALIZE: Immediately before onFinalize
+ * <li> PRE_ON_STARTUP: Immediately before onStartup
+ * <li> PRE_ON_SHUTDOWN: Immediately before onShutdown
+ * <li> PRE_ON_ACTIVATED: Immediately before onActivated
+ * <li> PRE_ON_DEACTIVATED: Immediately before onDeactivated
+ * <li> PRE_ON_ABORTING: Immediately before onAborted
+ * <li> PRE_ON_ERROR: Immediately before onError
+ * <li> PRE_ON_RESET: Immediately before onReset
+ * <li> PRE_ON_EXECUTE: Immediately before onExecute
+ * <li> PRE_ON_STATE_UPDATE: Immediately before onStateUpdate
+ * <li> PRE_ON_RATE_CHANGED: Immediately before onRateChanged
+ * </ul>}
+ * </p>
+ */
+public class PreComponentActionListenerType {
+ public static final int PRE_ON_INITIALIZE = 0;
+ public static final int PRE_ON_FINALIZE = 1;
+ public static final int PRE_ON_STARTUP = 2;
+ public static final int PRE_ON_SHUTDOWN = 3;
+ public static final int PRE_ON_ACTIVATED = 4;
+ public static final int PRE_ON_DEACTIVATED = 5;
+ public static final int PRE_ON_ABORTING = 6;
+ public static final int PRE_ON_ERROR = 7;
+ public static final int PRE_ON_RESET = 8;
+ public static final int PRE_ON_EXECUTE = 9;
+ public static final int PRE_ON_STATE_UPDATE = 10;
+ public static final int PRE_ON_RATE_CHANGED = 11;
+ public static final int PRE_COMPONENT_ACTION_LISTENER_NUM = 12;
+
+ private static final String[] TypeString = {
+ "PRE_ON_INITIALIZE",
+ "PRE_ON_FINALIZE",
+ "PRE_ON_STARTUP",
+ "PRE_ON_SHUTDOWN",
+ "PRE_ON_ACTIVATED",
+ "PRE_ON_DEACTIVATED",
+ "PRE_ON_ABORTING",
+ "PRE_ON_ERROR",
+ "PRE_ON_RESET",
+ "PRE_ON_EXECUTE",
+ "PRE_ON_STATE_UPDATE",
+ "PRE_ON_RATE_CHANGED",
+ "PRE_COMPONENT_ACTION_LISTENER_NUM",
+ };
+
+ /**
+ * {@.ja PreComponentActionListenerType を文字列に変換}
+ * {@.en Convert PreComponentActionListenerType into the string.}
+ * <p>
+ * {@.ja PreComponentActionListenerType を文字列に変換する}
+ * {@.en Convert PreComponentActionListenerType into the string.}
+ * </p>
+ *
+ * @param type
+ * {@.ja 変換対象 PreComponentActionListenerType}
+ * {@.en The target PreComponentActionListenerType for transformation}
+ *
+ * @return
+ * {@.ja 文字列変換結果}
+ * {@.en Trnasformation result of string representation}
+ *
+ */
+ public static String toString(final int type){
+ if (type < PRE_COMPONENT_ACTION_LISTENER_NUM) {
+ return TypeString[type];
+ }
+ return "";
+ }
+}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PublisherBaseFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PublisherBaseFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/PublisherBaseFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,26 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>Publisher用ファクトリの実装です。</p>
+ * {@.ja Publisher用ファクトリの実装}
+ * {@.en Implement of factory for Publisher}
*/
public class PublisherBaseFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*/
private PublisherBaseFactory() {
}
/**
- * <p> instance </p>
+ * {@.ja インスタンス生成。}
+ * {@.en Create instance}
*
- * @return PublisherBaseFactory object
+ * @return
+ * {@.ja インスタンス}
+ * {@.en PublisherBaseFactory object}
+ *
*/
public static PublisherBaseFactory instance() {
if (factory_global == null) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RTObject_impl.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RTObject_impl.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RTObject_impl.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,36 +3,33 @@
import java.util.Vector;
import jp.go.aist.rtm.RTC.SDOPackage.Configuration_impl;
+import jp.go.aist.rtm.RTC.executionContext.ExecutionContextBase;
import jp.go.aist.rtm.RTC.port.CorbaPort;
-import jp.go.aist.rtm.RTC.port.DataInPort;
-import jp.go.aist.rtm.RTC.port.DataOutPort;
import jp.go.aist.rtm.RTC.port.InPort;
+import jp.go.aist.rtm.RTC.port.InPortBase;
import jp.go.aist.rtm.RTC.port.OutPort;
+import jp.go.aist.rtm.RTC.port.OutPortBase;
import jp.go.aist.rtm.RTC.port.PortAdmin;
import jp.go.aist.rtm.RTC.port.PortBase;
-import jp.go.aist.rtm.RTC.port.InPortBase;
-import jp.go.aist.rtm.RTC.port.OutPortBase;
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.NVUtil;
import jp.go.aist.rtm.RTC.util.ORBUtil;
+import jp.go.aist.rtm.RTC.util.POAUtil;
import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.util.ValueHolder;
import jp.go.aist.rtm.RTC.util.equalFunctor;
import jp.go.aist.rtm.RTC.util.operatorFunc;
-import jp.go.aist.rtm.RTC.util.POAUtil;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.util.NVUtil;
import jp.go.aist.rtm.RTC.log.Logbuf;
-import jp.go.aist.rtm.RTC.executionContext.ExecutionContextBase;
import org.omg.CORBA.Any;
+import org.omg.CORBA.ORB;
import org.omg.CORBA.SystemException;
-import org.omg.CORBA.ORB;
import org.omg.PortableServer.POA;
-import RTC.ComponentProfile;
-import OpenRTM.DataFlowComponentPOA;
import OpenRTM.DataFlowComponent;
import OpenRTM.DataFlowComponentHelper;
+import OpenRTM.DataFlowComponentPOA;
+import RTC.ComponentProfile;
import RTC.ExecutionContext;
import RTC.ExecutionContextHelper;
import RTC.ExecutionContextListHolder;
@@ -40,12 +37,11 @@
import RTC.ExecutionContextServiceHelper;
import RTC.ExecutionContextServiceListHolder;
import RTC.LightweightRTObject;
+import RTC.PortProfile;
import RTC.PortService;
-import RTC.PortProfile;
import RTC.RTObject;
import RTC.RTObjectHelper;
import RTC.ReturnCode_t;
-
import _SDOPackage.Configuration;
import _SDOPackage.DeviceProfile;
import _SDOPackage.InterfaceNotImplemented;
@@ -63,14 +59,38 @@
import _SDOPackage.ServiceProfileHolder;
import _SDOPackage.ServiceProfileListHolder;
-/**
- * <p>DataFlowComponentのベースクラスです。
- * ユーザが新たなRTコンポーネントを作成する場合は、このクラスを拡張します。</p>
- */
+ /**
+ * {@.ja RTコンポーネントクラス。}
+ * {@.en RT-Component class}
+ *
+ * <p>
+ * {@.ja DataFlowComponentのベースクラス。
+ * ユーザが新たなRTコンポーネントを作成する場合は、このクラスを拡張する。
+ * 各RTコンポーネントのベースとなるクラス。
+ * Robotic Technology Component 仕様中の lightweightRTComponentの実装クラス。
+ * コンポーネントの機能を提供する ComponentAction インターフェースと
+ * コンポーネントのライフサイクル管理を行うための LightweightRTObject の実装を
+ * 提供する。
+ * 実際にユーザがコンポーネントを作成する場合には、Execution Semantics に対応
+ * した各サブクラスを利用する。<BR>
+ * (現状の実装では Periodic Sampled Data Processing のみサポートしているため、
+ * dataFlowComponent を直接継承している)}
+ * {@.en This is a class to be a base of each RT-Component.
+ * This is a implementation class of lightweightRTComponent in Robotic
+ * Technology Component specification.
+ * This provides a implementation of ComponentAction interface that offers
+ * the the component's function and the implementation of LightweightRTObject
+ * for management of the component's lifecycle.
+ * When users actually create the components, they should use each subclass
+ * corresponding to Execution Semantics.<BR>
+ * (In current implementation, since only Periodic Sampled Data Processing is
+ * supported, this class inherits dataFlowComponent directly.)}
+ */
public class RTObject_impl extends DataFlowComponentPOA {
/**
- * <p>RTコンポーネントのデフォルト・コンポーネント・プロファイルです。</p>
+ * {@.ja RTコンポーネントのデフォルト・コンポーネント・プロファイル。}
+ * {@.en Default component profile of RT component.}
*
*
*/
@@ -95,7 +115,7 @@
public static final int ECOTHER_OFFSET = 1000;
/**
- * {@.ja コンストラクタです。}
+ * {@.ja コンストラクタ。}
* {@.en Constructor}
* @param manager
* {@.ja Managerオブジェクト}
@@ -135,7 +155,7 @@
}
/**
- * {@.ja コンストラクタです。}
+ * {@.ja コンストラクタ。}
* {@.en Constructor}
* @param orb
* {@.ja ORB}
@@ -176,10 +196,16 @@
}
/**
- * <p> _this </p>
+ * {@.ja DataFlowComponentオブジェクトの取得。}
+ * {@.en Gets DataFlowComponent object.}
*
- * @return DataFlowComponent
- *
+ * <p>
+ * {@.ja DataFlowComponentオブジェクト参照を取得する。}
+ * {@.en Gets OpenRTM.DataFlowComponent object.}
+ *
+ * @return
+ * {@.ja DataFlowComponentオブジェクト}
+ * {@.en OpenRTM.DataFlowComponent object.}
*/
public DataFlowComponent _this() {
if (this.m_objref == null) {
@@ -194,163 +220,423 @@
}
/**
- * <p>コンポーネント生成時(Created->Alive)に呼び出されるアクションです。</p>
+ * {@.ja 初期化処理用コールバック関数。}
+ * {@.en Callback function to initialize}
*
- * @return 実行結果
+ * <p>
+ * {@.ja コンポーネント生成時(Created->Alive)に呼び出されるアクション。
+ * ComponentAction.on_initialize が呼ばれた際に実行されるコールバック
+ * 関数。<BR>
+ * 本関数は無条件に ReturnCode_t.RTC_OK を返すようにダミー実装されている
+ * ので、
+ * 各コンポーネントの実際の初期化処理は、本関数をオーバーライドして実装する
+ * 必要がある。}
+ * {@.en This is a callback function that is executed when
+ * ComponentAction::on_initialize was invoked.<BR>
+ * As for actual initialization of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ *
*/
protected ReturnCode_t onInitialize(){
- rtcout.println(rtcout.TRACE, "RTObject_impl.onInitialize()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onInitialize()");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>コンポーネント破棄時(Alive->Exit)に呼び出されるアクションです。</p>
+ * {@.ja 終了処理用コールバック関数。}
+ * {@.en Callback function to finalize}
*
- * @return 実行結果
+ * <p>
+ * {@.ja コンポーネント破棄時(Alive->Exit)に呼び出されるアクション。
+ * ComponentAction.on_finalize が呼ばれた際に実行されるコールバック関数。
+ * 本関数は無条件に ReturnCode_t.RTC_OK を返すようにダミー実装されている
+ * ので、
+ * 各コンポーネントの実際の終了処理は、本関数をオーバーライドして実装する
+ * 必要がある。}
+ * {@.en This is a callback function that is executed when
+ * ComponentAction::on_finalize was invoked.<BR>
+ * As for actual finalization of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ *
*/
protected ReturnCode_t onFinalize() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onFinalize()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onFinalize()");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>ExecutionContextの動作開始時(Stopped->Started)に呼び出されるアクションです。</p>
+ * {@.ja 開始処理用コールバック関数。}
+ * {@.en Callback function for startup action}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja ExecutionContextの動作開始時(Stopped->Started)に呼び出される
+ * アクション。
+ * ComponentAction.on_startup が呼ばれた際に実行されるコールバック
+ * 関数。<BR>
+ * 本関数は無条件に ReturnCode_t.RTC_OK を返すようにダミー実装されている
+ * ので、
+ * 各コンポーネントの実際の開始処理は、本関数をオーバーライドして実装する
+ * 必要がある。}
+ * {@.en Callback function that is executed when
+ * ComponentAction::on_startup was invoked.<BR>
+ * As for actual startup of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
*
- * @return 実行結果
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
protected ReturnCode_t onStartup(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onStartup(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onStartup(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>ExecutionContextの動作終了時(Started->Stopped)に呼び出されるアクションです。</p>
+ * {@.ja 停止処理用コールバック関数。}
+ * {@.en Callback function for shutdown action}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja ExecutionContextの動作終了時(Started->Stopped)に呼び出される
+ * アクション。
+ * ComponentAction::on_shutdown が呼ばれた際に実行されるコールバック
+ * 関数。<BR>
+ * 本関数は無条件に RTC::RTC_OK を返すようにダミー実装されているので、
+ * 各コンポーネントの実際の停止処理は、本関数をオーバーライドして実装する
+ * 必要がある。}
+ * {@.en Callback function that is executed when
+ * ComponentAction::on_shutdown was invoked.<BR>
+ * As for actual shutdown of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
*
- * @return 実行結果
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ *
*/
protected ReturnCode_t onShutdown(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onShutdown(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onShutdown(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>RTコンポーネントのActivate時(Inactive->Active)に呼び出されるアクションです。</p>
+ * {@.ja 活性化処理用コールバック関数。}
+ * {@.en Callback function to activate}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja RTコンポーネントのActivate時(Inactive->Active)に呼び出される
+ * アクション。
+ * ComponentAction.on_activated が呼ばれた際に実行されるコールバック
+ * 関数。<BR>
+ * 本関数は無条件に RTC::RTC_OK を返すようにダミー実装されているので、
+ * 各コンポーネントの実際の活性化処理は、本関数をオーバーライドして実装する
+ * 必要がある。}
+ * {@.en This is a callback function that is executed when
+ * ComponentAction::on_activated was invoked.<BR>
+ * As for actual activation of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
*
- * @return 実行結果
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ *
*/
protected ReturnCode_t onActivated(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onActivated(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onActivated(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>RTコンポーネントのDeactivate時(Active->Inactive)に呼び出されるアクションです。</p>
+ * {@.ja 非活性化処理用コールバック関数。}
+ * {@.en Callback function to deactivate}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja RTコンポーネントのDeactivate時(Active->Inactive)に呼び出される
+ * アクション。
+ * ComponentAction.on_deactivated が呼ばれた際に実行されるコールバック
+ * 関数。<BR>
+ * 本関数は無条件に ReturnCode_t.RTC_OK を返すようにダミー実装されている
+ * ので、
+ * 各コンポーネントの実際の非活性化処理は、本関数をオーバーライドして
+ * 実装する必要がある。}
+ * {@.en This is a callback function that is executed when
+ * ComponentAction::on_deactivated was invoked.<BR>
+ * As for actual deactivation of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
*
- * @return 実行結果
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ *
*/
protected ReturnCode_t onDeactivated(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onDeactivated(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onDeactivated(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>RTコンポーネントがActivate状態の間呼び出されるアクションです。</p>
+ * {@.ja 周期処理用コールバック関数。}
+ * [@.en Callback function to execute periodically}
+ *
+ * <p>
+ * {@.ja RTコンポーネントがActivate状態の間呼び出されるアクション。
+ * DataFlowComponentAction::on_execute が呼ばれた際に実行される
+ * コールバック関数。<BR>
+ * 本関数は無条件に RTC::RTC_OK を返すようにダミー実装されているので、
+ * 各コンポーネントの実際の周期処理は、本関数をオーバーライドして実装する
+ * 必要がある。<BR>
+ * 本関数は Periodic Sampled Data Processing における Two-Pass Executionの
+ * 1回目の実行パスとして定期的に呼び出される。}
+ * {@.en This is a callback function that is executed when
+ * DataFlowComponentAction::on_execute is invoked.<BR>
+ * As for actual periodic execution of each component,
+ * since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.
+ * This function is invoked periodically as the first execution pass of
+ * Two-Pass Execution in Periodic Sampled Data Processing.}
*
- * @param ec_id 対象ExecutionContext ID
*
- * @return 実行結果
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ *
*/
protected ReturnCode_t onExecute(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onExecute(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onExecute(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>RTコンポーネントにエラーが発生した時(Active->Error)に呼び出されるアクションです。</p>
+ * {@.ja 中断処理用コールバック関数。}
+ * {@.en Callback function to abort}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja RTコンポーネントにエラーが発生した時(Active->Error)に呼び出される
+ * アクション。
+ * ComponentAction::on_aborting が呼ばれた際に実行されるコールバック
+ * 関数。<BR>
+ * 本関数は無条件に RTC::RTC_OK を返すようにダミー実装されているので、
+ * 各コンポーネントの実際の中断処理は、本関数をオーバーライドして実装する
+ * 必要がある。}
+ * {@.en This is a callback function that is executed when
+ * ComponentAction::on_aborting was invoked.<BR>
+ * As for actual abortion of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
*
- * @return 実行結果
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ *
*/
protected ReturnCode_t onAborting(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onAborting(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onAborting(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>RTコンポーネントがError状態の間呼び出されるアクションです。</p>
+ * {@.ja エラー処理用コールバック関数。}
+ * {@.en Callback function for error handling}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja RTコンポーネントがError状態の間呼び出されるアクション。
+ * ComponentAction::on_error が呼ばれた際に実行されるコールバック関数。<BR>
+ * 本関数は無条件に RTC::RTC_OK を返すようにダミー実装されているので、
+ * 各コンポーネントの実際のエラー処理は、本関数をオーバーライドして実装する
+ * 必要がある。}
+ * {@.en This is a callback function that is executed when
+ * ComponentAction::on_error was invoked.<BR>
+ * As for actual error handling of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
*
- * @return 実行結果
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
protected ReturnCode_t onError(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onError(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onError(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>RTコンポーネントをresetする際(Error->Inactive)に呼び出されるアクションです。</p>
+ * {@.ja リセット処理用コールバック関数。}
+ * {@.en Callback function to reset}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja RTコンポーネントをresetする際(Error->Inactive)に呼び出される
+ * アクション。
+ * ComponentAction.on_reset が呼ばれた際に実行されるコールバック関数。<BR>
+ * 本関数は無条件に ReturnCode_t.RTC_OK を返すようにダミー実装されている
+ * ので、
+ * 各コンポーネントの実際のリセット処理は、本関数をオーバーライドして実装
+ * する必要がある。}
+ * {@.en This is a callback function that is executed when
+ * ComponentAction::on_reset was invoked.<BR>
+ * As for actual reset of each component, since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.}
*
- * @return 実行結果
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
protected ReturnCode_t onReset(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onReset(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onReset(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>RTコンポーネントがActivate状態の間、
- * on_executeの続いて呼び出されるアクションです。</p>
+ * {@.ja 状態変更処理用コールバック関数。}
+ * {@.en Callback function to update the state}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja RTコンポーネントがActivate状態の間、
+ * on_executeの続いて呼び出されるアクション。
+ * DataFlowComponentAction::on_state_update が呼ばれた際に実行される
+ * コールバック関数。<BR>
+ * 本関数は無条件に RTC::RTC_OK を返すようにダミー実装されているので、
+ * 各コンポーネントの実際の状態変更処理は、本関数をオーバーライドして
+ * 実装する必要がある。<BR>
+ * 本関数は Periodic Sampled Data Processing における Two-Pass Executionの
+ * 2回目の実行パスとして定期的に呼び出される。}
+ * {@.en This is a callback function that is executed when
+ * DataFlowComponentAction::on_state_update was invoked.<BR>
+ * As for actual updating the state of each component,
+ * since this function is
+ * dummy-implemented to return RTC::RTC_OK unconditionally, you need to
+ * implement this function by overriding it.<BR>
+ * This function is invoked periodically as the second execution pass of
+ * Two-Pass Execution in Periodic Sampled Data Processing.}
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
*
- * @return 実行結果
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
protected ReturnCode_t onStateUpdate(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onStateUpdete(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onStateUpdete(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>ExecutionContextの実行周期が変更になった時に呼び出されるアクションです。</p>
+ * {@.ja 動作周期変更通知用コールバック関数。}
+ * {@.en Callback function to change execution cycle}
*
- * @param ec_id 対象ExecutionContext ID
+ * <p>
+ * {@.ja ExecutionContextの実行周期が変更になった時に呼び出される
+ * アクション。
+ * DataFlowComponentAction::on_rate_changed が呼ばれた際に実行される
+ * コールバック関数。<BR>
+ * 本関数は無条件に RTC::RTC_OK を返すようにダミー実装されているので、
+ * 各コンポーネントの実際の状態変更処理は、本関数をオーバーライドして
+ * 実装する必要がある。<BR>
+ * 本関数は Periodic Sampled Data Processing において ExecutionContext の
+ * 実行が更新された際に呼び出される。}
+ * {@.en This is a callback function that is executed when
+ * DataFlowComponentAction::on_rate_changed was invoked.<BR>
+ * As for actual changing execution cycle of each component, since this
+ * function is dummy-implemented to return RTC::RTC_OK unconditionally,
+ * you need to implement this function by overriding it.<BR>
+ * This function is invoked when the execution of ExecutionContext
+ * was updated in Periodic Sampled Data Processing.}
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContext ID}
+ * {@.en ID of the participant ExecutionContext}
*
- * @return 実行結果
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ *
*/
protected ReturnCode_t onRateChanged(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.onRateChanged(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.onRateChanged(" + ec_id + ")");
return ReturnCode_t.RTC_OK;
}
/**
- * <p>RTコンポーネントを初期化します。<br />
+ * {@.ja [CORBA interface] RTCを初期化する}
+ * {@.en [CORBA interface] IInitialize the RTC that realizes
+ * this interface.}
*
- * このオペレーション呼び出しの結果として、ComponentAction::on_initialize
- * コールバック関数が呼ばれます。<br />
- * 制約<br />
- * Created状態にいるときにのみ、初期化が行われます。他の状態にいる場合には
- * ReturnCode_t::PRECONDITION_NOT_MET が返され呼び出しは失敗します。
- * このオペレーションはRTCのミドルウエアから呼ばれることを想定しており、
- * アプリケーション開発者は直接このオペレーションを呼ぶことは想定
- * されていません。</p>
+ * <p>
+ * {@.ja このオペレーション呼び出しの結果として、
+ * ComponentAction::on_initialize コールバック関数が呼ばれる。
*
- * @return 実行結果
+ * 制約 <ul>
+ * <li> RTC は Created状態の場合み初期化が行われる。他の状態にいる場合には
+ * ReturnCode_t::PRECONDITION_NOT_MET が返され呼び出しは失敗する。</li>
+ * <li> このオペレーションは RTC のミドルウエアから呼ばれることを
+ * 想定しており、アプリケーション開発者は直接このオペレーションを
+ * 呼ぶことは想定されていない。</li></ul>}
+ * {@.en The invocation of this operation shall result
+ * in the invocation of the
+ * callback ComponentAction::on_initialize.
+ *
+ * Constraints <ul>
+ * <li> An RTC may be initialized only while it is in the Created state. Any
+ * attempt to invoke this operation while in another state shall fail
+ * with ReturnCode_t::PRECONDITION_NOT_MET.</li>
+ * <li> Application developers are not expected to call this operation
+ * directly; it exists for use by the RTC infrastructure.</li></ul>}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t initialize() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.initialize()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.initialize()");
if( !m_created ) {
return ReturnCode_t.PRECONDITION_NOT_MET;
@@ -389,7 +675,7 @@
return ReturnCode_t.PRECONDITION_NOT_MET;
}
for(int intIdx=0; intIdx < m_ecMine.value.length; ++intIdx) {
- rtcout.println(rtcout.DEBUG, "EC[" + intIdx + "] starting");
+ rtcout.println(Logbuf.DEBUG, "EC[" + intIdx + "] starting");
m_ecMine.value[intIdx].start();
}
@@ -398,27 +684,50 @@
}
/**
- * <p>RTコンポーネントを終了します。<br />
+ * {@.ja [CORBA interface] RTC を終了する。}
+ * {@.en [CORBA interface] Finalize the RTC for preparing it
+ * for destruction}
*
- * このオペレーション呼び出しの結果として、ComponentAction::on_finalize
- * コールバック関数が呼ばれます。<br />
- * 制約</p>
- * <ol>
- * <li>この RTC が属する Running 状態の実行コンテキスト中、Active 状態にある
- * ものがあればこの RTC は終了されません。その場合、このオペレーション呼び
- * 出しはいかなる場合も ReturnCode_t::PRECONDITION_NOT_ME で失敗します。</li>
- * <li>この RTC が Created 状態である場合、終了処理は行われません。
- * その場合、このオペレーション呼び出しはいかなる場合も
- * ReturnCode_t::PRECONDITION_NOT_MET で失敗します。</li>
- * <li>アプリケーション開発者はこのオペレーションを直接的に呼び出すことは
- * まれであり、たいていはRTCインフラストラクチャから呼び出されるます。</li>
- * </ol>
- *
- * @return 実行結果
+ * <p>
+ * {@.ja このオペレーション呼び出しの結果として
+ * ComponentAction.on_finalize() を呼び出す。
+ *
+ * 制約 <ul>
+ * <li> RTC が ExecutionContext に所属している間は終了されない。この場合は、
+ * まず最初に ExecutionContextOperations::remove によって参加を
+ * 解除しなければならない。これ以外の場合は、このオペレーション呼び出しは
+ * いかなる場合も ReturnCode_t::PRECONDITION_NOT_ME で失敗する。</li>
+ * <li> RTC が Created 状態である場合、終了処理は行われない。
+ * この場合、このオペレーション呼び出しはいかなる場合も
+ * ReturnCode_t::PRECONDITION_NOT_MET で失敗する。</li>
+ * <li> このオペレーションはRTCのミドルウエアから呼ばれることを
+ * 想定しており、
+ * アプリケーション開発者は直接このオペレーションを呼ぶことは想定
+ * されていない。</li></ul>}
+ * {@.en This invocation of this operation shall result
+ * in the invocation of the
+ * callback ComponentAction::on_finalize.
+ *
+ * Constraints <ul>
+ * <li> An RTC may not be finalized while it is participating
+ * in any execution
+ * context. It must first be removed with
+ * ExecutionContextOperations::remove. Otherwise, this operation
+ * shall fail with ReturnCode_t::PRECONDITION_NOT_MET. </li>
+ * <li> An RTC may not be finalized while it is in the Created state. Any
+ * attempt to invoke this operation while in that state shall fail with
+ * ReturnCode_t::PRECONDITION_NOT_MET.</li>
+ * <li> Application developers are not expected to call
+ * this operation directly;</li></ul>
+ * it exists for use by the RTC infrastructure.}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t _finalize() throws SystemException {
- rtcout.println(rtcout.TRACE, "RTObject_impl._finalize()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl._finalize()");
if( m_created ) {
return ReturnCode_t.PRECONDITION_NOT_MET;
@@ -442,25 +751,45 @@
}
/**
- * <p>RTコンポーネントを停止し、そのコンテンツとともに終了します。<br />
+ * {@.ja [CORBA interface] RTC がオーナーである ExecutionContext を
+ * 停止させ、そのコンテンツと共に終了させる}
+ * {@.en [CORBA interface]top the RTC's execution context(s) and finalize
+ * it along with its contents.}
*
- * この RTC がオーナーであるすべての実行コンテキストが停止されます。
+ * <p>
+ * {@.ja この RTC がオーナーであるすべての実行コンテキストを停止する。
* この RTC が他の実行コンテキストを所有する RTC に属する実行コンテキスト
* (i.e. 実行コンテキストを所有する RTC はすなわちその実行コンテキストの
* オーナーである。)に参加している場合、当該 RTC はそれらのコンテキスト上
- * で非活性化されなければなりません。<br />
- * 制約</p>
- * <ol>
- * <li>RTC が初期化されていなければ、終了させることはできません。</li>
- * <li>Created 状態にある RTC に exit() を呼び出した場合、
- * ReturnCode_t::PRECONDITION_NOT_MET で失敗します。</li>
- * </ol>
+ * で非活性化されなければならない。
+ * RTC が実行中のどの ExecutionContext でも Active 状態ではなくなった後、
+ * この RTC とこれに含まれる RTC が終了する。
*
- * @return 実行結果
+ * 制約 <ul>
+ * <li> RTC が初期化されていなければ、終了させることはできない。
+ * Created 状態にある RTC に exit() を呼び出した場合、
+ * ReturnCode_t::PRECONDITION_NOT_MET で失敗する。</li></ul>}
+ * {@.en Any execution contexts for which the RTC is the owner shall
+ * be stopped.
+ * If the RTC participates in any execution contexts belonging to another
+ * RTC that contains it, directly or indirectly (i.e. the containing RTC
+ * is the owner of the ExecutionContext), it shall be deactivated in those
+ * contexts.
+ * After the RTC is no longer Active in any Running execution context, it
+ * and any RTCs contained transitively within it shall be finalized.
+ *
+ * Constraints <ul>
+ * <li> An RTC cannot be exited if it has not yet been initialized. Any
+ * attempt to exit an RTC that is in the Created state shall fail with
+ * ReturnCode_t::PRECONDITION_NOT_MET.</li></ul>}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t exit() throws SystemException {
- rtcout.println(rtcout.TRACE, "RTObject_impl.exit()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.exit()");
if (m_created) {
return ReturnCode_t.PRECONDITION_NOT_MET;
@@ -491,19 +820,42 @@
}
/**
- * <p>RTコンポーネントがAlive状態であるか判断します。<br />
+ * {@.ja [CORBA interface] RTC が Alive 状態であるかどうか確認する。}
+ * {@.en [CORBA interface] Confirm whether RTC is the alive state}
*
+ * <p>
+ * {@.ja RTC が指定した ExecutionContext に対して Alive状態であるかどうかi
+ * 確認する。
+ * RTC の状態が Active であるか、Inactive であるか、Error であるかは実行中の
+ * ExecutionContext に依存する。すなわち、ある ExecutionContext に対しては
+ * Active 状態であっても、他の ExecutionContext に対しては Inactive 状態と
+ * なる場合もありえる。従って、このオペレーションは指定された
+ * ExecutionContext に問い合わせて、この RTC の状態が Active、Inactive、
+ * Error の場合には Alive 状態として返す。
* RTコンポーネントがAliveであるかどうかは、
- * ExecutionContextの状態(Inactive,Active,Error)とは独立しています。
- * 1つのRTコンポーネントが、複数のExecutionContextにattachされる場合もあるため、
+ * ExecutionContextの状態(Inactive,Active,Error)とは独立している。
+ * 1つのRTコンポーネントが、複数のExecutionContextにattachされる場合も
+ * あるため、
* ExecutionContextの状態が混在する場合
- * (ExecutionContext1に対してはActive、ExecutionContext2に対してはInactiveなど)
- * があるためです。</p>
- *
- * @return Alive状態判断結果
+ * (ExecutionContext1に対してはActive、
+ * ExecutionContext2に対してはInactiveなど)
+ * があるため。}
+ * {@.en A component is alive or not regardless of
+ * the execution context from
+ * which it is observed. However, whether or not it is Active, Inactive,
+ * or in Error is dependent on the execution context(s) in which it is
+ * running. That is, it may be Active in one context but Inactive in
+ * another. Therefore, this operation shall report whether this RTC is
+ * either Active, Inactive or in Error; which of those states a component
+ * is in with respect to a particular context may be queried from the
+ * context itself.}
+ *
+ * @return
+ * {@.ja Alive 状態確認結果}
+ * {@.en Result of Alive state confirmation}
*/
public boolean is_alive(ExecutionContext exec_context) throws SystemException {
- rtcout.println(rtcout.TRACE, "RTObject_impl.is_alive()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.is_alive()");
for(int i=0, len=m_ecMine.value.length; i < len; ++i) {
if (exec_context._is_equivalent(m_ecMine.value[i]))
@@ -520,13 +872,21 @@
}
/**
- * <p>[CORBA interface] ExecutionContextListを取得します。</p>
+ * {@.ja [CORBA interface] 所有する ExecutionContextListを 取得する。}
+ * {@.en [CORBA interface] Get ExecutionContextList.}
*
- * @return ExecutionContextリスト
+ * <p>
+ * {@.ja この RTC が所有する ExecutionContext のリストを取得する。}
+ * {@.en This operation returns a list of all execution contexts owned
+ * by this RTC.}
+ *
+ * @return
+ * {@.ja ExecutionContext リスト}
+ * {@.en ExecutionContext List}
*/
public ExecutionContext[] get_owned_contexts() throws SystemException {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_owned_contexts()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_owned_contexts()");
ExecutionContextListHolder execlist;
execlist = new ExecutionContextListHolder();
@@ -538,15 +898,31 @@
}
/**
- * <p>[CORBA interface] ExecutionContextを取得します。</p>
+ * {@.ja [CORBA interface] ExecutionContextを取得する。}
+ * {@.en [CORBA interface] Get ExecutionContext.}
*
- * @param ec_id ExecutionContextのID
- *
- * @return ExecutionContext
+ * <p>
+ * {@.ja 指定したハンドルの ExecutionContext を取得する。
+ * ハンドルから ExecutionContext へのマッピングは、特定の RTC インスタンスに
+ * 固有である。ハンドルはこの RTC を attach_context した際に取得できる。}
+ * {@.en Obtain a reference to the execution context represented
+ * by the given
+ * handle.
+ * The mapping from handle to context is specific to a particular RTC
+ * instance. The given handle must have been obtained by a previous call to
+ * attach_context on this RTC.}
+ *
+ * @param ec_id
+ * {@.ja ExecutionContextのID}
+ * {@.en ExecutionContext handle}
+ *
+ * @return
+ * {@.ja ExecutionContext}
+ * {@.en ExecutionContext}
*/
public ExecutionContext get_context(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_context(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_context(" + ec_id + ")");
ExecutionContext ec;
// owned EC
@@ -574,14 +950,21 @@
}
/**
- * <p>[CORBA interface] LightweightRTObject</p>
+ * {@.ja [CORBA interface] 参加している ExecutionContextList を取得する。}
+ * {@.en [CORBA interface] Get participating ExecutionContextList.}
*
- *
- * @return ExecutionContextList
+ * <p>
+ * {@.ja この RTC が参加している ExecutionContext のリストを取得する。}
+ * {@.en This operation returns a list of all execution contexts in
+ * which this RTC participates.}
*
- */
+ * @return
+ * {@.ja ExecutionContext リスト}
+ * {@.en ExecutionContext List}
+ *
+ */
public ExecutionContext[] get_participating_contexts() throws SystemException {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_participating_contexts()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_participating_contexts()");
ExecutionContextListHolder execlist;
execlist = new ExecutionContextListHolder();
@@ -594,16 +977,26 @@
/**
- * <p>[CORBA interface] LightweightRTObject</p>
+ * {@.ja [CORBA interface] ExecutionContext のハンドルを返す。}
+ * {@.en [CORBA interface] Return a handle of a ExecutionContext}
*
- * @param cxt ExecutionContext
- *
- * @return ExecutionContextHandle_t
+ * <p>
+ * {@.ja 与えられた実行コンテキストに関連付けられたハンドルを返す。}
+ * {@.en This operation returns a handle that is associated with the given
+ * execution context.}
*
+ * @param cxt
+ * {@.ja ExecutionContext}
+ * {@.en ExecutionContext}
+ *
+ * @return
+ * {@.ja ExecutionContextHandle_t}
+ * {@.en ExecutionContextHandle_t}
+ *
*/
public int get_context_handle(ExecutionContext cxt) throws SystemException {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_context_handle()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_context_handle()");
int num;
num = CORBA_SeqUtil.find(m_ecMine, new ec_find(cxt));
@@ -618,17 +1011,22 @@
}
/**
- * <p> bindContext </p>
+ * {@.ja ECをバインドする。}
+ * {@.en Binds ExecutionContext.}
*
- * @param exec_context ExecutionContext
+ * @param exec_context
+ * {@.ja ExecutionContext}
+ * {@.en ExecutionContext}
*
- * @return int
+ * @return
+ * {@.ja ID(失敗した場合は-1を返す。)}
+ * {@.en ID(Returns -1,When narrow fails.)}
*
*/
public int bindContext(ExecutionContext exec_context)
{
- rtcout.println(rtcout.TRACE, "RTObject_impl.bindContext()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.bindContext()");
// ID: 0 - (offset-1) : owned ec
// ID: offset - : participating ec
@@ -645,6 +1043,7 @@
for(int i=0, len=m_ecMine.value.length; i < len; ++i) {
if (m_ecMine.value[i] == null) {
m_ecMine.value[i] = (ExecutionContextService)ecs._duplicate();
+ onAttachExecutionContext(i);
return i;
}
}
@@ -652,8 +1051,9 @@
// no space in the list, push back ec to the last.
CORBA_SeqUtil.push_back(m_ecMine,
(ExecutionContextService)ecs._duplicate());
-
- return (m_ecMine.value.length - 1);
+ int ec_id = (m_ecMine.value.length - 1);
+ onDetachExecutionContext(ec_id);
+ return ec_id;
}
@@ -662,7 +1062,7 @@
//============================================================
/**
- * {@.ja [RTObject CORBA interface] コンポーネントプロファイルを取得する}
+ * {@.ja [RTObject CORBA interface] コンポーネントプロファイルを取得する。}
* {@.en [RTObject CORBA interface] Get RTC's profile}
*
* <p>
@@ -677,7 +1077,7 @@
*/
public ComponentProfile get_component_profile() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_component_profile()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_component_profile()");
try {
ComponentProfile profile = new ComponentProfile();
@@ -698,13 +1098,20 @@
}
/**
- * <p>[RTObject CORBA interface] 当該コンポーネントが保有するポートの参照を取得します。</p>
+ * {@.ja [RTObject CORBA interface] ポートを取得する。}
+ * {@.en [RTObject CORBA interface] Get Ports}
*
- * @return ポート参照情報
+ * <p>
+ * {@.ja 当該コンポーネントが保有するポートの参照を返す。}
+ * {@.en This operation returns the reference of ports held by RTC.}
+ *
+ * @return
+ * {@.ja ポート参照情報}
+ * {@.en PortServiceList}
*/
public PortService[] get_ports() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_ports()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_ports()");
try {
return m_portAdmin.getPortServiceList().value;
@@ -715,15 +1122,35 @@
}
/**
- * <p>[CORBA interface] 当該コンポーネントをExecutionContextにattachします。</p>
+ * {@.ja [CORBA interface] ExecutionContextをattachする。}
+ * {@.en [CORBA interface] Attach ExecutionContext}
*
- * @param exec_context attach対象ExecutionContext
- *
- * @return attachされたExecutionContext数
+ * <p>
+ * {@.ja 指定した ExecutionContext にこの RTC を所属させる。
+ * この RTC と関連する ExecutionContext のハンドルを返す。
+ * このオペレーションは、ExecutionContextOperations.add_component が
+ * 呼ばれた際に呼び出される。
+ * 返されたハンドルは他のクライアントで使用することを想定していない。}
+ * {@.en Inform this RTC that it is participating
+ * in the given execution context.
+ * Return a handle that represents the association of this RTC with the
+ * context.
+ * This operation is intended to be invoked by
+ * ExecutionContextOperations::add_component. It is not intended for use by
+ * other clients.}
+ *
+ * @param exec_context
+ * {@.ja attach対象ExecutionContext}
+ * {@.en Participating ExecutionContext}
+ *
+ * @return
+ * {@.ja attachされたExecutionContext数}
+ * {@.en ExecutionContext Handle}
+ *
*/
public int attach_context(ExecutionContext exec_context) throws SystemException {
- rtcout.println(rtcout.TRACE, "RTObject_impl.attach_context()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.attach_context()");
// ID: 0 - (offset-1) : owned ec
// ID: offset - : participating ec
@@ -739,7 +1166,9 @@
for(int i=0, len=m_ecOther.value.length; i < len; ++i) {
if (m_ecOther.value[i] == null) {
m_ecOther.value[i] = (ExecutionContextService)ecs._duplicate();
- return (i + ECOTHER_OFFSET);
+ int ec_id = (i + ECOTHER_OFFSET);
+ onAttachExecutionContext(ec_id);
+ return (ec_id);
}
}
@@ -747,19 +1176,52 @@
CORBA_SeqUtil.push_back(m_ecOther,
(ExecutionContextService)ecs._duplicate());
- return ((m_ecOther.value.length - 1) + ECOTHER_OFFSET);
+ int ec_id = (m_ecOther.value.length - 1) + ECOTHER_OFFSET;
+ onAttachExecutionContext(ec_id);
+ return ec_id;
}
/**
- * <p>[CORBA interface] 当該コンポーネントをExecutionContextからdetachします。</p>
+ * {@.ja [CORBA interface] ExecutionContextをdetachする。}
+ * {@.en [CORBA interface] Detach ExecutionContext.}
*
- * @param ec_id detach対象ExecutionContextのID
+ * <p>
+ * {@.ja 指定した ExecutionContext からこの RTC の所属を解除する。
+ * このオペレーションは、ExecutionContextOperations::remove が呼ば
+ * れた際に呼び出される。返されたハンドルは他のクライアントで使用することを
+ * 想定していない。
*
- * @return 実行結果
+ * 制約<ul>
+ * <li> 指定された ExecutionContext に RTC がすでに所属していない場合には、
+ * ReturnCode_t.PRECONDITION_NOT_MET が返される。</li>
+ * <li> 指定された ExecutionContext にたしいて対して RTC が
+ * Active 状態である場合には、
+ * ReturnCode_t.PRECONDITION_NOT_MET が返される。</li></ul>}
+ * {@.en Inform this RTC that it is no longer participating
+ * in the given execution context.
+ * This operation is intended to be invoked by
+ * ExecutionContextOperations::remove. It is not intended for use
+ * by other clients.
+ * Constraints<ul>
+ * <li> This operation may not be invoked if this RTC is not already
+ * participating in the execution context. Such a call shall fail with
+ * ReturnCode_t::PRECONDITION_NOT_MET.</li>
+ * <li> This operation may not be invoked if this RTC is Active
+ * in the indicated
+ * execution context. Otherwise, it shall fail with
+ * ReturnCode_t::PRECONDITION_NOT_MET.</li></ul>}
+ *
+ * @param ec_id
+ * {@.ja detach対象ExecutionContextのID}
+ * {@.en Detaching ExecutionContext Handle}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t detach_context(int ec_id) throws SystemException {
- rtcout.println(rtcout.TRACE, "RTObject_impl.detach_context(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.detach_context(" + ec_id + ")");
int len = m_ecOther.value.length;
// ID: 0 - (offset-1) : owned ec
@@ -779,7 +1241,7 @@
}
/**
- * {@.ja [ComponentAction CORBA interface] RTC の初期化}
+ * {@.ja [ComponentAction CORBA interface] RTC の初期化。}
* {@.en [ComponentAction CORBA interface] Initialize RTC}
*
* <p>
@@ -799,11 +1261,13 @@
*/
public ReturnCode_t on_initialize() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_initialize()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_initialize()");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnInitialize(0);
ret = onInitialize();
+ postOnInitialize(0, ret);
String active_set;
active_set
= m_properties.getProperty("configuration.active_config",
@@ -821,17 +1285,32 @@
}
/**
- * <p>[ComponentAction interface] 当該コンポーネントの終了時に呼び出されます。</p>
+ * {@.ja [ComponentAction CORBA interface] 当該コンポーネントの終了時に
+ * 呼び出される。}
+ * {@.en [ComponentAction CORBA interface] Finalize RTC}
*
- * @return 実行結果
+ * <p>
+ * {@.ja RTC が破棄される。
+ * RTC 固有の終了処理はここで実行する。
+ * このオペレーション呼び出しの結果として onFinalize() コールバック関数が
+ * 呼び出される。}
+ * {@.en The RTC is being destroyed.
+ * Any final RTC-specific tear-down logic should be performed here.
+ * As a result of this operation, onFinalize() callback function is called.}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_finalize() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_finalize()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_finalize()");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnFinalize(0);
ret = onFinalize();
+ postOnFinalize(0, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -839,20 +1318,37 @@
}
/**
- * <p>[ComponentAction interface]
- * 当該コンポーネントのattachされているExecutionContextの実行開始時に呼び出されます。</p>
+ * {@.ja [ComponentAction CORBA interface] 当該コンポーネントの
+ * attachされているExecutionContextの実行開始時に呼び出される。}
+ * {@.en [ComponentAction CORBA interface] Startup RTC}
*
- * @param ec_id 対象ExecutionContextのID
- *
- * @return 実行結果
+ * <p>
+ * {@.ja RTC が所属する ExecutionContext が Stopped 状態から
+ * Running 状態へ遷移した場合に呼び出される。
+ * このオペレーション呼び出しの結果として onStartup() コールバック関数が
+ * 呼び出される。}
+ * {@.en The given execution context, in which the RTC is participating,
+ * has transitioned from Stopped to Running.
+ * As a result of this operation, onStartup() callback function is called.}
+ *
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of ExecutionContext that transited to the state}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_startup(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_startup(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_startup(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnStartup(ec_id);
ret = onStartup(ec_id);
+ postOnStartup(ec_id, ret);
} catch (Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -860,20 +1356,36 @@
}
/**
- * <p>[ComponentAction interface]
- * 当該コンポーネントのattachされているExecutionContextの実行終了時に呼び出されます。</p>
+ * {@.ja [ComponentAction CORBA interface] 当該コンポーネントのattachされ
+ * ているExecutionContextの実行終了時に呼び出される。}
+ * {@.en [ComponentAction CORBA interface] Shutdown RTC}
*
- * @param ec_id 対象ExecutionContextのID
- *
- * @return 実行結果
+ * <p>
+ * {@.ja RTC が所属する ExecutionContext が Running 状態から
+ * Stopped 状態へ遷移した場合に呼び出される。
+ * このオペレーション呼び出しの結果として onShutdown() コールバック関数が
+ * 呼び出される。}
+ * {@.en The given execution context, in which the RTC is participating,
+ * has transitioned from Running to Stopped.
+ * As a result of this operation, onShutdown() callback function is called.}
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of ExecutionContext that transited to the state}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_shutdown(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_shutdown(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_shutdown(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnShutdown(ec_id);
ret = onShutdown(ec_id);
+ postOnShutdown(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -881,22 +1393,37 @@
}
/**
- * <p>[ComponentAction interface]
- * 当該コンポーネントのActivate時に呼び出されます。</p>
+ * {@.ja [ComponentAction CORBA interface] 当該コンポーネントの
+ * Activate時に呼び出される。}
+ * {@.en [ComponentAction CORBA interface] Activate RTC}
*
- * @param ec_id 対象ExecutionContextのID
- *
- * @return 実行結果
+ * <p>
+ * {@.ja 所属する ExecutionContext から RTC が活性化された際に呼び出される。
+ * このオペレーション呼び出しの結果として onActivated() コールバック関数が
+ * 呼び出される。}
+ * {@.en The RTC has been activated in the given execution context.
+ * As a result of this operation, onActivated() callback function
+ * is called.}
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of activation ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_activated(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_activated(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_activated(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnActivated(ec_id);
m_configsets.update();
ret = onActivated(ec_id);
m_portAdmin.activatePorts();
+ postOnActivated(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -904,21 +1431,37 @@
}
/**
- * <p>[ComponentAction interface]
- * 当該コンポーネントのDeactivate時に呼び出されます。</p>
+ * {@.ja [ComponentAction CORBA interface] 当該コンポーネントの
+ * Deactivate時に呼び出される。}
+ * {@.en [ComponentAction CORBA interface] Deactivate RTC}
*
- * @param ec_id 対象ExecutionContextのID
- *
- * @return 実行結果
+ * <p>
+ * {@.ja 所属する ExecutionContext から RTC が非活性化された際に
+ * 呼び出される。
+ * このオペレーション呼び出しの結果として onDeactivated() コールバック関数が
+ * 呼び出される。}
+ * {@.en The RTC has been deactivated in the given execution context.
+ * As a result of this operation, onDeactivated() callback function
+ * is called.}
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of deactivation ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_deactivated(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_deactivated(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_deactivated(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnDeactivated(ec_id);
m_portAdmin.deactivatePorts();
ret = onDeactivated(ec_id);
+ postOnDeactivated(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -926,20 +1469,41 @@
}
/**
- * <p>[ComponentAction interface]
- * 当該コンポーネントのAbort時に呼び出されます。</p>
+ * {@.ja [ComponentAction CORBA interface] RTC のエラー状態への遷移。}
+ * {@.en [ComponentAction CORBA interface] Transition to Error State}
*
- * @param ec_id 対象ExecutionContextのID
- *
- * @return 実行結果
+ * <p>
+ * {@.ja RTC が所属する ExecutionContext が Active 状態から
+ * Error 状態へ遷移した場合に呼び出される。
+ * このオペレーションは RTC が Error 状態に遷移した際に一度だけ呼び
+ * 出される。
+ * このオペレーション呼び出しの結果として onAborting() コールバック関数が
+ * 呼び出される。}
+ * {@.en The RTC is transitioning from the Active state
+ * to the Error state in some execution context.
+ * This callback is invoked only a single time for time that the RTC
+ * transitions into the Error state from another state. This behavior is in
+ * contrast to that of on_error.
+ * As a result of this operation, onAborting() callback function
+ * is invoked.}
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of ExecutionContext that transited to the state}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_aborting(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_aborting(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_aborting(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnAborting(ec_id);
ret = onAborting(ec_id);
+ postOnAborting(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -947,21 +1511,55 @@
}
/**
- * <p>[ComponentAction interface]
- * 当該コンポーネントがError状態にいる間、呼び出されます。</p>
+ * {@.ja [ComponentAction CORBA interface] RTC のエラー処理}
+ * {@.en [ComponentAction CORBA interface] Error Processing of RTC}
*
- * @param ec_id 対象ExecutionContextのID
- *
- * @return 実行結果
+ * <p>
+ * {@.ja RTC がエラー状態にいる際に呼び出される。
+ * RTC がエラー状態の場合に、対象となる ExecutionContext のExecutionKind に
+ * 応じたタイミングで呼び出される。例えば、<ul>
+ * <li> ExecutionKind が PERIODIC の場合、本オペレーションは
+ * DataFlowComponentAction::on_execute と on_state_update の替わりに、
+ * 設定された順番、設定された周期で呼び出される。
+ * <li> ExecutionKind が EVENT_DRIVEN の場合、本オペレーションは
+ * FsmParticipantAction::on_action が呼ばれた際に、替わりに呼び出される。
+ * </ul>
+ * このオペレーション呼び出しの結果として onError() コールバック関数が呼び出
+ * される。}
+ * {@.en The RTC remains in the Error state.
+ * If the RTC is in the Error state relative to some execution context when
+ * it would otherwise be invoked from that context (according to the
+ * context’s ExecutionKind), this callback shall be invoked instead.
+ * For example,<ul>
+ * <li> If the ExecutionKind is PERIODIC, this operation shall
+ * be invoked in
+ * sorted order at the rate of the context instead of
+ * DataFlowComponentAction::on_execute and on_state_update.
+ * <li> If the ExecutionKind is EVENT_DRIVEN,
+ * this operation shall be invoked
+ * whenever FsmParticipantAction::on_action would otherwise have been
+ * invoked.
+ * </ul>
+ * As a result of this operation, onError() callback function is invoked.}
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of target ExecutionContext}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_error(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_error(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_error(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnError(ec_id);
ret = onError(ec_id);
m_configsets.update();
+ postOnError(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -969,20 +1567,43 @@
}
/**
- * <p>[ComponentAction interface]
- * 当該コンポーネントのReset時に呼び出されます。</p>
+ * {@.ja [ComponentAction CORBA interface] RTC のリセット。}
+ * {@.en [ComponentAction CORBA interface] Resetting RTC}
*
- * @param ec_id 対象ExecutionContextのID
- *
- * @return 実行結果
+ * <p>
+ * {@.ja Error 状態にある RTC のリカバリ処理を実行し、
+ * Inactive 状態に復帰させる場合に呼び出される。
+ * RTC のリカバリ処理が成功した場合は Inactive 状態に復帰するが、それ以外の
+ * 場合には Error 状態に留まる。
+ * このオペレーション呼び出しの結果として onReset() コールバック関数が呼び
+ * 出される。}
+ * {@.en The RTC is in the Error state. An attempt is being made
+ * to recover it such
+ * that it can return to the Inactive state.
+ * If the RTC was successfully recovered and can safely return to the
+ * Inactive state, this method shall complete with ReturnCode_t::OK. Any
+ * other result shall indicate that the RTC should remain
+ * in the Error state.
+ * As a result of this operation, onReset() callback function is invoked.}
+ *
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of target ExecutionContext for the reset}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_reset(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_reset(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_reset(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnReset(ec_id);
ret = onReset(ec_id);
+ postOnReset(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -1006,10 +1627,11 @@
*/
public ReturnCode_t on_execute(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_execute(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_execute(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnExecute(ec_id);
if(m_readAll){
readAll();
}
@@ -1017,6 +1639,7 @@
if(m_writeAll){
writeAll();
}
+ postOnExecute(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -1024,21 +1647,57 @@
}
/**
- * <p>[ComponentAction interface]
- * 当該コンポーネントがAvtive状態の間、on_executeの後に呼び出されます。</p>
+ * {@.ja [DataFlowComponentAction CORBA interface]
+ * RTC の定常処理(第二周期)。}
+ * {@.en [DataFlowComponentAction CORBA interface] Secondary Periodic
+ * Operation of RTC}
*
- * @param ec_id 対象ExecutionContextのID
- *
- * @return 実行結果
+ * <p>
+ * {@.ja 以下の状態が保持されている場合に、
+ * 設定された周期で定期的に呼び出される。
+ * <ul>
+ * <li> RTC は Alive 状態である。
+ * <li> 指定された ExecutionContext が Running 状態である。
+ * </ul>
+ * 本オペレーションは、Two-Pass Execution の第二周期で実行される。
+ * このオペレーション呼び出しの結果として onStateUpdate() コールバック関数が
+ * 呼び出される。
+ *
+ * 制約<ul>
+ * <li> 指定された ExecutionContext の ExecutionKind は、
+ * PERIODIC でなければならない</li></ul>}
+ * {@.en This operation will be invoked periodically
+ * at the rate of the given
+ * execution context as long as the following conditions hold:<ul>
+ * <li> The RTC is Active.
+ * <li> The given execution context is Running
+ * </ul>
+ * This callback occurs during the second execution pass.
+ * As a result of this operation, onStateUpdate() callback function is
+ * invoked.
+ *
+ * Constraints<ul>
+ * <li> The execution context of the given context shall be PERIODIC.</ul>}
+ *
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of target ExecutionContext for Secondary Periodic Operation}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
*/
public ReturnCode_t on_state_update(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_state_update(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_state_update(" + ec_id + ")");
ReturnCode_t ret =ReturnCode_t.RTC_ERROR;
try {
+ preOnStateUpdate(ec_id);
ret = onStateUpdate(ec_id);
m_configsets.update();
+ postOnStateUpdate(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -1049,17 +1708,48 @@
* <p>[ComponentAction interface]
* 当該コンポーネントがattachされているExecutionContextの実行周期が変更になった時に呼び出されます。</p>
*
- * @param ec_id 対象ExecutionContextのID
*
* @return 実行結果
*/
+ /**
+ * {@.ja [DataFlowComponentAction CORBA interface] 実行周期変更通知。}
+ * {@.en [DataFlowComponentAction CORBA interface] Notify rate changed}
+ *
+ * <p>
+ * {@.ja 本オペレーションは、ExecutionContext の実行周期が変更されたことを
+ * 通知する際に呼び出される。
+ * このオペレーション呼び出しの結果として onRateChanged() コールバック関数が
+ * 呼び出される。
+ *
+ * 制約<ul>
+ * <li> 指定された ExecutionContext の ExecutionKind は、
+ * PERIODIC でなければならない</li></ul>}
+ * {@.en This operation is a notification that the rate of the
+ * indicated execution context has changed.
+ * As a result of this operation, onRateChanged() callback function is
+ * called.
+ *
+ * Constraints<ul>
+ * <li> The execution context of the given context shall be PERIODIC.</ul>}
+ *
+ *
+ * @param ec_id
+ * {@.ja 対象ExecutionContextのID}
+ * {@.en ID of target ExecutionContext for Operation}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type}
+ */
public ReturnCode_t on_rate_changed(int ec_id) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.on_rate_changed(" + ec_id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.on_rate_changed(" + ec_id + ")");
ReturnCode_t ret = ReturnCode_t.RTC_ERROR;
try {
+ preOnRateChanged(ec_id);
ret = onRateChanged(ec_id);
+ postOnRateChanged(ec_id, ret);
} catch(Exception ex) {
return ReturnCode_t.RTC_ERROR;
}
@@ -1067,17 +1757,41 @@
}
/**
- * <p>[CORBA interface] Organization リストを取得します。<br />
- * SDOSystemElement は0個もしくはそれ以上の Organization を所有することが
- * 出来ます。 SDOSystemElement が1つ以上の Organization を所有している場合
- * には、このオペレーションは所有する Organization のリストを返します。
- * もしOrganizationを一つも所有していないければ空のリストを返します。</p>
+ * {@.ja [SDO interface] Organization リストの取得。}
+ * {@.en [SDO interface] Get Organization list}
*
- * @return Organization リスト
+ * <p>
+ * {@.ja SDOSystemElement は0個もしくはそれ以上の
+ * Organization を所有することが出来る。
+ * SDOSystemElement が1つ以上の Organization を所有している場合
+ * には、このオペレーションは所有する Organization のリストを返す。
+ * もしOrganizationを一つも所有していないければ空のリストを返す。}
+ * {@.en SDOSystemElement can be the owner of zero or more organizations.
+ * If the SDOSystemElement owns one or more Organizations, this operation
+ * returns the list of Organizations that the SDOSystemElement owns.
+ * If it does not own any Organization, it returns empty list.}
+ *
+ * @return
+ * {@.ja 所有している Organization リスト}
+ * {@.en Owned Organization List}
+ *
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public Organization[] get_owned_organizations() throws NotAvailable {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_owned_organizations()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_owned_organizations()");
try {
return m_sdoOwnedOrganizations.value.clone();
@@ -1087,19 +1801,36 @@
}
/**
- * <p>[CORBA interface] SDO IDを取得します。<br />
- * SDO ID を返すオペレーション。
- * このオペレーションは以下の型の例外を発生させる場合があります。</p>
+ * {@.ja [SDO interface] SDO ID の取得。}
+ * {@.en [SDO interface] Get the SDO ID}
+ *
+ * <p>
+ * {@.ja SDO ID を返すオペレーション。
+ * このオペレーションは以下の型の例外を発生させる。}
+ * {@.en This operation returns id of the SDO.
+ * This operation throws SDOException with one of the following types.}
*
- * @return リソースデータモデルで定義されている SDO の ID
+ * @return
+ * {@.ja リソースデータモデルで定義されている SDO の ID}
+ * {@.en id of the SDO defined in the resource data model.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public String get_sdo_id() throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_sdo_id()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_sdo_id()");
try {
String sdo_id = m_profile.instance_name;
@@ -1110,19 +1841,36 @@
}
/**
- * <p>[CORBA interface] SDO タイプを取得します。<br />
- * SDO Type を返すオペレーション。
- * このオペレーションは以下の型の例外を発生させる場合があります。</p>
+ * {@.ja [SDO interface] SDO タイプの取得。}
+ * {@.en [SDO interface] Get SDO type}
*
- * @return リソースデータモデルで定義されている SDO の Type
- *
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * <p>
+ * {@.ja SDO Type を返すオペレーション。
+ * このオペレーションは以下の型の例外を発生させる。}
+ * {@.en This operation returns sdoType of the SDO.
+ * This operation throws SDOException with one of the following types.}
+ *
+ * @return
+ * {@.ja リソースデータモデルで定義されている SDO の Type}
+ * {@.en Type of the SDO defined in the resource data model.}
+ *
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public String get_sdo_type() throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_sdo_type()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_sdo_type()");
try {
String sdo_type = m_profile.description;
@@ -1133,19 +1881,41 @@
}
/**
- * <p>[CORBA interface] SDO DeviceProfile リストを取得します。<br />
- * SDO の DeviceProfile を返すオペレーション。
- * SDO がハードウエアデバイスに関連付けられていない場合には、空の DeviceProfile を返します。
- * このオペレーションは以下の型の例外を発生させる場合があります。</p>
- *
- * @return リソースデータモデルで定義されている SDO の DeviceProfile
- *
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * {@.ja [SDO interface] SDO DeviceProfile リストの取得。}
+ * {@.en [SDO interface] Get SDO DeviceProfile list}
+ *
+ * <p>
+ * {@.ja SDO の DeviceProfile を返すオペレーション。
+ * SDO がハードウエアデバイス
+ * に関連付けられていない場合には、空の DeviceProfile が返される。
+ * このオペレーションは以下の型の例外を発生させる。}
+ * {@.en This operation returns the DeviceProfile of the SDO.
+ * If the SDO does not
+ * represent any hardware device, then a DeviceProfile with empty values
+ * are returned.
+ * This operation throws SDOException with one of the following types.}
+ *
+ * @return
+ * {@.ja SDO DeviceProfile}
+ * {@.en The DeviceProfile of the SDO.}
+ *
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public DeviceProfile get_device_profile() throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_device_profile()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_device_profile()");
try {
DeviceProfile dprofile = m_pSdoConfigImpl.getDeviceProfile();
@@ -1156,20 +1926,39 @@
}
/**
- * <p>[CORBA interface] SDO ServiceProfile を取得します。<br />
- * SDO が所有している Service の ServiceProfile を返すオペレーション。
- * SDO がサービスを一つも所有していない場合には、空のリストを返します。
- * このオペレーションは以下の型の例外を発生させる場合があります。</p>
+ * {@.ja [SDO interface] SDO ServiceProfile の取得。}
+ * {@.en [SDO interface] Get SDO ServiceProfile}
+ *
+ * <p>
+ * {@.ja SDO が所有している Service の ServiceProfile を返すオペレーション。
+ * SDO がサービスを一つも所有していない場合には、空のリストを返す。
+ * このオペレーションは以下の型の例外を発生させる。}
+ * {@.en This operation returns a list of ServiceProfiles that the SDO has.
+ * If the SDO does not provide any service, then an empty list is returned.
+ * This operation throws SDOException with one of the following types.}
*
- * @return リソースデータモデルで定義されている SDO の ServiceProfile
+ * @return
+ * {@.ja SDO が提供する全ての Service の ServiceProfile。}
+ * {@.en List of ServiceProfiles of all the services the SDO is
+ * providing.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public ServiceProfile[] get_service_profiles() throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_service_profiles()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_service_profiles()");
try {
return m_pSdoConfigImpl.getServiceProfiles().value;
@@ -1179,21 +1968,46 @@
}
/**
- * <p>[CORBA interface] 特定のServiceProfile を取得します。<br />
- * 引数 "id" で指定された名前のサービスの ServiceProfile を返します。</p>
+ * {@.ja [SDO interface] 特定のServiceProfileの取得。}
+ * {@.en [SDO interface] Get specified ServiceProfile}
+ *
+ * <p>
+ * {@.ja 引数 "id" で指定された名前のサービスの ServiceProfile を返す。}
+ * {@.en This operation returns the ServiceProfile that is specified by the
+ * argument "id."}
*
- * @param id SDO Service の ServiceProfile に関連付けられた識別子。
+ * @param id
+ * {@.ja SDO Service の ServiceProfile に関連付けられた識別子。}
+ * {@.en The identifier referring to one of the ServiceProfiles.}
*
- * @return 指定された SDO Service の ServiceProfile
+ * @return
+ * {@.ja 指定された SDO Service の ServiceProfile。}
+ * {@.en The profile of the specified service.}
*
- * @exception InvalidParameter パラメータ値が不正。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception InvalidParameter
+ * {@.ja "id" で指定した ServiceProfile が存在しない。
+ * "id" が null。}
+ * {@.en The ServiceProfile that is specified by
+ * the argument 'id' does not exist or if 'id'
+ * is 'null.'}
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public ServiceProfile get_service_profile(String id) throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_service_profile(" + id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_service_profile(" + id + ")");
try {
if( id == null || id.equals("") ) {
@@ -1213,22 +2027,52 @@
}
/**
- * <p>[CORBA interface] 指定された SDO Service を取得します。<br />
- * このオペレーションは引数 "id" で指定された名前によって区別される
- * SDO の Service へのオブジェクト参照を返します。 SDO により提供される
- * Service はそれぞれ一意の識別子により区別されます。</p>
+ * {@.ja [SDO interface] 指定された SDO Service の取得。}
+ * {@.en [SDO interface] Get specified SDO Service's reference}
+ *
+ * <p>
+ * {@.ja このオペレーションは引数 "id" で指定された名前によって区別される
+ * SDO の Service へのオブジェクト参照を返す。 SDO により提供される
+ * Service はそれぞれ一意の識別子により区別される。}
+ * {@.en This operation returns an object implementing an SDO's service that
+ * is identified by the identifier specified as an argument. Different
+ * services provided by an SDO are distinguished with different
+ * identifiers. See OMG SDO specification Section 2.2.8, "ServiceProfile,"
+ * on page 2-12 for more details.}
+ *
+ *
+ * @param id
+ * {@.ja SDO Service に関連付けられた識別子。}
+ * {@.en The identifier referring to one of the SDO Service}
+ *
+ * @return
+ * {@.ja 要求された SDO Service への参照。}
+ * {@.en The reference requested to SDO Service.}
+ *
*
- * @param id SDO Service に関連付けられた識別子。
- *
- * @return 要求された SDO Service への参照。
- *
- * @exception InvalidParameter パラメータ値が不正。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception InvalidParameter
+ * {@.ja "id" で指定した ServiceProfile が存在しない。
+ * "id" が null。}
+ * {@.en Argument “id” is null, or if the
+ * ServiceProfile that is specified by argument
+ * "id" does not exist.}
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public SDOService get_sdo_service(String id) throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_sdo_service(" + id + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_sdo_service(" + id + ")");
try {
if( id == null || id.equals("") ) {
@@ -1248,24 +2092,49 @@
}
/**
- * <p>[CORBA interface] Configuration オブジェクト を取得します。<br />
- * このオペレーションは Configuration interface への参照を返します。
- * Configuration interface は各 SDO を管理するためのインターフェースのひとつです。
- * このインターフェースは DeviceProfile, ServiceProfile,
- * Organization で定義された SDO の属性値を設定するために使用されます。
+ * {@.ja [SDO interface] Configuration オブジェクトの取得。}
+ * {@.en [SDO interface] Get Configuration object}
+ *
+ * <p>
+ * {@.ja このオペレーションは Configuration interface への参照を返す。
+ * Configuration interface は各 SDO を管理するためのインターフェースの
+ * ひとつである。このインターフェースは DeviceProfile, ServiceProfile,
+ * Organization で定義された SDO の属性値を設定するために使用される。
* Configuration インターフェースの詳細については、OMG SDO specification
- * の 2.3.5節, p.2-24 を参照してください。</p>
- *
- * @return SDO の Configuration インターフェースへの参照。
- *
- * @exception InterfaceNotImplemented SDOはConfigurationインターフェースを持たない。
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * の 2.3.5節, p.2-24 を参照のこと。}
+ * {@.en This operation returns an object implementing the Configuration
+ * interface. The Configuration interface is one of the interfaces that
+ * each SDO maintains. The interface is used to configure the attributes
+ * defined in DeviceProfile, ServiceProfile, and Organization.
+ * See OMG SDO specification Section 2.3.5, "Configuration Interface,"
+ * on page 2-24 for more details about the Configuration interface.}
+ *
+ * @return
+ * {@.ja SDO の Configuration インターフェースへの参照}
+ * {@.en The Configuration interface of an SDO.}
+ *
+ * @exception InterfaceNotImplemented
+ * {@.ja SDOはConfigurationインターフェースを
+ * 持たない。}
+ * {@.en The target SDO has no Configuration
+ * interface.}
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public Configuration get_configuration() throws InterfaceNotImplemented, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_configuration()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_configuration()");
if( m_pSdoConfig == null) {
throw new InterfaceNotImplemented();
@@ -1279,43 +2148,90 @@
}
/**
- * <p>[CORBA interface] Monitoring オブジェクト を取得します。<br />
- * このオペレーションは Monitoring interface への参照を返します。
- * Monitoring interface は SDO が管理するインターフェースの一つです。
- * このインターフェースは SDO のプロパティをモニタリングするために使用されます。
+ * {@.ja [SDO interface] Monitoring オブジェクトの取得。}
+ * {@.en [SDO interface] Get Monitoring object}
+ *
+ * <p>
+ * {@.ja このオペレーションは Monitoring interface への参照を返す。
+ * Monitoring interface は SDO が管理するインターフェースの一つである。
+ * このインターフェースは SDO のプロパティをモニタリングするために
+ * 使用される。
* Monitoring interface の詳細については OMG SDO specification の
- * 2.3.7節 "Monitoring Interface" p.2-35 を参照してください。</p>
- *
- * @return SDO の Monitoring interfaceへの参照。
- *
- * @exception InterfaceNotImplemented SDOはMonitoringインターフェースを持たない。
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * 2.3.7節 "Monitoring Interface" p.2-35 を参照のこと。}
+ * {@.en This operation returns an object implementing
+ * the Monitoring interface.
+ * The Monitoring interface is one of the interfaces that each SDO
+ * maintains. The interface is used to monitor the properties of an SDO.
+ * See OMG SDO specification Section 2.3.7, "Monitoring Interface," on
+ * page 2-35 for more details about the Monitoring interface.}
+ *
+ * @return
+ * {@.ja SDO の Monitoring interface への参照}
+ * {@.en The Monitoring interface of an SDO.}
+ *
+ * @exception InterfaceNotImplemented
+ * {@.ja SDOはConfigurationインターフェースを
+ * 持たない。}
+ * {@.en The target SDO has no Configuration
+ * interface.}
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public Monitoring get_monitoring() throws InterfaceNotImplemented, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_monitoring()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_monitoring()");
throw new InterfaceNotImplemented();
}
/**
- * <p>[CORBA interface] Organization リスト を取得します。<br />
- * SDO は0個以上の Organization (組織)に所属することができます。
- * もし SDO が1個以上の Organization に所属している場合、このオペレーションは所属する
- * Organization のリストを返します。SDO が どの Organization にも所属していない
- * 場合には、空のリストが返されます。</p>
- *
- * @return SDO が所属する Organization のリスト。
- *
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * {@.ja [SDO interface] Organization リストの取得。}
+ * {@.en [SDO interface] Get Organization list}
+ *
+ * <p>
+ * {@.ja SDO は0個以上の Organization (組織)に所属することができる。
+ * もし SDO が1個以上の Organization に所属している場合、
+ * このオペレーションは所属する
+ * Organization のリストを返す。SDO が どの Organization にも所属していない
+ * 場合には、空のリストが返される。}
+ * {@.en An SDO belongs to zero or more organizations.
+ * If the SDO belongs to one
+ * or more organizations, this operation returns the list of organizations
+ * that the SDO belongs to. An empty list is returned if the SDO does not
+ * belong to any Organizations.}
+ *
+ * @return
+ * {@.ja SDO が所属する Organization のリスト。}
+ * {@.en The list of Organizations that the SDO belong to.}
+ *
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public Organization[] get_organizations() throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_organizations()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_organizations()");
try {
OrganizationListHolder orgList = new OrganizationListHolder(m_pSdoConfigImpl.getOrganizations().value);
@@ -1326,18 +2242,34 @@
}
/**
- * <p>[CORBA interface] SDO Status リスト を取得します。<br />
- * このオペレーションは SDO のステータスを表す NVList を返します</p>
- *
- * @return SDO のステータス。
- *
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * {@.ja [SDO interface] SDO Status リストの取得。}
+ * {@.en [SDO interface] Get SDO Status list}
+ *
+ * <p>
+ * {@.ja このオペレーションは SDO のステータスを表す NVList を返す。}
+ * {@.en This operation returns an NVlist describing the status of an SDO.}
+ *
+ * @return
+ * {@.ja SDO のステータス。}
+ * {@.en The actual status of an SDO.}
+ *
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public NameValue[] get_status_list() throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_status_list()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_status_list()");
if(m_sdoStatus.value==null){
NVListHolder holder = new NVListHolder();
@@ -1359,22 +2291,45 @@
}
/**
- * <p>[CORBA interface] SDO Status を取得します。<br />
- * このオペレーションは 引数で指定された SDO のステータスを返します</p>
+ * {@.ja [SDO interface] SDO Status の取得。}
+ * {@.en [SDO interface] Get SDO Status}
+ *
+ * <p>
+ * {@.ja このオペレーションは 引数で指定された
+ * SDO のステータスを返す}
+ * {@.en This operation returns the value of
+ * the specified status parameter.}
*
- * @param name SDO のステータスを定義するパラメータ。
+ * @param name
+ * {@.ja SDO のステータスを定義するパラメータ。}
+ * {@.en One of the parameters defining the "status" of an SDO.}
*
- * @return 指定されたパラメータのステータス値。
+ * @return
+ * {@.ja 指定されたパラメータのステータス値。}
+ * {@.en The value of the specified status parameter.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InvalidParameter 引数 "name" が null あるいは存在しない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "name" が null あるいは存在しない。}
+ * {@.en The parameter defined by "name" is null or
+ * does not exist.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public Any get_status(String name) throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "RTObject_impl.get_status(" + name + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.get_status(" + name + ")");
int index = CORBA_SeqUtil.find(m_sdoStatus, new nv_name(name));
if( index < 0 ) {
@@ -1390,94 +2345,153 @@
}
/**
- * <p>当該オブジェクトのインスタンス名を取得します。</p>
+ * {@.ja [local interface] インスタンス名の取得。}
+ * {@.en [local interface] Get instance name}
*
- * @return インスタンス名
+ * <p>
+ * {@.ja ComponentProfile に設定されたインスタンス名を返す。}
+ * {@.en Return the instance name that has been set in ComponentProfile.}
+ *
+ * @return
+ * {@.ja インスタンス名}
+ * {@.en Instance name}
*/
public final String getInstanceName() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.getInstanceName()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.getInstanceName()");
return m_profile.instance_name;
}
/**
- * <p>当該オブジェクトのインスタンス名を設定します。</p>
+ * {@.ja [local interface] インスタンス名の設定。}
+ * {@.en [local interface] Set instance name}
*
- * @param instance_name インスタンス名
+ * <p>
+ * {@.ja ComponentProfile に指定されたインスタンス名を設定する。}
+ * {@.en Set the instance name specified in ComponentProfile.}
+ *
+ * @param instance_name
+ * {@.ja インスタンス名}
+ * {@.en Instance name}
*/
public void setInstanceName(final String instance_name) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.setInstanceName(" + instance_name + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.setInstanceName(" + instance_name + ")");
m_properties.setProperty("instance_name", instance_name);
m_profile.instance_name = m_properties.getProperty("instance_name");
}
/**
- * <p>当該オブジェクトの型名を取得します。</p>
+ * {@.ja [local interface] 型名の取得。}
+ * {@.en [local interface] Get type name}
*
- * @return 型名
+ * <p>
+ * {@.ja ComponentProfile に設定された型名を返す。}
+ * {@.en Get the type name has been set in ComponentProfile.}
+ *
+ * @return
+ * {@.ja 型名}
+ * {@.en Type name}
*/
public final String getTypeName() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.getTypeName()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.getTypeName()");
return m_profile.type_name;
}
/**
- * <p>当該オブジェクトのカテゴリを取得します。</p>
+ * {@.ja [local interface] カテゴリ情報の取得。}
+ * {@.en [local interface] Get category information}
*
- * @return カテゴリ
+ * <p>
+ * {@.ja ComponentProfile に設定されたカテゴリ情報を返す。}
+ * {@.en Get the category information that has been set
+ * in ComponentProfile.}
+ *
+ * @return
+ * {@.ja カテゴリ情報}
+ * {@.en Category information}
*/
public final String getCategory() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.getCategory()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.getCategory()");
return m_profile.category;
}
/**
- * <p>当該オブジェクトのNaming Seriveへの登録名を取得します。</p>
+ * {@.ja [local interface] Naming Server 情報の取得。}
+ * {@.en [local interface] Get Naming Server information}
*
- * @return Naming Seriveへの登録名
+ * <p>
+ * {@.ja 設定された Naming Server 情報を返す。}
+ * {@.en Get Naming Server information that has been set.}
+ *
+ * @return
+ * {@.ja Naming Server リスト}
+ * {@.en Naming Server list}
*/
public String[] getNamingNames() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.getNamingNames()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.getNamingNames()");
return m_properties.getProperty("naming.names").split(",");
}
/**
- * <p>CORBAオブジェクト参照を設定します。</p>
+ * {@.ja [local interface] オブジェクトリファレンスの設定。}
+ * {@.en [local interface] Set the object reference}
*
- * @param rtobj CORBAオブジェクト参照
+ * <p>
+ * {@.ja RTC の CORBA オブジェクトリファレンスを設定する。}
+ * {@.en Set RTC's CORBA object reference.}
+ *
+ * @param rtobj
+ * {@.ja オブジェクトリファレンス}
+ * {@.en The object reference}
*/
public void setObjRef(final RTObject rtobj) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.setObjRef()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.setObjRef()");
m_objref = rtobj;
}
/**
- * <p>CORBAオブジェクト参照を取得します。</p>
+ * {@.ja [local interface] オブジェクトリファレンスの取得。}
+ * {@.en [local interface] Get the object reference}
*
- * @return rtobj CORBAオブジェクト参照
+ * <p>
+ * {@.ja 設定された CORBA オブジェクトリファレンスを取得する。}
+ * {@.en Get CORBA object reference that has been set}
+ *
+ * @return
+ * {@.ja オブジェクトリファレンス}
+ * {@.en The object reference}
*/
public final RTObject getObjRef() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.getObjRef()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.getObjRef()");
return (RTObject)m_objref._duplicate();
}
/**
- * <p>[local interface] RTC のプロパティを設定します。<br />
- * RTコンポーネント が保持すべきプロパティを設定します。
- * 与えられるプロパティは、ComponentProfile 等に設定されるべき情報を持たなければなりません。
- * このオペレーションは通常 RTコンポーネント が初期化される際に Manager から
- * 呼ばれることを意図しています。</p>
+ * {@.ja [local interface] RTC のプロパティを設定する。}
+ * {@.en [local interface] Set RTC property}
*
- * @param prop RTC のプロパティ
+ * <p>
+ * {@.ja RTC が保持すべきプロパティを設定する。与えられるプロパティは、
+ * ComponentProfile 等に設定されるべき情報を持たなければならない。
+ * このオペレーションは通常 RTC が初期化される際に Manager から
+ * 呼ばれることを意図している。}
+ * {@.en This operation sets the properties to the RTC. The given property
+ * values should include information for ComponentProfile.
+ * Generally, this operation is designed to be called from Manager, when
+ * RTC is initialized}
+ *
+ * @param prop
+ * {@.ja RTC のプロパティ}
+ * {@.en Property for RTC.}
*/
public void setProperties(final Properties prop) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.setProperties()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.setProperties()");
m_properties.merge(prop);
try {
@@ -1488,7 +2502,8 @@
}
/**
- * <p> syncAttributesByProperties </p>
+ * {@.ja プロパティを設定する }
+ * {@.en Sets property}
*/
protected void syncAttributesByProperties() throws Exception {
// Properties --> DeviceProfile
@@ -1512,50 +2527,82 @@
}
/**
- * <p>[local interface] RTC のプロパティを取得します。<br />
- * RTC が保持しているプロパティを返します。
- * RTCがプロパティを持たない場合は空のプロパティが返されます。</p>
+ * {@.ja [local interface] RTC のプロパティを取得する。}
+ * {@.en [local interface] Get RTC property}
+ *
+ * <p>
+ * {@.ja RTC が保持しているプロパティを返す。
+ * RTCがプロパティを持たない場合は空のプロパティが返される。}
+ * {@.en This operation returns the properties of the RTC.
+ * Empty property would be returned, if RTC has no property.}
*
- * @return RTC のプロパティ
+ * @return
+ * {@.ja RTC のプロパティ}
+ * {@.en Property for RTC.}
*/
public Properties getProperties() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.getProperties()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.getProperties()");
return m_properties;
}
/**
- * <p>コンフィギュレーション・パラメータをbindします。</p>
+ * {@.ja コンフィギュレーションパラメータの設定。}
+ * {@.en Setup for configuration parameters}
*
- * @param param_name パラメータ名
- * @param var 値保持用オブジェクト
- * @param def_val デフォルト値
- *
- * @return bind結果
+ * <p>
+ * {@.ja コンフィギュレーションパラメータと変数をバインドする
+ * \<ValueHolder\>としてコンフィギュレーションパラメータの
+ * データ型を指定する。}
+ * {@.en Bind configuration parameter to its variable.
+ * Specify the data type of configuration parameter as \<ValueHolder\>.}
+ *
+ * @param param_name
+ * {@.ja コンフィギュレーションパラメータ名}
+ * {@.en Configuration parameter name}
+ * @param var
+ * {@.ja コンフィギュレーションパラメータ格納用変数}
+ * {@.en Variables to store configuration parameter}
+ * @param def_val
+ * {@.ja コンフィギュレーションパラメータデフォルト値}
+ * {@.en Default value of configuration parameter}
+ *
+ * @return
+ * {@.ja 設定結果(設定成功:true,設定失敗:false)}
+ * {@.en Setup result (Successful:true, Failed:false)}
*/
public boolean bindParameter(final String param_name, ValueHolder var, final String def_val) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.bindParameter(" + param_name + "," + def_val + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.bindParameter(" + param_name + "," + def_val + ")");
m_configsets.bindParameter(param_name, var, def_val);
return true;
}
/**
- * <p>コンフィギュレーション・パラメータを更新します。</p>
+ * {@.ja コンフィギュレーションパラメータの更新。}
+ * {@.en Update configuration parameters}
*
- * @param config_set 更新対象値
+ * <p>
+ * {@.ja 指定したIDのコンフィギュレーションセットに設定した値で、
+ * コンフィギュレーションパラメータの値を更新する}
+ * {@.en Update configuration parameter value by the value that
+ * set to a configuration set of specified ID.}
+ *
+ * @param config_set
+ * {@.ja 更新対象値}
+ * {@.en The target configuration set's ID for setup}
*/
public void updateParameters(final String config_set) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.updateParameters(" + config_set + ")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.updateParameters(" + config_set + ")");
m_configsets.update(config_set);
return;
}
/**
- * {@.ja [local interface] Port を登録する}
+ * {@.ja [local interface] Port を登録する。}
* {@.en [local interface] Register Port}
*
* <p>
@@ -1582,15 +2629,15 @@
*/
public void registerPort(PortBase port) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.registerPort(PortBase)");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.registerPort(PortBase)");
if (!addPort(port)) {
- rtcout.println(rtcout.ERROR, "addPort(PortBase&) failed.");
+ rtcout.println(Logbuf.ERROR, "addPort(PortBase&) failed.");
}
}
/**
- * {@.ja [local interface] Port を登録する}
+ * {@.ja [local interface] Port を登録する。}
* {@.en [local interface] Register Port}
* <p>
* {@.ja RTC が保持するPortを登録する。
@@ -1619,53 +2666,77 @@
*/
public boolean addPort(PortBase port) {
- rtcout.println(rtcout.TRACE, "addPort(PortBase)");
+ rtcout.println(Logbuf.TRACE, "addPort(PortBase)");
port.setOwner(this.getObjRef());
+ onAddPort(port.getPortProfile());
return m_portAdmin.addPort(port);
}
/**
- * <p> [local interface] Register Port </p>
+ * {@.ja [local interface] Port を登録する。}
+ * {@.en [local interface] Register Port}
*
- * This operation registers a Port held by this RTC.
+ * <p>
+ * {@.ja RTC が保持するPortを登録する。
+ * Port を外部からアクセス可能にするためには、このオペレーションにより
+ * 登録されていなければならない。登録される Port はこの RTC 内部において
+ * PortProfile.name により区別される。したがって、Port は RTC 内において、
+ * ユニークな PortProfile.name を持たなければならない。
+ * 登録された Port は内部で適切にアクティブ化された後、その参照と
+ * オブジェクト参照がリスト内に保存される。}
+ * {@.en This operation registers a Port held by this RTC.
* In order to enable access to the Port from outside of RTC, the Port
* must be registered by this operation. The Port that is registered by
* this operation would be identified by PortProfile.name in the inside of
* RTC. Therefore, the Port should have unique PortProfile.name in the RTC.
* The registering Port would be activated properly, and the reference
- * and the object reference would be stored in lists in RTC.
- *
- * @param port Port which is registered to the RTC
+ * and the object reference would be stored in lists in RTC.}
+ *
+ * @param port
+ * {@.ja RTC に登録する Port}
+ * {@.en Port which is registered to the RTC}
*/
public void registerPort(PortService port) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.registerPort(PortService)");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.registerPort(PortService)");
if (!addPort(port)){
- rtcout.println(rtcout.ERROR, "addPort(PortBase&) failed.");
+ rtcout.println(Logbuf.ERROR, "addPort(PortBase&) failed.");
}
}
/**
- * <p> [local interface] Register Port </p>
+ * {@.ja [local interface] Port を登録する。}
+ * {@.en [local interface] Register Port}
*
- * This operation registers a Port held by this RTC.
+ * <p>
+ * {@.ja RTC が保持するPortを登録する。
+ * Port を外部からアクセス可能にするためには、このオペレーションにより
+ * 登録されていなければならない。登録される Port はこの RTC 内部において
+ * PortProfile.name により区別される。したがって、Port は RTC 内において、
+ * ユニークな PortProfile.name を持たなければならない。
+ * 登録された Port は内部で適切にアクティブ化された後、その参照と
+ * オブジェクト参照がリスト内に保存される。}
+ * {@.en This operation registers a Port held by this RTC.
* In order to enable access to the Port from outside of RTC, the Port
* must be registered by this operation. The Port that is registered by
* this operation would be identified by PortProfile.name in the inside of
* RTC. Therefore, the Port should have unique PortProfile.name in the RTC.
* The registering Port would be activated properly, and the reference
- * and the object reference would be stored in lists in RTC.
- *
- * @param port Port which is registered to the RTC
- * @return Register result (Successful:true, Failed:false)
- *
+ * and the object reference would be stored in lists in RTC.}
+ *
+ * @param port
+ * {@.ja RTC に登録する Port}
+ * {@.en Port which is registered to the RTC}
+ * @return
+ * {@.ja 登録結果(登録成功:true,登録失敗:false)}
+ * {@.en Register result (Successful:true, Failed:false)}
*/
public boolean addPort(PortService port) {
- rtcout.println(rtcout.TRACE, "addPort(PortService_ptr)");
+ rtcout.println(Logbuf.TRACE, "addPort(PortService_ptr)");
return m_portAdmin.addPort(port);
}
@@ -1683,28 +2754,65 @@
* @param port Port which is registered to the RTC
*
*/
+ /**
+ * {@.ja [local interface] Port を登録する。}
+ * {@.en [local interface] Register Port}
+ *
+ * <p>
+ * {@.ja RTC が保持するPortを登録する。
+ * Port を外部からアクセス可能にするためには、このオペレーションにより
+ * 登録されていなければならない。登録される Port はこの RTC 内部において
+ * PortProfile.name により区別される。したがって、Port は RTC 内において、
+ * ユニークな PortProfile.name を持たなければならない。
+ * 登録された Port は内部で適切にアクティブ化された後、その参照と
+ * オブジェクト参照がリスト内に保存される。}
+ * {@.en This operation registers a Port held by this RTC.
+ * In order to enable access to the Port from outside of RTC, the Port
+ * must be registered by this operation. The Port that is registered by
+ * this operation would be identified by PortProfile.name in the inside of
+ * RTC. Therefore, the Port should have unique PortProfile.name in the RTC.
+ * The registering Port would be activated properly, and the reference
+ * and the object reference would be stored in lists in RTC.}
+ *
+ * @param port
+ * {@.ja RTC に登録する Port}
+ * {@.en Port which is registered to the RTC}
+ */
public void registerPort(CorbaPort port) {
- rtcout.println(rtcout.TRACE, "registerPort(CorbaPort)");
+ rtcout.println(Logbuf.TRACE, "registerPort(CorbaPort)");
if (!addPort(port)) {
- rtcout.println(rtcout.ERROR, "addPort(CorbaPort&) failed.");
+ rtcout.println(Logbuf.ERROR, "addPort(CorbaPort&) failed.");
}
}
/**
- * <p> [local interface] Register Port </p>
+ * {@.ja [local interface] Port を登録する。}
+ * {@.en [local interface] Register Port}
*
- * This operation registers a Port held by this RTC.
+ * <p>
+ * {@.ja RTC が保持するPortを登録する。
+ * Port を外部からアクセス可能にするためには、このオペレーションにより
+ * 登録されていなければならない。登録される Port はこの RTC 内部において
+ * PortProfile.name により区別される。したがって、Port は RTC 内において、
+ * ユニークな PortProfile.name を持たなければならない。
+ * 登録された Port は内部で適切にアクティブ化された後、その参照と
+ * オブジェクト参照がリスト内に保存される。}
+ * {@.en This operation registers a Port held by this RTC.
* In order to enable access to the Port from outside of RTC, the Port
* must be registered by this operation. The Port that is registered by
* this operation would be identified by PortProfile.name in the inside of
* RTC. Therefore, the Port should have unique PortProfile.name in the RTC.
* The registering Port would be activated properly, and the reference
- * and the object reference would be stored in lists in RTC.
- *
- * @param port Port which is registered to the RTC
- * @return Register result (Successful:true, Failed:false)
+ * and the object reference would be stored in lists in RTC.}
+ *
+ * @param port
+ * {@.ja RTC に登録する Port}
+ * {@.en Port which is registered to the RTC}
+ * @return
+ * {@.ja 登録結果(登録成功:true,登録失敗:false)}
+ * {@.en Register result (Successful:true, Failed:false)}
*/
public boolean addPort(CorbaPort port) {
- rtcout.println(rtcout.TRACE, "addPort(CrobaPort)");
+ rtcout.println(Logbuf.TRACE, "addPort(CrobaPort)");
String propkey = "port.corbaport.";
m_properties.getNode(propkey).merge(m_properties.getNode("port.corba"));
@@ -1712,20 +2820,29 @@
return addPort((PortBase)port);
}
/**
- * <p>[local interface] DataInPort を登録します。<br />
+ * {@.ja [local interface] DataInPort を登録する.}
+ * {@.en [local interface] Register DataInPort.}
*
- * RTC が保持するDataInPortを登録します。</p>
+ * <p>
+ * {@.ja RTC が保持するDataInPortを登録する。}
+ * {@.en This operation registers DataInPort held by this RTC.}
*
- * @param DATA_TYPE_CLASS DataInPortがやりとりするデータ型
- * @param name DataInPortの名称
- * @param inport InPortへの参照
+ * @param DATA_TYPE_CLASS
+ * {@.ja DataInPortがやりとりするデータ型}
+ * {@.en Data type}
+ * @param name
+ * {@.ja InPortの名称}
+ * {@.en InPort name}
+ * @param inport
+ * {@.ja InPortへの参照}
+ * {@.en InPort which is registered to the RTC}
*/
public
<DataType, Buffer> void registerInPort(Class<DataType> DATA_TYPE_CLASS,
final String name, InPort<DataType> inport)
throws Exception {
- rtcout.println(rtcout.TRACE, "RTObject_impl.registerInPort("+name+")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.registerInPort("+name+")");
this.registerInPort(name, inport);
// String propkey = "port.dataport." + name + ".tcp_any";
@@ -1756,7 +2873,7 @@
* {@.en Register result (Successful:true, Failed:false)}
*/
public boolean addInPort(final String name, InPortBase inport) {
- rtcout.println(rtcout.TRACE, "addInPort("+name+")");
+ rtcout.println(Logbuf.TRACE, "addInPort("+name+")");
String propkey = "port.inport.";
propkey += name;
@@ -1765,7 +2882,7 @@
boolean ret = addPort(inport);
if (!ret) {
- rtcout.println(rtcout.ERROR, "addInPort() failed.");
+ rtcout.println(Logbuf.ERROR, "addInPort() failed.");
return ret;
}
@@ -1797,10 +2914,10 @@
public void registerInPort(final String name,
InPortBase inport) throws Exception {
- rtcout.println(rtcout.TRACE, "RTObject_impl.registerInPort("+name+")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.registerInPort("+name+")");
if (!addInPort(name, inport)){
- rtcout.println(rtcout.ERROR, "addInPort("+name+") failed.");
+ rtcout.println(Logbuf.ERROR, "addInPort("+name+") failed.");
}
}
@@ -1828,7 +2945,7 @@
* {@.en Register result (Successful:true, Failed:false)}
*/
public boolean addOutPort(final String name, OutPortBase outport) {
- rtcout.println(rtcout.TRACE, "addOutPort("+name+")");
+ rtcout.println(Logbuf.TRACE, "addOutPort("+name+")");
String propkey = "port.outport.";
propkey += name;
@@ -1837,7 +2954,7 @@
boolean ret = addPort(outport);
if (!ret) {
- rtcout.println(rtcout.ERROR, "addOutPort() failed.");
+ rtcout.println(Logbuf.ERROR, "addOutPort() failed.");
return ret;
}
@@ -1849,18 +2966,26 @@
}
/**
- * <p>[local interface] DataOutPort を登録します。<br />
+ * {@.ja [local interface] DataOutPort を登録する.}
+ * {@.en [local interface] Register DataOutPort.}
*
- * RTC が保持するDataOutPortを登録します。</p>
+ * {@.ja RTC が保持する DataOutPortを登録する。}
+ * {@.en This operation registers DataOutPor held by this RTC.}
*
- * @param DATA_TYPE_CLASS DataOutPortがやりとりするデータ型
- * @param name DataOutPortの名称
- * @param outport OutPortへの参照
+ * @param DATA_TYPE_CLASS
+ * {@.ja DataOutPortがやりとりするデータ型}
+ * {@.en Data type}
+ * @param name
+ * {@.ja DataOutPortの名称}
+ * {@.en DataOutPort name}
+ * @param outport
+ * {@.ja OutPortへの参照}
+ * {@.en OutPort which is registered to the RTC}
*/
public <DataType, Buffer> void registerOutPort(Class<DataType> DATA_TYPE_CLASS,
final String name, OutPort<DataType> outport) throws Exception {
- rtcout.println(rtcout.TRACE, "RTObject_impl.registerOutPort()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.registerOutPort()");
this.registerOutPort(name, outport);
// String propkey = "port.dataport." + name;
@@ -1890,11 +3015,11 @@
public void registerOutPort(final String name,
OutPortBase outport) throws Exception {
- rtcout.println(rtcout.TRACE, "RTObject_impl.registerOutPort("+name+")");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.registerOutPort("+name+")");
if (!addOutPort(name, outport)){
- rtcout.println(rtcout.ERROR, "addOutPort("+name+") failed.");
+ rtcout.println(Logbuf.ERROR, "addOutPort("+name+") failed.");
}
}
@@ -1914,7 +3039,7 @@
* {@.en Unregister result (Successful:true, Failed:false)}
*/
public boolean removeInPort(InPortBase port) {
- rtcout.println(rtcout.TRACE, "removeInPort()");
+ rtcout.println(Logbuf.TRACE, "removeInPort()");
boolean ret = removePort(port);
synchronized (m_inports){
@@ -1948,7 +3073,7 @@
* {@.en Unregister result (Successful:true, Failed:false)}
*/
public boolean removeOutPort(OutPortBase port){
- rtcout.println(rtcout.TRACE, "removeOutPort()");
+ rtcout.println(Logbuf.TRACE, "removeOutPort()");
boolean ret = removePort(port);
synchronized (m_outports){
@@ -1982,7 +3107,8 @@
* {@.en Unregister result (Successful:true, Failed:false)}
*/
public boolean removePort(PortBase port){
- rtcout.println(rtcout.TRACE, "removePort(PortBase)");
+ rtcout.println(Logbuf.TRACE, "removePort(PortBase)");
+ onRemovePort(port.getPortProfile());
return m_portAdmin.removePort(port);
}
@@ -2001,7 +3127,7 @@
* {@.en Unregister result (Successful:true, Failed:false)}
*/
public boolean removePort(PortService port){
- rtcout.println(rtcout.TRACE, "removePort(PortService)");
+ rtcout.println(Logbuf.TRACE, "removePort(PortService)");
return m_portAdmin.removePort(port);
}
@@ -2020,7 +3146,8 @@
* {@.en Unregister result (Successful:true, Failed:false)}
*/
public boolean removePort(CorbaPort port) {
- rtcout.println(rtcout.TRACE, "removePort(CorbaPortort)");
+ rtcout.println(Logbuf.TRACE, "removePort(CorbaPortort)");
+ onRemovePort(port.getPortProfile());
return m_portAdmin.removePort((PortBase)port);
}
@@ -2037,10 +3164,10 @@
*/
public void deletePort(PortBase port) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.deletePort(PortBase)");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.deletePort(PortBase)");
if (!removePort(port)){
- rtcout.println(rtcout.ERROR, "removePort(PortBase&) failed.");
+ rtcout.println(Logbuf.ERROR, "removePort(PortBase&) failed.");
}
return;
}
@@ -2058,10 +3185,10 @@
*/
public void deletePort(PortService port) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.deletePort(PortService)");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.deletePort(PortService)");
if (!removePort(port)){
- rtcout.println(rtcout.ERROR, "removePort(PortService_pt) failed.");
+ rtcout.println(Logbuf.ERROR, "removePort(PortService_pt) failed.");
}
return;
}
@@ -2079,22 +3206,29 @@
*/
public void deletePort(CorbaPort port) {
- rtcout.println(rtcout.TRACE, "RTObject_impl.deletePort(CorbaPort)");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.deletePort(CorbaPort)");
if (!removePort(port)){
- rtcout.println(rtcout.ERROR, "removePort(CorbaPort) failed.");
+ rtcout.println(Logbuf.ERROR, "removePort(CorbaPort) failed.");
}
return;
}
/**
- * <p>[local interface] 名称によって指定された Port の登録を削除します。</p>
+ * {@.ja [local interface] 名前指定により Port の登録を削除する。}
+ * {@.en [local interface] Delete Port by specifying its name}
+ *
+ * <p>
+ * {@.ja 名称を指定して RTC が保持するPortの登録を削除する。}
+ * {@.en Delete Port which RTC has by specifying its name.}
*
- * @param port_name 削除対象のポート名
+ * @param port_name
+ * {@.ja 削除対象 Port 名}
+ * {@.en Name of Port which is deleted}
*/
public void deletePortByName(final String port_name) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"RTObject_impl.deletePortByNamed(" + port_name + ")");
m_portAdmin.deletePortByName(port_name);
@@ -2115,14 +3249,14 @@
*
*/
public boolean readAll() {
- rtcout.println(rtcout.TRACE, "readAll()");
+ rtcout.println(Logbuf.TRACE, "readAll()");
synchronized (m_inports){
java.util.Iterator it = m_inports.iterator();
boolean ret = true;
while( it.hasNext() ) {
if (!((InPortBase)it.next()).read()) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"The error occurred in readAll().");
ret = false;
if (!m_readAllCompletion) {
@@ -2148,13 +3282,13 @@
*
*/
public boolean writeAll() {
- rtcout.println(rtcout.TRACE, "writeAll()");
+ rtcout.println(Logbuf.TRACE, "writeAll()");
synchronized (m_outports){
java.util.Iterator it = m_outports.iterator();
boolean ret = true;
while( it.hasNext() ){
if (!((OutPortBase)it.next()).write()) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"The error occurred in writeAll().");
ret = false;
if (!m_writeAllCompletion) {
@@ -2192,9 +3326,34 @@
m_readAll = read;
m_readAllCompletion = completion;
}
+ /**
+ * {@.ja onExecute()実行前でのreadAll()メソッドの呼出を有効または
+ * 無効にする。}
+ * {@.en Set whether to execute the readAll() method.}
+ * <p>
+ * {@.ja readAll()メソッド呼出あり、
+ * readAll()にて、どれかの一つのInPortのread()が失敗した場合、
+ * すぐにfalseで抜ける}
+ * {@.en readAll() is called, If one InPort::read() is False,
+ * return false.}
+ */
public void setReadAll(){
this.setReadAll(true, false);
}
+ /**
+ * {@.ja onExecute()実行前でのreadAll()メソッドの呼出を有効または
+ * 無効にする。}
+ * {@.en Set whether to execute the readAll() method.}
+ * <p>
+ * {@.ja readAll()にて、どれかの一つのInPortのread()が失敗した場合、
+ * すぐにfalseで抜ける}
+ * {@.en If one InPort::read() is False, return false.}
+ * </p>
+ * @param read (default:true)
+ * {@.ja (readAll()メソッド呼出あり:true,
+ * readAll()メソッド呼出なし:false)}
+ * {@.en (readAll() is called:true, readAll() isn't called:false)}
+ */
public void setReadAll(boolean read){
this.setReadAll(read, false);
}
@@ -2202,7 +3361,7 @@
/**
* {@.ja onExecute()実行後にwriteAll()メソッドの呼出を有効または
* 無効にする。}
- * {@.en @brief Set whether to execute the writeAll() method.}
+ * {@.en Set whether to execute the writeAll() method.}
* <p>
* {@.ja このメソッドをパラメータをtrueとして呼ぶ事により、
* onExecute()実行後にwriteAll()が呼出されるようになる。
@@ -2225,9 +3384,34 @@
m_writeAll = write;
m_writeAllCompletion = completion;
}
+ /**
+ * {@.ja onExecute()実行後にwriteAll()メソッドの呼出を有効または
+ * 無効にする。}
+ * {@.en Set whether to execute the writeAll() method.}
+ * <p>
+ * {@.ja writeAll()メソッド呼出あり、
+ * writeAll()にて、どれかの一つのOutPortのwrite()が失敗した場合、
+ * すぐにfalseで抜ける}
+ * {@.en writeAll() is called,
+ * If one OutPort::write() is False, return false.}
+ */
public void setWriteAll(){
this.setWriteAll(true, false);
}
+ /**
+ * {@.ja onExecute()実行後にwriteAll()メソッドの呼出を有効または
+ * 無効にする。}
+ * {@.en Set whether to execute the writeAll() method.}
+ * <p>
+ * {@.ja writeAll()にて、どれかの一つのOutPortのwrite()が失敗した場合、
+ * すぐにfalseで抜ける}
+ * {@.en If one OutPort::write() is False, return false.}
+ *
+ * @param write (default:true)
+ * {@.ja (writeAll()メソッド呼出あり:true,
+ * writeAll()メソッド呼出なし:false)}
+ * {@.en (writeAll() is called:true, writeAll() isn't called:false)}
+ */
public void setWriteAll(boolean write){
this.setWriteAll(write, false);
}
@@ -2243,7 +3427,7 @@
*/
public void finalizePorts() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.finalizePorts()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.finalizePorts()");
m_portAdmin.finalizePorts();
synchronized (m_inports){
@@ -2255,11 +3439,12 @@
}
/**
- * <p>登録されているすべてのContextの登録を削除します。</p>
+ * {@.ja ExecutionContextBaseリストの登録を削除する}
+ * {@.en The ExecutionContextBase list is deleted.}
*/
public void finalizeContexts() {
- rtcout.println(rtcout.TRACE, "RTObject_impl.finalizeContexts()");
+ rtcout.println(Logbuf.TRACE, "RTObject_impl.finalizeContexts()");
for(int i=0, len=m_eclist.size(); i < len; ++i) {
try {
@@ -2274,10 +3459,891 @@
m_eclist.clear();
}
}
+ /**
+ * {@.ja PreComponentActionListener リスナを追加する}
+ * {@.en Adding PreComponentAction type listener}
+ * <p>
+ * {@.ja ComponentAction 実装関数の呼び出し直前のイベントに関連する各種リ
+ * スナを設定する。
+ *
+ * 設定できるリスナのタイプとコールバックイベントは以下の通り
+ * <ul>
+ * <li> PRE_ON_INITIALIZE: onInitialize 直前
+ * <li> PRE_ON_FINALIZE: onFinalize 直前
+ * <li> PRE_ON_STARTUP: onStartup 直前
+ * <li> PRE_ON_SHUTDOWN: onShutdown 直前
+ * <li> PRE_ON_ACTIVATED: onActivated 直前
+ * <li> PRE_ON_DEACTIVATED: onDeactivated 直前
+ * <li> PRE_ON_ABORTED: onAborted 直前
+ * <li> PRE_ON_ERROR: onError 直前
+ * <li> PRE_ON_RESET: onReset 直前
+ * <li> PRE_ON_EXECUTE: onExecute 直前
+ * <li> PRE_ON_STATE_UPDATE: onStateUpdate 直前
+ * </ul>
+ *
+ * リスナは PreComponentActionListener を継承し、以下のシグニチャを持つ
+ * operator() を実装している必要がある。
+ *
+ * PreComponentActionListener::operator()(int ec_id)
+ *
+ * デフォルトでは、この関数に与えたリスナオブジェクトの所有権は
+ * RTObjectに移り、RTObject解体時もしくは、
+ * removePreComponentActionListener() により削除時に自動的に解体される。
+ * リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引
+ * 数に false を指定し、自動的な解体を抑制することができる。}
+ * {@.en This operation adds certain listeners related to ComponentActions
+ * pre events.
+ * The following listener types are available.
+ * <ul>
+ * <li> PRE_ON_INITIALIZE: before onInitialize
+ * <li> PRE_ON_FINALIZE: before onFinalize
+ * <li> PRE_ON_STARTUP: before onStartup
+ * <li> PRE_ON_SHUTDOWN: before onShutdown
+ * <li> PRE_ON_ACTIVATED: before onActivated
+ * <li> PRE_ON_DEACTIVATED: before onDeactivated
+ * <li> PRE_ON_ABORTED: before onAborted
+ * <li> PRE_ON_ERROR: before onError
+ * <li> PRE_ON_RESET: before onReset
+ * <li> PRE_ON_EXECUTE: before onExecute
+ * <li> PRE_ON_STATE_UPDATE: before onStateUpdate
+ * </ul>
+ *
+ * Listeners should have the following function operator().
+ *
+ * PreComponentActionListener::operator()(int ec_id)
+ *
+ * The ownership of the given listener object is transferred to
+ * this RTObject object in default. The given listener object will
+ * be destroied automatically in the RTObject's dtor or if the
+ * listener is deleted by removePreComponentActionListener() function.
+ * If you want to keep ownership of the listener object, give
+ * "false" value to 3rd argument to inhibit automatic destruction.}
+ *
+ * @param listener_type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ * @param autoclean
+ * {@.ja リスナオブジェクトの自動的解体を行うかどうかのフラグ}
+ * {@.en A flag for automatic listener destruction}
+ */
+ /*
+ typedef PreComponentActionListener PreCompActionListener;
+ typedef PreComponentActionListenerType PreCompActionListenerType;
+ */
+ public void
+ addPreComponentActionListener(int listener_type,
+ PreComponentActionListener listener,
+ boolean autoclean) {
+ if (listener_type < PreComponentActionListenerType.PRE_COMPONENT_ACTION_LISTENER_NUM ) {
+ rtcout.println(Logbuf.TRACE,
+ "addPreComponentActionListener("
+ +PreComponentActionListenerType.toString(listener_type)
+ +")");
+ m_actionListeners.
+ preaction_[listener_type].addObserver(listener);
+ return;
+ }
+ rtcout.println(Logbuf.ERROR,
+ "addPreComponentActionListener(): Invalid listener type.");
+ return;
+ }
+ public void
+ addPreComponentActionListener(int listener_type,
+ PreComponentActionListener listener) {
+ this.addPreComponentActionListener(listener_type,listener,true);
+ }
+
+ /*
+ template <class Listener>
+ PreComponentActionListener*
+ addPortComponentActionListener(int listener_type,
+ Listener& obj,
+ void (Listener::*memfunc)(int ec_id))
+ {
+ class Noname
+ : public PreComponentActionListener
+ {
+ public:
+ Noname(Listener& obj, void (Listener::*memfunc)(int))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ void operator()(int ec_id)
+ {
+ (m_obj.*m_memfunc)(ec_id);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(int ec_id);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addPreComponentActionListener(listener_type, listener, true);
+ return listener;
+ }
+ */
+
/**
- * <p>当該コンポーネントを終了します。</p>
+ * {@.ja PreComponentActionListener リスナを削除する}
+ * {@.en Removing PreComponentAction type listener}
+ * <p>
+ * {@.ja 設定した各種リスナを削除する。}
+ * {@.en This operation removes a specified listener.}
+ * @param listener_type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
*/
+ public void
+ removePreComponentActionListener( int listener_type,
+ PreComponentActionListener listener){
+
+ if (listener_type < PreComponentActionListenerType.PRE_COMPONENT_ACTION_LISTENER_NUM ) {
+ rtcout.println(Logbuf.TRACE,
+ "removePreComponentActionListener("
+ +PreComponentActionListenerType.toString(listener_type)
+ +")");
+ m_actionListeners.
+ preaction_[listener_type].deleteObserver(listener);
+ return;
+ }
+ rtcout.println(Logbuf.ERROR,
+ "removePreComponentActionListener(): Invalid listener type.");
+ return;
+ }
+
+ /**
+ * {@.ja PostComponentActionListener リスナを追加する}
+ * {@.en Adding PostComponentAction type listener}
+ * <p>
+ * {@.ja ComponentAction 実装関数の呼び出し直後のイベントに関連する各種リ
+ * スナを設定する。
+ *
+ * 設定できるリスナのタイプとコールバックイベントは以下の通り
+ * <ul>
+ * <li> POST_ON_INITIALIZE: onInitialize 直後
+ * <li> POST_ON_FINALIZE: onFinalize 直後
+ * <li> POST_ON_STARTUP: onStartup 直後
+ * <li> POST_ON_SHUTDOWN: onShutdown 直後
+ * <li> POST_ON_ACTIVATED: onActivated 直後
+ * <li> POST_ON_DEACTIVATED: onDeactivated 直後
+ * <li> POST_ON_ABORTED: onAborted 直後
+ * <li> POST_ON_ERROR: onError 直後
+ * <li> POST_ON_RESET: onReset 直後
+ * <li> POST_ON_EXECUTE: onExecute 直後
+ * <li> POST_ON_STATE_UPDATE: onStateUpdate 直後
+ * </ul>
+ *
+ * リスナは PostComponentActionListener を継承し、以下のシグニチャを持つ
+ * operator() を実装している必要がある。
+ *
+ * PostComponentActionListener::operator()(int ec_id, ReturnCode_t ret)
+ *
+ * デフォルトでは、この関数に与えたリスナオブジェクトの所有権は
+ * RTObjectに移り、RTObject解体時もしくは、
+ * removePostComponentActionListener() により削除時に自動的に解体される。
+ * リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引
+ * 数に false を指定し、自動的な解体を抑制することができる。}
+ * {This operation adds certain listeners related to ComponentActions
+ * post events.
+ * The following listener types are available.
+ * <ul>
+ * <li> POST_ON_INITIALIZE: after onInitialize
+ * <li> POST_ON_FINALIZE: after onFinalize
+ * <li> POST_ON_STARTUP: after onStartup
+ * <li> POST_ON_SHUTDOWN: after onShutdown
+ * <li> POST_ON_ACTIVATED: after onActivated
+ * <li> POST_ON_DEACTIVATED: after onDeactivated
+ * <li> POST_ON_ABORTED: after onAborted
+ * <li> POST_ON_ERROR: after onError
+ * <li> POST_ON_RESET: after onReset
+ * <li> POST_ON_EXECUTE: after onExecute
+ * <li> POST_ON_STATE_UPDATE: after onStateUpdate
+ * </ul>
+ *
+ * Listeners should have the following function operator().
+ *
+ * PostComponentActionListener::operator()(int ec_id, ReturnCode_t ret)
+ *
+ * The ownership of the given listener object is transferred to
+ * this RTObject object in default. The given listener object will
+ * be destroied automatically in the RTObject's dtor or if the
+ * listener is deleted by removePostComponentActionListener() function.
+ * If you want to keep ownership of the listener object, give
+ * "false" value to 3rd argument to inhibit automatic destruction.}
+ *
+ * @param listener_type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ * @param autoclean
+ * {@.ja リスナオブジェクトの自動的解体を行うかどうかのフラグ}
+ * {@.en A flag for automatic listener destruction}
+ */
+ /*
+ typedef PostComponentActionListener PostCompActionListener;
+ typedef PostComponentActionListenerType PostCompActionListenerTypec;
+ */
+ public void
+ addPostComponentActionListener( int listener_type,
+ PostComponentActionListener listener,
+ boolean autoclean){
+ if (listener_type < PostComponentActionListenerType.POST_COMPONENT_ACTION_LISTENER_NUM) {
+ rtcout.println(Logbuf.TRACE,
+ "addPostComponentActionListener("
+ +PostComponentActionListenerType.toString(listener_type)
+ +")");
+ m_actionListeners.postaction_[listener_type].addObserver(listener);
+ return;
+ }
+ rtcout.println(Logbuf.ERROR,
+ "addPostComponentActionListener(): Invalid listener type.");
+ return;
+ }
+ public void
+ addPostComponentActionListener( int listener_type,
+ PostComponentActionListener listener){
+ this.addPostComponentActionListener(listener_type,listener,true);
+ }
+ /*
+ template <class Listener>
+ PostComponentActionListener*
+ addPostComponentActionListener(int listener_type,
+ Listener& obj,
+ void (Listener::*memfunc)(int ec_id,
+ ReturnCode_t ret))
+ {
+ class Noname
+ : public PostComponentActionListener
+ {
+ public:
+ Noname(Listener& obj, void (Listener::*memfunc)(int, ReturnCode_t))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ void operator()(int ec_id, ReturnCode_t ret)
+ {
+ (m_obj.*m_memfunc)(ec_id, ret);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(int ec_id, ReturnCode_t ret);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addPostComponentActionListener(listener_type, listener, true);
+ return listener;
+ }
+ */
+
+ /**
+ * {@.ja PostComponentActionListener リスナを削除する}
+ * {@.en Removing PostComponentAction type listener}
+ * <p>
+ * {@.ja 設定した各種リスナを削除する。}
+ * {@.en This operation removes a specified listener.}
+ *
+ * @param listener_type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ */
+ public void
+ removePostComponentActionListener( int listener_type,
+ PostComponentActionListener listener){
+ if (listener_type < PostComponentActionListenerType.POST_COMPONENT_ACTION_LISTENER_NUM) {
+ rtcout.println(Logbuf.TRACE,
+ "removePostComponentActionListener("
+ +PostComponentActionListenerType.toString(listener_type)
+ +")");
+ m_actionListeners.postaction_[listener_type].deleteObserver(listener);
+ return;
+ }
+ rtcout.println(Logbuf.ERROR,
+ "removePostComponentActionListener(): Invalid listener type.");
+ return;
+ }
+
+
+
+ /**
+ * {@.ja PortActionListener リスナを追加する}
+ * {@.en Adding PortAction type listener}
+ * <p>
+ * {@.ja Portの追加、削除時にコールバックされる各種リスナを設定する。
+ *
+ * 設定できるリスナのタイプとコールバックイベントは以下の通り
+ * <ul>
+ * <li> ADD_PORT: Port追加時
+ * <li> REMOVE_PORT: Port削除時
+ *
+ * リスナは PortActionListener を継承し、以下のシグニチャを持つ
+ * operator() を実装している必要がある。
+ *
+ * PortActionListener::operator()(PortProfile& pprof)
+ *
+ * デフォルトでは、この関数に与えたリスナオブジェクトの所有権は
+ * RTObjectに移り、RTObject解体時もしくは、
+ * removePortActionListener() により削除時に自動的に解体される。
+ * リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引
+ * 数に false を指定し、自動的な解体を抑制することができる。}
+ * {@.en This operation adds certain listeners related to ComponentActions
+ * post events.
+ * The following listener types are available.
+ * <ul>
+ * <li> ADD_PORT: At adding Port
+ * <li> REMOVE_PORT: At removing Port
+ * </ul>
+ * Listeners should have the following function operator().
+ *
+ * PortActionListener::operator()(RTC::PortProfile pprof)
+ *
+ * The ownership of the given listener object is transferred to
+ * this RTObject object in default. The given listener object will
+ * be destroied automatically in the RTObject's dtor or if the
+ * listener is deleted by removePortActionListener() function.
+ * If you want to keep ownership of the listener object, give
+ * "false" value to 3rd argument to inhibit automatic destruction.}
+ *
+ * @param listener_type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ * @param autoclean
+ * {@.ja リスナオブジェクトの自動的解体を行うかどうかのフラグ}
+ * {@.en A flag for automatic listener destruction}
+ *
+ */
+ public void
+ addPortActionListener(int listener_type,
+ PortActionListener listener,
+ boolean autoclean){
+ if (listener_type < PortActionListenerType.PORT_ACTION_LISTENER_NUM) {
+ rtcout.println(Logbuf.TRACE,
+ "addPortActionListener("
+ +PortActionListenerType.toString(listener_type)
+ +")");
+ m_actionListeners.portaction_[listener_type].addObserver(listener);
+ return;
+ }
+ rtcout.println(Logbuf.ERROR,
+ "addPortActionListener(): Invalid listener type.");
+ return;
+ }
+ public void
+ addPortActionListener(int listener_type,
+ PortActionListener listener){
+ this.addPortActionListener(listener_type,listener,true);
+ }
+
+ /*
+ template <class Listener>
+ PortActionListener*
+ addPortActionListener(int listener_type,
+ Listener& obj,
+ void (Listener::*memfunc)(const RTC::PortProfile&))
+ {
+ class Noname
+ : public PortActionListener
+ {
+ public:
+ Noname(Listener& obj, void (Listener::*memfunc)(int))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ void operator()(const RTC::PortProfile& pprofile)
+ {
+ (m_obj.*m_memfunc)(pprofile);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(const RTC::PortProfile&);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addPortActionListener(listener_type, listener, true);
+ return listener;
+ }
+ }
+ */
+
+
+ /**
+ * {@.ja PortActionListener リスナを削除する}
+ * {@.en Removing PortAction type listener}
+ * <p>
+ * {@.ja 設定した各種リスナを削除する。}
+ * {@.en This operation removes a specified listener.}
+ *
+ * @param listener_type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ */
+ public void
+ removePortActionListener(int listener_type,
+ PortActionListener listener)
+ {
+ if (listener_type < PortActionListenerType.PORT_ACTION_LISTENER_NUM) {
+ rtcout.println(Logbuf.TRACE,
+ "removePortActionListener("
+ +PortActionListenerType.toString(listener_type)
+ +")");
+ m_actionListeners.portaction_[listener_type].deleteObserver(listener);
+ return;
+ }
+ rtcout.println(Logbuf.ERROR,
+ "removePortActionListener(): Invalid listener type.");
+ return;
+ }
+
+
+
+ /**
+ * {@.ja ExecutionContextActionListener リスナを追加する}
+ * {@.en Adding ExecutionContextAction type listener}
+ * <p>
+ * {@.ja ExecutionContextの追加、削除時にコールバックされる各種リスナを設定する。
+ *
+ * 設定できるリスナのタイプとコールバックイベントは以下の通り
+ * <ul>
+ * <li> ATTACH_EC: ExecutionContext アタッチ時
+ * <li> DETACH_EC: ExecutionContext デタッチ時
+ * </ul>
+ * リスナは ExecutionContextActionListener を継承し、以下のシグニチャを持つ
+ * operator() を実装している必要がある。
+ *
+ * ExecutionContextActionListener::operator()(int ec_id)
+ *
+ * デフォルトでは、この関数に与えたリスナオブジェクトの所有権は
+ * RTObjectに移り、RTObject解体時もしくは、
+ * removeExecutionContextActionListener() により削除時に自動的に解体される。
+ * リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引
+ * 数に false を指定し、自動的な解体を抑制することができる。}
+ * {@.en This operation adds certain listeners related to ComponentActions
+ * post events.
+ * The following listener types are available.
+ * <ul>
+ * <li> ADD_PORT: At adding ExecutionContext
+ * <li> REMOVE_PORT: At removing ExecutionContext
+ * </ul>
+ * Listeners should have the following function operator().
+ *
+ * ExecutionContextActionListener::operator()(int ec_id)
+ *
+ * The ownership of the given listener object is transferred to
+ * this RTObject object in default. The given listener object will
+ * be destroied automatically in the RTObject's dtor or if the
+ * listener is deleted by removeExecutionContextActionListener() function.
+ * If you want to keep ownership of the listener object, give
+ * "false" value to 3rd argument to inhibit automatic destruction.}
+ *
+ * @param listener_type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ * @param autoclean
+ * {@.ja リスナオブジェクトの自動的解体を行うかどうかのフラグ}
+ * {@.en A flag for automatic listener destruction}
+ *
+ *
+ */
+ /*
+ typedef ExecutionContextActionListenerType ECActionListenerType;
+ typedef ExecutionContextActionListener ECActionListener;
+ */
+ public void
+ addExecutionContextActionListener( int listener_type,
+ ExecutionContextActionListener listener,
+ boolean autoclean)
+ {
+ if (listener_type < ExecutionContextActionListenerType.EC_ACTION_LISTENER_NUM) {
+ rtcout.println(Logbuf.TRACE,
+ "addExecutionContextActionListener("
+ +ExecutionContextActionListenerType.toString(listener_type)
+ +")");
+ m_actionListeners.ecaction_[listener_type].addObserver(listener);
+ return;
+ }
+ rtcout.println(Logbuf.ERROR,
+ "addExecutionContextActionListener(): Invalid listener type.");
+ return;
+ }
+ public void
+ addExecutionContextActionListener( int listener_type,
+ ExecutionContextActionListener listener)
+ {
+ this.addExecutionContextActionListener(listener_type,listener, true);
+ }
+ /*
+ template <class Listener>
+ ExecutionContextActionListener*
+ addExecutionContextActionListener( int listener_type,
+ Listener& obj,
+ void (Listener::*memfunc)(int))
+ {
+ class Noname
+ : public ExecutionContextActionListener
+ {
+ public:
+ Noname(Listener& obj, void (Listener::*memfunc)(int))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ void operator()(int ec_id)
+ {
+ (m_obj.*m_memfunc)(ec_id);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(int);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addExecutionContextActionListener(listener_type, listener, true);
+ return listener;
+ }
+ */
+
+
+ /**
+ * {@.ja ExecutionContextActionListener リスナを削除する}
+ * {@.en @brief Removing ExecutionContextAction type listener}
+ * <p>
+ * {@.ja 設定した各種リスナを削除する。}
+ * {@.en This operation removes a specified listener.}
+ *
+ * @param listener_type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ *
+ */
+ public void
+ removeExecutionContextActionListener( int listener_type,
+ ExecutionContextActionListener listener)
+ {
+ if (listener_type < ExecutionContextActionListenerType.EC_ACTION_LISTENER_NUM) {
+ rtcout.println(Logbuf.TRACE,
+ "removeExecutionContextActionListener("
+ +ExecutionContextActionListenerType.toString(listener_type)
+ +")");
+ m_actionListeners.ecaction_[listener_type].deleteObserver(listener);
+ return;
+ }
+ rtcout.println(Logbuf.ERROR,
+ "removeexecutionContextActionListener(): Invalid listener type.");
+ return;
+ }
+
+
+ /**
+ * {@.ja ConfigurationParamListener を追加する}
+ * {@.en Adding ConfigurationParamListener}
+ * <p>
+ * {@.ja update(const char* config_set, const char* config_param) が呼ばれた際に
+ * コールされるリスナ ConfigurationParamListener を追加する。
+ * type には現在のところ ON_UPDATE_CONFIG_PARAM のみが入る。}
+ * {@.en This function adds a listener object which is called when
+ * update(const char* config_set, const char* config_param) is
+ * called. In the type argument, currently only
+ * ON_UPDATE_CONFIG_PARAM is allowed.}
+ *
+ * @param type
+ * {@.ja ConfigurationParamListenerType型の値。
+ * ON_UPDATE_CONFIG_PARAM がある。}
+ * {@.en ConfigurationParamListenerType value
+ * ON_UPDATE_CONFIG_PARAM is only allowed.}
+ * @param listener
+ * {@.ja ConfigurationParamListener 型のリスナオブジェクト。}
+ * {@.en ConfigurationParamListener listener object.}
+ * @param autoclean
+ * {@.ja リスナオブジェクトを自動で削除するかどうかのフラグ}
+ * {@.en a flag whether if the listener object autocleaned.}
+ *
+ */
+ public void addConfigurationParamListener(int type,
+ ConfigurationParamListener listener,
+ boolean autoclean)
+ {
+ m_configsets.addConfigurationParamListener(type,listener,autoclean);
+ }
+ public void addConfigurationParamListener(int type,
+ ConfigurationParamListener listener)
+ {
+ addConfigurationParamListener(type,listener,true);
+ }
+ /*
+ template <class Listener>
+ ConfigurationParamListener*
+ addConfigurationParamListener(int listener_type,
+ Listener& obj,
+ void (Listener::*memfunc)(const char*,
+ const char*))
+ {
+ class Noname
+ : public ConfigurationParamListener
+ {
+ public:
+ Noname(Listener& obj,
+ void (Listener::*memfunc)(const char*, const char*))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ void operator()(const char* config_set_name,
+ const char* config_param_name)
+ {
+ (m_obj.*m_memfunc)(config_set_name, config_param_name);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(const char*, const char*);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addConfigurationParamListener(listener_type, listener, true);
+ return listener;
+ }
+ */
+
+ /**
+ * {@.ja ConfigurationParamListener を削除する}
+ * {@.en Removing ConfigurationParamListener}
+ * <p>
+ * {@.ja addConfigurationParamListener で追加されたリスナオブジェクトを削除する。}
+ * {@.en This function removes a listener object which is added by
+ * addConfigurationParamListener() function.}
+ *
+ * @param type
+ * {@.ja ConfigurationParamListenerType型の値。
+ * ON_UPDATE_CONFIG_PARAM がある。}
+ * {@.en ConfigurationParamListenerType value
+ * ON_UPDATE_CONFIG_PARAM is only allowed.}
+ * @param listener
+ * {@.ja 与えたリスナオブジェクトへのポインタ}
+ * {@.en a pointer to ConfigurationParamListener listener object.}
+ */
+ public void removeConfigurationParamListener(int type,
+ ConfigurationParamListener listener)
+ {
+ m_configsets.removeConfigurationParamListener(type,listener);
+ }
+ /**
+ * {@.ja ConfigurationSetListener を追加する}
+ * {@.en Adding ConfigurationSetListener }
+ * <p>
+ * {@.ja ConfigurationSet が更新されたときなどに呼ばれるリスナ
+ * ConfigurationSetListener を追加する。設定可能なイベントは以下の
+ * 2種類がある。
+ * <ul>
+ * <li> ON_SET_CONFIG_SET: setConfigurationSetValues() で
+ * ConfigurationSet に値が設定された場合。</li>
+ * <li> ON_ADD_CONFIG_SET: addConfigurationSet() で新しい
+ * ConfigurationSet が追加された場合。</li></ul>}
+ * {@.en This function add a listener object which is called when
+ * ConfigurationSet is updated. Available events are the followings.}
+ *
+ * @param type
+ * {@.ja ConfigurationSetListenerType型の値。}
+ * {@.en ConfigurationSetListenerType value}
+ * @param listener
+ * {@.ja ConfigurationSetListener 型のリスナオブジェクト。}
+ * {@.en ConfigurationSetListener listener object.}
+ * @param autoclean
+ * {@.ja リスナオブジェクトを自動で削除するかどうかのフラグ}
+ * {@.en a flag whether if the listener object autocleaned.}
+ */
+ public void addConfigurationSetListener(int type,
+ ConfigurationSetListener listener,
+ boolean autoclean)
+ {
+ m_configsets.addConfigurationSetListener(type,listener,autoclean);
+ }
+ public void addConfigurationSetListener(int type,
+ ConfigurationSetListener listener)
+ {
+ addConfigurationSetListener(type,listener,true);
+ }
+ /*
+ template <class Listener>
+ ConfigurationSetListener*
+ addConfigurationSetListener(int listener_type,
+ Listener& obj,
+ void (Listener::*memfunc)
+ (const coil::Properties& config_set))
+ {
+ class Noname
+ : public ConfigurationSetListener
+ {
+ public:
+ Noname(Listener& obj,
+ void (Listener::*memfunc)(const coil::Properties& config_set))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ virtual void operator()(const coil::Properties& config_set)
+ {
+ (m_obj.*m_memfunc)(config_set);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(const coil::Properties& config_set);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addConfigurationSetListener(listener_type, listener, true);
+ return listener;
+ }
+ */
+
+ /**
+ * {@.ja ConfigurationSetListener を削除する}
+ * {@.en Removing ConfigurationSetListener}
+ * <p>
+ * {@.ja addConfigurationSetListener で追加されたリスナオブジェクトを削除する。}
+ * {@.en This function removes a listener object which is added by
+ * addConfigurationSetListener() function.}
+ *
+ * @param type
+ * {@.ja ConfigurationSetListenerType型の値。}
+ * {@.en ConfigurationSetListenerType value}
+ * @param listener
+ * {@.ja 与えたリスナオブジェクトへのポインタ}
+ * {@.en a pointer to ConfigurationSetListener listener object.}
+ *
+ */
+ public void removeConfigurationSetListener(int type,
+ ConfigurationSetListener listener)
+ {
+ m_configsets.removeConfigurationSetListener(type,listener);
+ }
+ /**
+ * {@.ja ConfigurationSetNameListener を追加する}
+ * {@.en Adding ConfigurationSetNameListener}
+ * <p>
+ * {@.ja ConfigurationSetName が更新されたときなどに呼ばれるリスナ
+ * ConfigurationSetNameListener を追加する。設定可能なイベントは以下の
+ * 3種類がある。
+ * <ul>
+ * <li> ON_UPDATE_CONFIG_SET: ある ConfigurationSet がアップデートされた
+ * <li> ON_REMOVE_CONFIG_SET: ある ConfigurationSet が削除された
+ * <li> ON_ACTIVATE_CONFIG_SET: ある ConfigurationSet がアクティブ化された
+ * </ul>}
+ * {@.en This function add a listener object which is called when
+ * ConfigurationSetName is updated. Available events are the followings.
+ * <ul>
+ * <li> ON_UPDATE_CONFIG_SET: A ConfigurationSet has been updated.
+ * <li> ON_REMOVE_CONFIG_SET: A ConfigurationSet has been deleted.
+ * <li> ON_ACTIVATE_CONFIG_SET: A ConfigurationSet has been activated.
+ * </ul>}
+ * @param type
+ * {@.ja ConfigurationSetNameListenerType型の値。}
+ * {@.en ConfigurationSetNameListenerType value}
+ * @param listener
+ * {@.ja ConfigurationSetNameListener 型のリスナオブジェクト。}
+ * {@.en ConfigurationSetNameListener listener object.}
+ * @param autoclean
+ * {@.ja リスナオブジェクトを自動で削除するかどうかのフラグ}
+ * {@.en a flag whether if the listener object autocleaned.}
+ */
+ public void
+ addConfigurationSetNameListener(int type,
+ ConfigurationSetNameListener listener,
+ boolean autoclean)
+ {
+ m_configsets.addConfigurationSetNameListener(type,listener,autoclean);
+ }
+ public void
+ addConfigurationSetNameListener(int type,
+ ConfigurationSetNameListener listener)
+ {
+ addConfigurationSetNameListener(type,listener, true);
+ }
+ /*
+ template <class Listener>
+ ConfigurationSetNameListener*
+ addConfigurationSetNameListener(ConfigurationSetNameListenerType type,
+ Listener& obj,
+ void (Listener::*memfunc)(const char*))
+ {
+ class Noname
+ : public ConfigurationSetNameListener
+ {
+ public:
+ Noname(Listener& obj, void (Listener::*memfunc)(const char*))
+ : m_obj(obj), m_memfunc(memfunc)
+ {
+ }
+ virtual void operator()(const char* config_set_name)
+ {
+ (m_obj.*m_memfunc)(config_set_name);
+ }
+ private:
+ Listener& m_obj;
+ typedef void (Listener::*Memfunc)(const char*);
+ Memfunc& m_memfunc;
+ };
+ Noname* listener(new Noname(obj, memfunc));
+ addConfigurationSetNameListener(type, listener, true);
+ return listener;
+ }
+ */
+ /**
+ * {@.ja ConfigurationSetNameListener を削除する}
+ * {@.en Removing ConfigurationSetNameListener}
+ * <p>
+ * {@.ja addConfigurationSetNameListener で追加されたリスナオブジェクトを
+ * 削除する。}
+ * {@.en This function removes a listener object which is added by
+ * addConfigurationSetNameListener() function.}
+ *
+ * @param type
+ * {@.ja ConfigurationSetNameListenerType型の値。
+ * ON_UPDATE_CONFIG_PARAM がある。}
+ * {@.en ConfigurationSetNameListenerType value
+ * ON_UPDATE_CONFIG_PARAM is only allowed.}
+ * @param listener
+ * {@.ja 与えたリスナオブジェクトへのポインタ}
+ * {@.en a pointer to ConfigurationSetNameListener
+ * listener object.}
+ *
+ */
+ public void
+ removeConfigurationSetNameListener(int type,
+ ConfigurationSetNameListener listener)
+ {
+ m_configsets.removeConfigurationSetNameListener(type,listener);
+ }
+ /**
+ * {@.ja RTC を終了する。}
+ * {@.en Shutdown RTC}
+ *
+ * <p>
+ * {@.ja RTC の終了処理を実行する。
+ * 保持している全 Port の登録を解除するとともに、該当する CORBA オブジェクト
+ * を非活性化し、RTC を終了する。}
+ * {@.en This operation ececutes RTC's termination.
+ * This unregisters all Ports, deactivates corresponding CORBA objects and
+ * shuts down RTC.}
+ */
protected void shutdown() {
try {
@@ -2291,70 +4357,223 @@
if( m_pManager != null) {
m_pManager.cleanupComponent(this);
}
- }
+ }
+ protected void preOnInitialize(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_INITIALIZE].notify(ec_id);
+ }
+ protected void preOnFinalize(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_FINALIZE].notify(ec_id);
+ }
+
+ protected void preOnStartup(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_STARTUP].notify(ec_id);
+ }
+
+ protected void preOnShutdown(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_SHUTDOWN].notify(ec_id);
+ }
+
+ protected void preOnActivated(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_ACTIVATED].notify(ec_id);
+ }
+
+ protected void preOnDeactivated(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_DEACTIVATED].notify(ec_id);
+ }
+
+ protected void preOnAborting(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_ABORTING].notify(ec_id);
+ }
+
+ protected void preOnError(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_ERROR].notify(ec_id);
+ }
+
+ protected void preOnReset(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_RESET].notify(ec_id);
+ }
+
+ protected void preOnExecute(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_EXECUTE].notify(ec_id);
+ }
+
+ protected void preOnStateUpdate(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_STATE_UPDATE].notify(ec_id);
+ }
+
+ protected void preOnRateChanged(int ec_id)
+ {
+ m_actionListeners.preaction_[PreComponentActionListenerType.PRE_ON_RATE_CHANGED].notify(ec_id);
+ }
+
+ protected void postOnInitialize(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_INITIALIZE].notify(ec_id, ret);
+ }
+
+ protected void postOnFinalize(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_FINALIZE].notify(ec_id, ret);
+ }
+
+ protected void postOnStartup(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_STARTUP].notify(ec_id, ret);
+ }
+
+ protected void postOnShutdown(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_SHUTDOWN].notify(ec_id, ret);
+ }
+
+ protected void postOnActivated(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_ACTIVATED].notify(ec_id, ret);
+ }
+
+ protected void postOnDeactivated(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_DEACTIVATED].notify(ec_id, ret);
+ }
+
+ protected void postOnAborting(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_ABORTING].notify(ec_id, ret);
+ }
+
+ protected void postOnError(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_ERROR].notify(ec_id, ret);
+ }
+
+ protected void postOnReset(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_RESET].notify(ec_id, ret);
+ }
+
+ protected void postOnExecute(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_EXECUTE].notify(ec_id, ret);
+ }
+
+ protected void postOnStateUpdate(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_STATE_UPDATE].notify(ec_id, ret);
+ }
+
+ protected void postOnRateChanged(int ec_id, ReturnCode_t ret)
+ {
+ m_actionListeners.postaction_[PostComponentActionListenerType.POST_ON_RATE_CHANGED].notify(ec_id, ret);
+ }
+
+ protected void onAddPort(final PortProfile pprof)
+ {
+ m_actionListeners.portaction_[PortActionListenerType.ADD_PORT].notify(pprof);
+ }
+
+ protected void onRemovePort(final PortProfile pprof)
+ {
+ m_actionListeners.portaction_[PortActionListenerType.REMOVE_PORT].notify(pprof);
+ }
+
+ protected void onAttachExecutionContext(int ec_id)
+ {
+ m_actionListeners.ecaction_[ExecutionContextActionListenerType.ATTACH_EC].notify(ec_id);
+ }
+
+ protected void onDetachExecutionContext(int ec_id)
+ {
+ m_actionListeners.ecaction_[ExecutionContextActionListenerType.DETACH_EC].notify(ec_id);
+ }
+
+
/**
- * <p>Manager オブジェクト</p>
+ * {@.ja マネージャオブジェクト}
+ * {@.en Manager object}
*/
protected Manager m_pManager;
/**
- * <p>ORB</p>
+ * {@.ja ORB}
+ * {@.en ORB}
*/
protected ORB m_pORB;
/**
- * <p>POA</p>
+ * {@.ja POA}
+ * {@.en POA}
*/
protected POA m_pPOA;
/**
- * <p>SDO organization リスト</p>
+ * {@.ja SDO が保持する organization のリスト}
+ * {@.en SDO owned organization list}
*/
protected OrganizationListHolder m_sdoOwnedOrganizations = new OrganizationListHolder();
/**
- * SDOService のプロファイルリスト
+ * {@.ja SDOService のプロファイルリスト}
+ * {@.en SDOService Profile List}
*/
protected ServiceProfileListHolder m_sdoSvcProfiles = new ServiceProfileListHolder();
/**
- * SDO Configuration Interface へのポインタ
+ * {@.ja SDO Configuration オブジェクト}
+ * {@.en The SDO Configuration Object}
*/
protected Configuration_impl m_pSdoConfigImpl;
/**
- * SDO Configuration
+ * {@.ja SDO Configuration Interface}
+ * {@.en The SDO Configuration Interface}
*/
protected Configuration m_pSdoConfig;
/**
- * SDO organization
+ * {@.ja SDO organization}
+ * {@.en SDO organization}
*/
protected OrganizationListHolder m_sdoOrganizations = new OrganizationListHolder();
/**
- * SDO Status
+ * {@.ja SDO Status}
+ * {@.en SDO Status}
*/
protected NVListHolder m_sdoStatus = new NVListHolder();
/**
- * ComponentProfile
+ * {@.ja コンポーネントプロファイル}
+ * {@.en ComponentProfile}
*/
protected ComponentProfile m_profile = new ComponentProfile();
/**
- * CORBAオブジェクトへの参照
+ * {@.ja オブジェクトリファレンス}
+ * {@.en Object reference}
*/
protected RTObject m_objref;
/**
- * Port のオブジェクトリファレンスのリスト
+ * {@.ja Port のオブジェクトリファレンスのリスト}
+ * {@.en List of Port Object reference}
*/
protected PortAdmin m_portAdmin;
/**
- * 自分がownerのExecutionContextService のリスト
+ * {@.ja 自分がownerのExecutionContextService のリスト}
+ * {@.en List of owned ExecutionContextService}
*/
protected ExecutionContextServiceListHolder m_ecMine;
@@ -2366,29 +4585,58 @@
= new Vector<ExecutionContextBase>();
/**
- * 参加しているExecutionContextService のリスト
+ * {@.ja 参加しているExecutionContextService のリスト}
+ * {@.en List of participating ExecutionContextService}
*/
protected ExecutionContextServiceListHolder m_ecOther;
/**
- * 生成済みフラグ
+ * {@.ja Created 状態フラグ}
+ * {@.en Created Status Flag}
*/
protected boolean m_created;
/**
- * RTC のプロパティ
+ * {@.ja RTC のプロパティ}
+ * {@.en RTC's Property}
*/
protected Properties m_properties = new Properties();
/**
- * RTC のコンフィギュレーション管理オブジェクト
+ * {@.ja コンフィギュレーション情報管理オブジェクト}
+ * {@.en Configuration Administrator Object}
*/
protected ConfigAdmin m_configsets;
/**
- * RTコンポーネント検索用ヘルパークラス
+ * {@.ja RTコンポーネント検索用ヘルパークラス}
+ * {@.en Functor to find NVList}
*/
class nv_name implements equalFunctor{
+ /**
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ * @param name
+ * {@.ja 名前}
+ * {@.en name}
+ */
public nv_name(final String name) {
m_name = name;
}
+ /**
+ * {@.ja NVList検索。}
+ * {@.en Finds NVList}
+ *
+ * <p>
+ * {@.ja 指定されたNVListを検索する}
+ * {@.en The specified NVList is found.}
+ *
+ * @param nv
+ * {@.ja NVList情報}
+ * {@.en NVList}
+ *
+ * @return
+ * {@.ja 存在する場合はtrue}
+ * {@.en Returns true when existing.}
+ *
+ */
public boolean equalof(final Object nv) {
return m_name.equals(((NameValue)nv).name);
}
@@ -2396,25 +4644,38 @@
}
/**
- * ExecutionContext コピー用ファンクタ
+ * {@.ja ExecutionContext コピー用ファンクタ}
+ * {@.en Functor to copy ExecutionContext}
*/
class ec_copy implements operatorFunc
{
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ * @param eclist
+ * {@.ja ExecutionContext のリスト}
+ * {@.en List of ExecutionContext}
*/
public ec_copy(ExecutionContextListHolder eclist)
{
m_eclist = eclist;
}
/**
- * <p> operator </p>
+ * {@.ja ECをリストへ格納する。}
+ * {@.en Stores EC in the list.}
+ * @param elem
+ * {@.ja ExecutionContext}
+ * {@.en ExecutionContext}
*/
public void operator(Object elem) {
operator((ExecutionContextService) elem);
}
/**
- * <p> operator </p>
+ * {@.ja ECをリストへ格納する。}
+ * {@.en Stores EC in the list.}
+ * @param ecs
+ * {@.ja ExecutionContext}
+ * {@.en ExecutionContext}
*/
public void operator(ExecutionContextService ecs)
{
@@ -2426,25 +4687,44 @@
};
/**
- * ExecutionContext 検索用ファンクタ
+ * {@.ja ExecutionContext 検索用ファンクタ}
+ * {@.en Functor to find ExecutionContext}
*/
class ec_find implements equalFunctor
{
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ * @param ec
+ * {@.ja ExecutionContext}
+ * {@.en ExecutionContext}
*/
public ec_find(ExecutionContext ec)
{
m_ec = ec;
}
/**
- * <p> equalof </p>
+ * {@.ja ECを比較する。}
+ * {@.en Compares EC.}
+ * @param object
+ * {@.ja 比較するオブジェクト}
+ * {@.en Compared objects}
+ * @return
+ * {@.ja 同一の場合はtrueを返す。}
+ * {@.en true in case of the same.}
*/
public boolean equalof(final java.lang.Object object){
return operator((ExecutionContextService) object);
}
/**
- * <p> operator </p>
+ * {@.ja ECを比較する。}
+ * {@.en Compares EC.}
+ * @param ecs
+ * {@.ja 比較するオブジェクト}
+ * {@.en Compared objects}
+ * @return
+ * {@.ja 同一の場合はtrueを返す。}
+ * {@.en true in case of the same.}
*/
public boolean operator(ExecutionContextService ecs)
{
@@ -2472,22 +4752,32 @@
class deactivate_comps implements operatorFunc
{
/**
- * <p> constructor </p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ * @param comp
+ * {@.ja コンポーネント}
+ * {@.en Component}
*/
deactivate_comps(LightweightRTObject comp)
{
m_comp = comp;
}
/**
- * <p> operator </p>
+ * {@.ja RTCを非活性化する。}
+ * {@.en Deactivates RTC.}
+ * @param elem
+ * {@.ja EC}
+ * {@.en EC}
*/
public void operator(Object elem) {
operator((ExecutionContextService) elem);
}
/**
- *
- * <p> operator </p>
- *
+ * {@.ja RTCを非活性化する。}
+ * {@.en Deactivates RTC.}
+ * @param ecs
+ * {@.ja EC}
+ * {@.en EC}
*/
void operator(ExecutionContextService ecs)
{
@@ -2500,7 +4790,8 @@
};
/**
- * <p>Logging用フォーマットオブジェクト</p>
+ * {@.ja ロガーストリーム}
+ * {@.en Logger stream}
*/
protected Logbuf rtcout;
@@ -2552,4 +4843,13 @@
* {@.en false:End when error occurs during writeAll().}
*/
protected boolean m_writeAllCompletion;
+ /**
+ * {@.ja ComponentActionListenerホルダ}
+ * {@.en ComponentActionListener holder}
+ * <p>
+ * {@.ja ComponentActionListenrを保持するホルダ}
+ * {@.en Holders of ComponentActionListeners}
+ *
+ */
+ protected ComponentActionListeners m_actionListeners = new ComponentActionListeners();
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RegisterModuleFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RegisterModuleFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RegisterModuleFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,16 +1,17 @@
-package jp.go.aist.rtm.RTC;
-
-/**
- * <p> </p>
- *
- */
-public interface RegisterModuleFunc {
-
- /**
- * <p> Function to register module.</p>
- *
- *
- */
- public void registerModule();
-
-}
+package jp.go.aist.rtm.RTC;
+
+/**
+ * {@.ja モジュール登録用インターフェース}
+ * {@.en Interface for module registration}
+ */
+public interface RegisterModuleFunc {
+
+ /**
+ * {@.ja モジュールを登録する。}
+ * {@.en Function to register module.}
+ *
+ *
+ */
+ public void registerModule();
+
+}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RtcDeleteFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RtcDeleteFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RtcDeleteFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,18 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>コンポーネント破棄用インタフェースです。</p>
+ * {@.ja コンポーネント破棄用インタフェース}
+ * {@.en Interface for component destruction}
*/
public interface RtcDeleteFunc {
/**
- * <p>コンポーネントの破棄処理を行います。</p>
+ * {@.ja コンポーネントの破棄処理を行う。}
+ * {@.en Deletes the component.}
*
- * @param component 破棄対象コンポーネントのオブジェクト
+ * @param component
+ * {@.ja 破棄対象コンポーネントのオブジェクト}
+ * {@.en Object of component for destruction}
*/
public void deleteRtc(RTObject_impl component);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RtcNewFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RtcNewFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/RtcNewFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,15 +1,21 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>コンポーネント生成用インタフェースです。</p>
+ * {@.ja コンポーネント生成用インタフェース。}
+ * {@.en Interface for component Creation}
*/
public interface RtcNewFunc {
/**
- * <p>コンポーネントの生成処理を行います。</p>
+ * {@.ja コンポーネントの生成処理を行う。}
+ * {@.en Creates the component.}
*
- * @param mgr Managerオブジェクト
- * @return 生成されたコンポーネントオブジェクト
+ * @param mgr
+ * {@.ja Managerオブジェクト}
+ * {@.en Manager object}
+ * @return
+ * {@.ja 生成されたコンポーネントオブジェクト}
+ * {@.en Generated component object}
*/
public RTObject_impl createRtc(Manager mgr);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SDOPackage/Configuration_impl.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SDOPackage/Configuration_impl.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SDOPackage/Configuration_impl.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -5,15 +5,13 @@
import java.util.UUID;
import java.util.Vector;
-import jp.go.aist.rtm.RTC.Manager;
import jp.go.aist.rtm.RTC.ConfigAdmin;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
import jp.go.aist.rtm.RTC.util.NVUtil;
import jp.go.aist.rtm.RTC.util.ORBUtil;
import jp.go.aist.rtm.RTC.util.POAUtil;
import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
import org.omg.CORBA.Any;
@@ -38,9 +36,10 @@
/**
- * <p>SDO Configuration 実装クラス<br />
+ * {@.ja SDO Configuration 実装クラス}
*
- * Configuration interface は Resource Data Model で定義されたデータの
+ * <p>
+ * {@.ja Configuration interface は Resource Data Model で定義されたデータの
* 追加、削除等の操作を行うためのインターフェースです。
* DeviceProfile, ServiceProfile, ConfigurationProfile および Organization
* の変更を行うためのオペレーションを備えています。SDO の仕様ではアクセス制御
@@ -83,15 +82,17 @@
* <li>get_active_configuration_set()</li>
* <li>add_configuration_set()</li>
* <li>remove_configuration_set()</li>
- * <li>activate_configuration_set()</li>
- * </ol>
+ * <li>activate_configuration_set()</li></ol>}
*/
public class Configuration_impl extends ConfigurationPOA {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param configsets コンフィギュレーション情報
+ * @param configsets
+ * {@.ja コンフィギュレーション情報}
+ * {@.en information of Configuration}
*/
public Configuration_impl(ConfigAdmin configsets){
this.m_configsets = configsets;
@@ -106,9 +107,12 @@
}
/**
- * <p>オブジェクト・リファレンスを取得します。</p>
+ * {@.ja オブジェクト・リファレンスを取得する。}
+ * {@.en Gets the object reference.}
*
- * @return オブジェクト・リファレンス
+ * @return
+ * {@.ja オブジェクト・リファレンス}
+ * {@.en object reference}
*/
public Configuration _this() {
@@ -124,10 +128,15 @@
}
/**
- * <p>コンフィギュレーションセットをプロパティにコピーします。</p>
+ * {@.ja コンフィギュレーションセットをプロパティにコピーする。}
+ * {@.en Copies ConfigurationSet set to Properties.}
*
- * @param prop コピー先プロパティ
- * @param conf コピー元コンフィギュレーションセット
+ * @param prop
+ * {@.ja コピー先プロパティ}
+ * {@.en Properties}
+ * @param conf
+ * {@.ja コピー元コンフィギュレーションセット}
+ * {@.en ConfigurationSet}
*/
private void toProperties(Properties prop, final ConfigurationSet conf) {
NVListHolder nvlist = new NVListHolder();
@@ -136,10 +145,15 @@
}
/**
- * <p>プロパティをコンフィギュレーションセットにコピーします。</p>
+ * {@.ja プロパティをコンフィギュレーションセットにコピーする。}
+ * {@.en Copies Properties set to ConfigurationSet.}
*
- * @param conf コピー先コンフィギュレーションセット
- * @param prop コピー元プロパティ
+ * @param conf
+ * {@.ja コピー先コンフィギュレーションセット}
+ * {@.en ConfigurationSet}
+ * @param prop
+ * {@.ja コピー元プロパティ}
+ * {@.en Properties}
*/
private void toConfigurationSet(ConfigurationSet conf, final Properties prop) {
conf.description = new String(prop.getProperty("description"));
@@ -150,23 +164,34 @@
}
/**
*
- * <p>[CORBA interface] SDO の DeviceProfile をセットします。<br />
+ * {@.ja [CORBA interface] SDO の DeviceProfile をセットする。}
+ * {@.en [CORBA interface] Sets DeviceProfile of SDO.}
+ * <p>
+ * {@.ja このオペレーションは SDO の DeviceProfile をセットする。SDO が
+ * DeviceProfile を保持していない場合は新たな DeviceProfile を生成し、
+ * DeviceProfile をすでに保持している場合は既存のものと置き換える。}
*
- * このオペレーションは SDO の DeviceProfile をセットします。SDO が
- * DeviceProfile を保持している場合は新たな DeviceProfile を生成し、
- * DeviceProfile をすでに保持している場合は既存のものと置き換えます。</p>
+ * @param dProfile
+ * {@.ja SDO に関連付けられる DeviceProfile。}
+ * {@.en DeviceProfile}
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en True is returned when succeeding. }
*
- * @param dProfile SDO に関連付けられる DeviceProfile。
- * @return オペレーションが成功したかどうかを返す。
- *
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InvalidParameter 引数 "dProfile" が null である。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists.}
+ * @exception InvalidParameter i
+ * {@.ja 引数 "dProfile" が null である。}
+ * {@.en Argument dProfile is null.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred.}
*/
public boolean set_device_profile(final DeviceProfile dProfile)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.set_device_profile()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.set_device_profile()");
try {
if(m_deviceProfile == null) m_deviceProfile = new DeviceProfile();
@@ -181,26 +206,38 @@
/**
*
- * <p>[CORBA interface] SDO の ServiceProfile を設定します。<br />
- *
- * このオペレーションはこの Configuration interface を所有する対象 SDO の
- * ServiceProfile を設定します。もし引数の ServiceProfile の id が空であれば
- * 新しい ID が生成されその ServiceProfile を格納します。もし id が空で
- * なければ、SDO は同じ id を持つ ServiceProfile を検索します。
+ * {@.ja [CORBA interface] SDO の ServiceProfile を設定する。}
+ * {@.en [CORBA interface] Sets ServiceProfile of SDO.}
+ * <p>
+ * {@.ja このオペレーションはこの Configuration interface を所有する対象
+ * SDO の ServiceProfile を設定する。もし引数の ServiceProfile の id が
+ * 空であれば新しい ID が生成されその ServiceProfile を格納する。
+ * もし id が空でなければ、SDO は同じ id を持つ ServiceProfile を検索する。
* 同じ id が存在しなければこの ServiceProfile を追加し、id が存在すれば
- * 上書きをします。</p>
+ * 上書きをする。}
+ * {@.en Sets ServiceProfile of SDO that keeps Configuraition interface}
*
- * @param sProfile 追加する ServiceProfile
- * @return オペレーションが成功したかどうかを返す。
+ * @param sProfile
+ * {@.ja 追加する ServiceProfile}
+ * {@.en ServiceProfile}
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en True is returned when succeeding. }
*
- * @exception InvalidParameter 引数 "sProfile" が nullである。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception InvalidParameter
+ * {@.ja 引数 "sProfile" が nullである。}
+ * {@.en Argument sProfile is null.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred.}
*/
public boolean add_service_profile(final ServiceProfile sProfile)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.add_service_profile()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.add_service_profile()");
try{
if( m_serviceProfiles==null ) {
@@ -227,21 +264,34 @@
}
/**
- * <p>[CORBA interface] Organization を追加します。<br />
+ * {@.ja [CORBA interface] Organization を追加する。}
+ * {@.en [CORBA interface] Adds Organization object.}
*
- * このオペレーションは Organization object のリファレンスを追加します。</p>
+ * <p>
+ * {@.ja このオペレーションは Organization object のリファレンスを
+ * 追加する。}
*
- * @param org 追加する Organization
- * @return オペレーションが成功したかどうかを返す。
+ * @param org
+ * {@.ja 追加する Organization}
+ * {@.en Organization}
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en True is returned when succeeding. }
*
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InvalidParameter 引数 "organization" が null である。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO existis.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "organization" が null である。}
+ * {@.en Argument organization is null.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occureed.}
*/
public boolean add_organization(Organization org)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.add_organization()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.add_organization()");
try {
if( m_organizations==null ){
@@ -256,24 +306,37 @@
}
/**
- * <p>[CORBA interface] ServiceProfile を削除します。<br />
+ * {@.ja [CORBA interface] ServiceProfile を削除する。}
+ * {@.en [CORBA interface] Deletes ServiceProfile}
*
- * このオペレーションはこの Configuration interface を持つ SDO の
- * Service の ServiceProfile を削除します。
- * 削除する ServiceProfileは引数により指定されます。</p>
+ * <p>
+ * {@.ja このオペレーションはこの Configuration interface を持つ SDO の
+ * Service の ServiceProfile を削除する。
+ * 削除する ServiceProfileは引数により指定される。}
*
- * @param id 削除する ServcieProfile の serviceID。
- * @return オペレーションが成功したかどうかを返す。
+ * @param id
+ * {@.ja 削除する ServcieProfile の serviceID。}
+ * {@.en serviceID of ServiceProfile}
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en True is retuened when succeeding}
*
- * @exception InvalidParameter 引数 "id" が null である。もしくは "id" に
- * 関連付けられた ServiceProfile が存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception InvalidParameter
+ * {@.ja 引数 "id" が null である。もしくは "id" に
+ * 関連付けられた ServiceProfile が存在しない。}
+ * {@.en Argument "id" is null.
+ * ServiceProfile related to "id" does not exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred.}
*/
public boolean remove_service_profile(final String id)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.remove_service_profile("+id+")");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.remove_service_profile("+id+")");
try {
for(int index=0; index<m_serviceProfiles.value.length; index++ ) {
@@ -289,22 +352,34 @@
}
/**
- * <p>[CORBA interface] Organization の参照を削除します。<br />
+ * {@.ja [CORBA interface] Organization の参照を削除する。}
+ * {@.en [CORBA interface] Deletes Organization object reference}
+ * <p>
+ * {@.ja このオペレーションは Organization の参照を削除する。}
*
- * このオペレーションは Organization の参照を削除します。</p>
+ * @param organization_id
+ * {@.ja 削除する Organization の一意な id。}
+ * {@.en Unique ID of Orgnazaion}
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en True is returned when succeeding}
*
- * @param organization_id 削除する Organization の一意な id。
- * @return オペレーションが成功したかどうかを返す。
- *
- * @exception InvalidParameter 引数 "id" が null である。もしくは "id" に
- * 関連付けられた Organization が存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception InvalidParameter
+ * {@.ja 引数 "id" が null である。もしくは "id" に
+ * 関連付けられた Organization が存在しない。}
+ * {@.en Argument "id" is null.
+ * Organization to related to "id" dose not exist}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response thorug SDO exists}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal erro occurred}
*/
public boolean remove_organization(String organization_id)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.remove_organization("+organization_id+")");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.remove_organization("+organization_id+")");
try {
synchronized (m_organizations) {
@@ -322,21 +397,28 @@
}
/**
- * <p>[CORBA interface] 設定パラメータのリストを取得します。<br />
+ * {@.ja [CORBA interface] 設定パラメータのリストを取得する。}
+ * {@.en [CORBA interface] Gets the list of configuration parameter}
+ * <p>
+ * {@.ja このオペレーションは configuration parameter のリストを返す。
+ * SDO が設定可能なパラメータを持たなければ空のリストを返す。}
*
- * このオペレーションは configuration parameter のリストを返します。
- * SDO が設定可能なパラメータを持たなければ空のリストを返します。</p>
+ * @return
+ * {@.ja 設定を特徴付けるパラメータ定義のリスト。}
+ * {@.en list of configuration parameter}
*
- * @return 設定を特徴付けるパラメータ定義のリスト。
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred}
*
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
- *
*/
public Parameter[] get_configuration_parameters()
throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.get_configurations()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.get_configurations()");
try{
if( m_parameters==null ) {
@@ -353,20 +435,27 @@
}
/**
- * <p>[CORBA interface] Configuration parameter の値のリストを取得します。<br />
+ * {@.ja [CORBA interface] Configuration parameter の値のリストを取得する。}
+ * {@.en [CORBA itnerface] Gets the list of Configuration paramter value}
+ * <p>
+ * {@.ja このオペレーションは configuration パラメータおよび値を返す。}
+ * {@.en Returns configuration paramter and value}
*
- * このオペレーションは configuration パラメータおよび値を返します。
- * ※未実装</p>
+ * @return
+ * {@.ja 全ての configuration パラメータと値のリスト。}
+ * {@.en All configuration parameters and lists of value.}
*
- * @return 全ての configuration パラメータと値のリスト。
- *
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred}
*/
public synchronized NameValue[] get_configuration_parameter_values()
throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.get_configuration_parameter_values()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.get_configuration_parameter_values()");
NVListHolder nvlist = new NVListHolder();
nvlist.value = new NameValue[0];
@@ -374,22 +463,33 @@
}
/**
- * <p>[CORBA interface] Configuration parameter の値を取得します。<br />
+ * {@.ja [CORBA interface] Configuration parameter の値を取得する。}
+ * {@.en [CORBA interface] Gets the value of Configuration parameter}
+ * <p>
+ * {@.ja このオペレーションは引数 "name" で指定されたパラメータ値を返す。}
+ * {@.en This operation returns the argument value specified by "Name".}
*
- * このオペレーションは引数 "name" で指定されたパラメータ値を返します。
- * ※未実装</p>
+ * @param name
+ * {@.ja 値を要求するパラメータの名前。}
+ * {@.en Name of paramter that demands value.}
+ * @return
+ * {@.ja 指定されたパラメータの値。}
+ * {@.en Value of specified parameter}
*
- * @param name 値を要求するパラメータの名前。
- * @return 指定されたパラメータの値。
- *
- * @exception InvalidParameter 引数 "name" が null である。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception InvalidParameter
+ * {@.ja 引数 "name" が null である。}
+ * {@.en Argument "name" is null.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred}
*/
public Any get_configuration_parameter_value(String name)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.get_configuration_parameter_value("+name+")");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.get_configuration_parameter_value("+name+")");
if( name==null || name.equals("") ) throw new InvalidParameter("Name is empty.");
@@ -398,43 +498,54 @@
}
/**
- * <p>[CORBA interface] Configuration パラメータを変更します。<br />
+ * {@.ja [CORBA interface] Configuration パラメータを変更する。}
+ * {@.en [CORBA interface] Changes the Configuration parameter.}
+ * <p>
+ * {@.ja このオペレーションは "name" で指定したパラメータの値を "value" に
+ * 変更する。}
*
- * このオペレーションは "name" で指定したパラメータの値を "value" に変更します。
- * ※未実装</p>
+ * @param name
+ * {@.ja 変更したいパラメータの名前。}
+ * @param value
+ * {@.ja 変更したいパラメータの値。}
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
*
- * @param name 変更したいパラメータの名前。
- * @param value 変更したいパラメータの値。
- * @return オペレーションが成功したかどうかを返す。
+ * @exception InvalidParameter
+ * {@.ja 引数 "name" が null である。}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
*
- * @exception InvalidParameter 引数 "name" が null である。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
- *
*/
public boolean set_configuration_parameter(String name, Any value)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.set_configuration_parameter("+name+")");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.set_configuration_parameter("+name+")");
return true;
}
/**
- * <p>[CORBA interface] ConfigurationSet リストを取得します。<br />
+ * {@.ja [CORBA interface] ConfigurationSet リストを取得する。}
+ * {@.en [CORBA interface] Gets the list of ConfigurationSet}
+ * <p>
+ * {@.ja このオペレーションは ConfigurationProfile が持つ
+ * ConfigurationSet のリストを返す。
+ * SDO が ConfigurationSet を持たなければ空のリストを返す。}
*
- * このオペレーションは ConfigurationProfile が持つ ConfigurationSet の
- * リストを返します。 SDO が ConfigurationSet を持たなければ空のリストを返します。</p>
+ * @return
+ * {@.ja 保持している ConfigurationSet のリストの現在値。}
+ * {@.en Present value of list of ConfigurationSet.}
*
- * @return 保持している ConfigurationSet のリストの現在値。
- *
* @exception NotAvailable SDOは存在するが応答がない。
* @exception InternalError 内部的エラーが発生した。
*/
public ConfigurationSet[] get_configuration_sets()
throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.get_configuration_sets()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.get_configuration_sets()");
try {
synchronized (m_configsets) {
@@ -475,7 +586,7 @@
public synchronized ConfigurationSet get_configuration_set(String config_id)
throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.get_configuration_set("+config_id+")");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.get_configuration_set("+config_id+")");
if( config_id==null || config_id.equals("") ) throw new InternalError("ID is empty");
// Originally getConfigurationSet raises InvalidParameter according to the
@@ -547,7 +658,7 @@
boolean set_configuration_set_values(ConfigurationSet configuration_set)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"Configuration_impl.set_configuration_set_values()");
String config_id = configuration_set.id;
@@ -603,29 +714,46 @@
}
/**
- * <p>[CORBA interface] アクティブな ConfigurationSet を取得します。<br />
- *
- * このオペレーションは当該SDOの現在アクティブな ConfigurationSet を返します。
+ * {@.ja [CORBA interface] アクティブな ConfigurationSet を取得する。}
+ * {@.en [CROBA ingerface] Gets active ConfigurationSet.}
+ * <p>
+ * {@.ja このオペレーションは当該SDOの現在アクティブな ConfigurationSet
+ * を返す。
* (もしSDOの現在の設定が予め定義された ConfigurationSet により設定されて
* いるならば。)
- * ConfigurationSet は以下の場合にはアクティブではないものとみなされます。
+ * ConfigurationSet は以下の場合にはアクティブではないものとみなされる。
*
* <ol>
* <li>現在の設定が予め定義された ConfigurationSet によりセットされていない</li>
* <li>SDO の設定がアクティブになった後に変更された</li>
* <li>SDO を設定する ConfigurationSet が変更された</li>
* <ol>
- * これらの場合には、空の ConfigurationSet が返されます。</p>
+ * これらの場合には、空の ConfigurationSet が返される。}
+ * {@.en In the following cases, it is considered that ConfigurationSet is
+ * not active.
+ * <ol>
+ * <li>It is not set by ConfigurationSet in which a present setting is
+ * defined beforehand.</li>
+ * <li>After the setting of SDO had become active, it was changed. </li>
+ * <li>ConfigurationSet that set SDO was changed. </li>
+ * </ol>
+ * Empty ConfigurationSet is returned.}
*
- * @return 現在アクティブな ConfigurationSet。
+ * @return
+ * {@.ja 現在アクティブな ConfigurationSet。}
+ * {@.en Active ConfigurationSset}
*
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred}
*/
public ConfigurationSet get_active_configuration_set()
throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.get_active_configuration_set()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.get_active_configuration_set()");
if( !m_configsets.isActive() ) throw new NotAvailable();
@@ -645,22 +773,35 @@
}
/**
- * <p>[CORBA interface] ConfigurationSet を追加します。<br />
+ * {@.ja [CORBA interface] ConfigurationSet を追加する。}
+ * {@.en [CORBA interface] Adds ConfigurationSet.}
+ * <p>
+ * {@.ja ConfigurationProfileにConfigurationSetを追加するオペレーション。}
+ * {@.en Adds ConfigurationSet to ConfigurationProfile.}
+ *
+ * @param configuration_set
+ * {@.ja 追加される ConfigurationSet。}
+ * {@.en ConfgurataionSet}
+ * @return
+ * {@.ja オペレーションが成功したかどうか。}
+ * {@.en True is returned when succeeding.}
*
- * ConfigurationProfile に ConfigurationSet を追加するオペレーション。</p>
- *
- * @param configuration_set 追加される ConfigurationSet。
- * @return オペレーションが成功したかどうか。
- *
- * @exception InvalidParameter 引数 "configuration_set" が null である、
- * もしくは、引数で指定された ConfigurationSet が存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception InvalidParameter
+ * {@.ja 引数 "configuration_set" が null である、
+ * もしくは、引数で指定された ConfigurationSet が存在しない。}
+ * {@.en Argument "configurations_set" is null.
+ * ConfigurationSet specified by the argument dose not exist}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no rsponse though SDO exists}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred}
*/
public boolean add_configuration_set(ConfigurationSet configuration_set)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl::add_configuration_set()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl::add_configuration_set()");
try{
synchronized (m_configsets) {
@@ -687,22 +828,35 @@
}
/**
- * <p>[CORBA interface] ConfigurationSet を削除します。<br />
+ * {@.ja [CORBA interface] ConfigurationSet を削除する。}
+ * {@.en [CROBA interface] Deletes ConfigurationSet}
+ * <p>
+ * {@.ja ConfigurationProfile から ConfigurationSet を削除する。}
*
- * ConfigurationProfile から ConfigurationSet を削除します。</p>
+ * @param config_id
+ * {@.ja 削除する ConfigurationSet の id。}
+ * {@.en "id" of ConfigurationSet}
+ * @return
+ * {@.ja オペレーションが成功したかどうか。}
+ * {@.en True is returned when succeeding.}
*
- * @param config_id 削除する ConfigurationSet の id。
- * @return オペレーションが成功したかどうか。
+ * @exception InvalidParameter
+ * {@.ja 引数 "configurationSetID" が null である、
+ * もしくは、引数で指定された ConfigurationSet が存在しない。}
+ * {@.en Argument "configurationSetID" is null.
+ * ConfigurationSet specified by the argument doesn't exist.}
*
- * @exception InvalidParameter 引数 "configurationSetID" が null である、
- * もしくは、引数で指定された ConfigurationSet が存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred}
*/
public boolean remove_configuration_set(String config_id)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.remove_configuration_set("+config_id+")");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.remove_configuration_set("+config_id+")");
if( config_id==null || config_id.equals(""))
throw new InvalidParameter("ID is empty.");
@@ -723,28 +877,42 @@
}
/**
- * <p>[CORBA interface] ConfigurationSet をアクティブ化します。<br />
- *
- * ConfigurationProfile に格納された ConfigurationSet のうち一つを
- * アクティブにします。
- * このオペレーションは特定の ConfigurationSet をアクティブにします。
+ * {@.ja [CORBA interface] ConfigurationSet をアクティブ化する。}
+ * {@.en [CORBA interface] Activate ConfigurationSet}
+ * <p>
+ * {@.ja ConfigurationProfile に格納された ConfigurationSet のうち一つを
+ * アクティブにする。
+ * このオペレーションは特定の ConfigurationSet をアクティブにする。
* すなわち、SDO のコンフィギュレーション・プロパティがその格納されている
- * ConfigurationSet により設定されるプロパティの値に変更されます。
+ * ConfigurationSet により設定されるプロパティの値に変更される。
* 指定された ConfigurationSet の値がアクティブ・コンフィギュレーション
- * にコピーされるということを意味します。</p>
+ * にコピーされるということを意味する。}
+ * {@.en the configuration property of SDO is changed to the value of the
+ * value of the property that is set by ConfigurationSet.}
*
- * @param config_id アクティブ化する ConfigurationSet の id。
- * @return オペレーションが成功したかどうか。
+ * @param config_id
+ * {@.ja アクティブ化する ConfigurationSet の id。}
+ * {@.en "id" of ConfigurationSet}
+ * @return
+ * {@.ja オペレーションが成功したかどうか。}
+ * {@.en True is returned when succeeding.}
*
- * @exception InvalidParameter 引数 "config_id" が null である、もしくは
- * 引数で指定された ConfigurationSet が存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception InvalidParameter
+ * {@.ja 引数 "config_id" が null である、もしくは
+ * 引数で指定された ConfigurationSet が存在しない。}
+ * {@.en Argument "config_id" is nill.
+ * ConfigurationSet specified by the argument doesn't exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred}
*/
public boolean activate_configuration_set(String config_id)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Configuration_impl.activate_configuration_set("+config_id+")");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.activate_configuration_set("+config_id+")");
if( config_id==null || config_id.equals(""))
throw new InvalidParameter("ID is empty.");
@@ -758,51 +926,69 @@
}
/**
- * <p>オブジェクト参照を取得します。</p>
+ * {@.ja オブジェクト参照を取得する。}
+ * {@.en Gets the object reference}
*
- * @return オブジェクト参照
+ * @return
+ * {@.ja オブジェクト参照}
+ * {@.en Ojbect reference}
*/
public Configuration getObjRef() {
- rtcout.println(rtcout.TRACE, "Configuration_impl.getObjRef()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.getObjRef()");
return m_objref;
}
/**
- * <p>[CORBA interface] SDO の DeviceProfile を取得します。</p>
+ * {@.ja [CORBA interface] SDO の DeviceProfile を取得する。}
+ * {@.en [CORBA interface] Gets DeviceProfie of SDO}
*
- * @return SDOのDeviceProfile。
+ * @return
+ * {@.ja SDOのDeviceProfile。}
+ * {@.en DeviceProfile of SDO}
*/
public final DeviceProfile getDeviceProfile() {
- rtcout.println(rtcout.TRACE, "Configuration_impl.getDeviceProfile()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.getDeviceProfile()");
return m_deviceProfile;
}
/**
- * <p>[CORBA interface] SDO の 全DeviceProfile を取得します。</p>
+ * {@.ja [CORBA interface] SDO の 全DeviceProfile を取得する。}
+ * {@.en [CORBA interface] Gets all DeviceProfiles of SDO}
*
- * @return SDOのDeviceProfile。
+ * @return
+ * {@.ja SDOのDeviceProfile。}
+ * {@.en DeviceProfile of SDO}
*/
public final ServiceProfileListHolder getServiceProfiles() {
- rtcout.println(rtcout.TRACE, "Configuration_impl.getServiceProfiles()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.getServiceProfiles()");
return m_serviceProfiles;
}
/**
- * <p>[CORBA interface] SDO の ServiceProfile を取得します。
- * 指定したIDのServiceProfileが存在しない場合は,空のServiceProfileを返します。</p>
+ * {@.ja [CORBA interface] SDO の ServiceProfile を取得する。}
+ * {@.en [CORBA itnerface] Gets SeviceProfile of SDO}
+ * <p>
+ * {@.ja 指定したIDのServiceProfileが存在しない場合は,
+ * 空のServiceProfileを返す。}
+ * {@.en When SeiviceProfile specified by ID dose not exist,
+ * Empty ServicePorfile is returned}
*
- * @param id 取得対象 ServiceProfile の id
- * @return SDOのServiceProfile
+ * @param id
+ * {@.ja 取得対象 ServiceProfile の id}
+ * {@.en "id" of ServiceProfile}
+ * @return
+ * {@.ja SDOのServiceProfile}
+ * {@.en ServiceProfile of SDO}
*/
public final ServiceProfile getServiceProfile(final String id) {
- rtcout.println(rtcout.TRACE, "Configuration_impl.getServiceProfile("+id+")");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.getServiceProfile("+id+")");
if( m_serviceProfiles==null || m_serviceProfiles.value==null ) return null;
for(int index=0; index<m_serviceProfiles.value.length; index++ ) {
@@ -814,43 +1000,53 @@
}
/**
- * <p>[CORBA interface] 設定された全Organizationを取得します。</p>
+ * {@.ja [CORBA interface] 設定された全Organizationを取得する。}
+ * {@.en [CORBA interface] Gets all Organization set}
*
- * @return Organizationリスト
+ * @return
+ * {@.ja Organizationリスト}
+ * {@.en List of Organization}
*/
public final OrganizationListHolder getOrganizations() {
- rtcout.println(rtcout.TRACE, "Configuration_impl.getOrganizations()");
+ rtcout.println(Logbuf.TRACE, "Configuration_impl.getOrganizations()");
return m_organizations;
}
/**
- * <p>オブジェクト参照</p>
+ * {@.ja オブジェクト参照}
+ * {@.en Object reference}
*/
protected Configuration m_objref;
/**
- * <p>DeviceProfile</p>
+ * {@.ja DeviceProfile}
+ * {@.en DeviceProfile}
*/
protected DeviceProfile m_deviceProfile = new DeviceProfile();
/**
- * <p>ServiceProfile リスト</p>
+ * {@.ja ServiceProfile リスト}
+ * {@.en List of ServiceProfile}
*/
protected ServiceProfileListHolder m_serviceProfiles;
/**
- * <p>Parameter リスト</p>
+ * {@.ja Parameter リスト}
+ * {@.en List of Parameter}
*/
protected ParameterListHolder m_parameters;
/**
- * <p>コンフィギュレーションセット情報</p>
+ * {@.ja コンフィギュレーションセット情報}
+ * {@.en Information of configuration set}
*/
protected ConfigAdmin m_configsets;
protected Map<String, Properties> m_configsetopts = new HashMap<String, Properties>();
/**
- * <p>Organization リスト</p>
+ * {@.ja Organization リスト}
+ * {@.en List of Organization}
*/
protected OrganizationListHolder m_organizations;
/**
- * <p>Logging用フォーマットオブジェクト</p>
+ * {@.ja Logging用フォーマットオブジェクト}
+ * {@.en Ojbect format for Logging}
*/
protected Logbuf rtcout;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SDOPackage/Organization_impl.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SDOPackage/Organization_impl.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SDOPackage/Organization_impl.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -2,14 +2,12 @@
import java.util.UUID;
-import jp.go.aist.rtm.RTC.Manager;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.NVUtil;
import jp.go.aist.rtm.RTC.util.ORBUtil;
+import jp.go.aist.rtm.RTC.util.POAUtil;
import jp.go.aist.rtm.RTC.util.equalFunctor;
-import jp.go.aist.rtm.RTC.util.POAUtil;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
import org.omg.CORBA.Any;
import org.omg.CORBA.SystemException;
@@ -20,28 +18,35 @@
import _SDOPackage.NVListHolder;
import _SDOPackage.NameValue;
import _SDOPackage.NotAvailable;
-import _SDOPackage.OrganizationPOA;
import _SDOPackage.Organization;
import _SDOPackage.OrganizationHelper;
+import _SDOPackage.OrganizationPOA;
import _SDOPackage.OrganizationProperty;
import _SDOPackage.SDO;
import _SDOPackage.SDOListHolder;
import _SDOPackage.SDOSystemElement;
/**
-* <p>SDO Organizationの実装クラスです。</p>
+* {@.ja SDO Organizationの実装クラス}
+* {@.en Implementation class of Organization}
*/
public class Organization_impl extends OrganizationPOA{
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*/
public Organization_impl() {
m_pId = UUID.randomUUID().toString();
rtcout = new Logbuf("Organization_impl");
}
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en constructor}
+ *
+ * @param sdo
+ * {@.ja オーナーオブジェクト}
+ * {@.en Owner object}
*/
public Organization_impl(SDOSystemElement sdo) {
m_pId = UUID.randomUUID().toString();
@@ -53,7 +58,7 @@
}
/**
- * <p> _this </p>
+ * _this
*
* @return a CORBA object reference
*/
@@ -71,33 +76,51 @@
}
/**
- * <p>[CORBA interface] Organization ID を取得します。</p>
+ * {@.ja [CORBA interface] Organization ID を取得する}
+ * {@.en [CORBA interface] Gets Organization ID}
*
- * @return Resource Data Model で定義された Organization ID
+ * @return
+ * {@.ja Resource Data Model で定義された Organization ID}
+ * {@.en Organization ID defined by Data Model}
*
- * @exception SDONotExists ターゲットのSDOが存在しない
- * @exception NotAvailable SDOは存在するが応答がない
- * @exception InternalError 内部的エラーが発生した
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない}
+ * {@.en SDO of the target doesn't exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない}
+ * {@.en There is no response though SDO exists.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した}
+ * {@.en An internal error occurred.}
*/
public String get_organization_id() throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.get_organization_id() = " + m_pId);
+ rtcout.println(Logbuf.TRACE, "Organization_impl.get_organization_id() = " + m_pId);
return m_pId;
}
/**
- * <p>[CORBA interface] OrganizationProperty を取得します。<br />
- *
+ * {@.ja [CORBA interface] OrganizationProperty を取得する。}
+ * {@.en [CORBA interface] Gets OrganizationProperty}
+ * <p>
* Organization が所有する OrganizationProperty を返すオペレーション。
- * Organization がプロパティを持たなければ空のリストを返します。</p>
+ * Organization がプロパティを持たなければ空のリストを返す。
*
- * @return Organization のプロパティのリスト
+ * @return
+ * {@.ja Organization のプロパティのリスト}
+ * {@.en Property list of Organization}
*
- * @exception SDONotExists ターゲットのSDOが存在しない
- * @exception NotAvailable SDOは存在するが応答がない
- * @exception InternalError 内部的エラーが発生した
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない}
+ * {@.en SDO of the target doesn't exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない}
+ * {@.en There is no response though SDO exists.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した}
+ * {@.en An internal error occurred.}
*/
public synchronized OrganizationProperty get_organization_property()
throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"Organization_impl.get_organization_property()");
try {
OrganizationProperty prop;
@@ -116,23 +139,35 @@
}
}
/**
- * <p>[CORBA interface] OrganizationProperty の特定の値を取得します。<br />
- *
+ * {@.ja [CORBA interface] OrganizationProperty の特定の値を取得する。}
+ * {@.en [CORBA interface] Gets a specific value of OrganizationProperty}
+ * <p>
* OrganizationProperty の指定された値を返すオペレーション。
* 引数 "name" で指定されたプロパティの値を返します。</p>
*
- * @param name 値を返すプロパティの名前
+ * @param name
+ * {@.ja 値を返すプロパティの名前}
+ * {@.en name of Property}
*
- * @return 引数 "name" で指定されたプロパティの値
+ * @return
+ * {@.ja 引数 "name" で指定されたプロパティの値}
+ * {@.en value of Property}
*
- * @exception SDONotExists ターゲットのSDOが存在しない
- * @exception InvalidParameter 引数 "namne" で指定されたプロパティが
- * 存在しない
- * @exception NotAvailable SDOは存在するが応答がない
- * @exception InternalError 内部的エラーが発生した
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない}
+ * {@.en SDO of the target doesn't exist.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "namne" で指定されたプロパティが存在しない}
+ * {@.en The specified property doesn't exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない}
+ * {@.en There is no response though SDO exists.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した}
+ * {@.en An internal error occurred.}
*/
public Any get_organization_property_value(final String name) throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.get_organization_property_value("+name+")");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.get_organization_property_value("+name+")");
if( name==null || name.equals("") ) throw new InvalidParameter("Rmpty name.");
NVListHolder nvlist = new NVListHolder();
nvlist.value = m_orgProperty.properties;
@@ -150,25 +185,38 @@
}
/**
- * <p>[CORBA interface] OrganizationProperty を設定します。<br />
- *
+ * {@.ja [CORBA interface] OrganizationProperty を設定する。}
+ * {@.en [CORBA interface] Sets OrganizationProperty}
+ * <p>
* OrganizationProperty を Organization に追加するオペレーション。
- * OrganizationProperty は Organization のプロパティ記述です。</p>
+ * OrganizationProperty は Organization のプロパティ記述。</p>
*
- * @param organization_property セットする OrganizationProperty
+ * @param organization_property
+ * {@.ja セットする OrganizationProperty}
+ * {@.en OrganizationProperty}
*
- * @return オペレーションが成功したかどうかを返す。
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en The success is true.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception InvalidParameter "org_property" が null。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en SDO of the target doesn't exist.}
+ * @exception InvalidParameter
+ * {@.ja "org_property" が null。}
+ * {@.en "org_property" is null}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en There is no response though SDO exists.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した}
+ * {@.en An internal error occurred.}
*/
// TODO ※ SDO Specification の PIM 記述とオペレーション名が異なる。
// ※ addOrganizationProperty に対応か?
public boolean set_organization_property(final OrganizationProperty organization_property)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.set_organization_property()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.set_organization_property()");
try {
if( m_orgProperty==null ) m_orgProperty = new OrganizationProperty();
synchronized (m_orgProperty) {
@@ -182,14 +230,48 @@
}
/**
- * <p> add_organization_property </p>
+ * {@.ja [CORBA interface] OrganizationProperty のセット}
+ * {@.en [CORBA interface] Set OrganizationProperty}
*
- * @param organization_property OrganizationProperty
+ * <p>
+ * {@.ja ※ SDO Specification の PIM 記述とオペレーション名が異なる。
+ * ※ addOrganizationProperty に対応か?<BR>
+ * OrganizationProperty を Organization に追加するオペレーション。
+ * OrganizationProperty は Organization のプロパティ記述である。}
+ * {@.en Note: The PIM description of SDO Specification differs from
+ * the operation name.
+ * Note: Does this operation correspond to addOrganizationProperty?
+ * This operation adds the OrganizationProperty to an Organization. The
+ * OrganizationProperty is the property description of an Organization.}
*
+ * @param organization_property
+ * {@.ja セットする OrganizationProperty}
+ * {@.en The type of organization to be added.}
+ *
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en If the operation was successfully completed.}
+ *
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。(本例外は、CORBA標準
+ * システム例外のOBJECT_NOT_EXISTにマッピングされる)}
+ * {@.en The target SDO does not exist.(This exception
+ * is mapped to CORBA standard system exception
+ * OBJECT_NOT_EXIST.)}
+ * @exception InvalidParameter
+ * {@.ja "org_property" が null。}
+ * {@.en The argument "organizationProperty" is null.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public boolean add_organization_property(final OrganizationProperty organization_property)
throws SystemException, InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.add_organization_property()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.add_organization_property()");
try {
if( m_orgProperty==null ) m_orgProperty = new OrganizationProperty();
synchronized (m_orgProperty) {
@@ -202,26 +284,40 @@
}
/**
- * <p>[CORBA interface] OrganizationProperty の値を設定します。<br />
+ * {@.ja [CORBA interface] OrganizationProperty の値を設定する。}
+ * {@.ja [CORBA interface] Gets the value of OrganizationProperty}
+ * <p>
+ * {@.ja OrganizationProperty の NVList に name と value のセットを
+ * 更新もしくは追加するオペレーション。
+ * name と value は引数 "name" と "value" により指定する。}
*
- * OrganizationProperty の NVList に name と value のセットを更新もしくは
- * 追加するオペレーション。name と value は引数 "name" と "value" により
- * 指定します。</p>
- *
- * @param name 追加・更新されるプロパティの名前。
- * @param value 追加・更新されるプロパティの値。
+ * @param name
+ * {@.ja 追加・更新されるプロパティの名前。}
+ * {@.en name of Property}
+ * @param value
+ * {@.ja 追加・更新されるプロパティの値。}
+ * {@.en value of Property}
*
- * @return オペレーションが成功したかどうかを返す。
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en If the operation was successfully completed.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception InvalidParameter 引数 "name" で指定されたプロパティは
- * 存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "name" で指定されたプロパティは存在しない。}
+ * {@.en The specified property doesn't exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en An internal error occurred.}
*/
public boolean set_organization_property_value(final String name, Any value)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.set_organization_property_value(name="+name+")");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.set_organization_property_value(name="+name+")");
if( name==null || name.equals("") ) {
throw new InvalidParameter("set_organization_property_value(): Enpty name.");
}
@@ -241,24 +337,41 @@
}
/**
- * <p>[CORBA interface] OrganizationProperty を削除します。<br />
+ * {@.ja [CORBA interface] OrganizationProperty を削除する。}
+ * {@.en [CORBA interface] Deletes OrganizationProperty}
+ * <p>
+ * {@.ja OrganizationProperty の NVList から特定のプロパティを削除する。
+ * 削除されるプロパティの名前は引数 "name" により指定。}
+ * {@.en This operation removes a property of Organization from NVList of
+ * the OrganizationProperty. The property to be removed is specified by
+ * argument "name."}
*
- * OrganizationProperty の NVList から特定のプロパティを削除します。
- * 削除されるプロパティの名前は引数 "name" により指定されます。</p>
- *
- * @param name 削除するプロパティの名前。
+ * @param name
+ * {@.ja 削除するプロパティの名前。}
+ * {@.en The name of the property to be removed.}
*
- * @return オペレーションが成功したかどうかを返す。
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en If the operation was successfully completed.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception InvalidParameter 引数 "name" で指定されたプロパティは
- * 存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "name" で指定されたプロパティは存在しない。}
+ * {@.en The property that is specified by argument "name" does
+ * not exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public boolean remove_organization_property(final String name)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.remove_organization_property(name="+name+")");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.remove_organization_property(name="+name+")");
if(name==null || name.equals("")) throw new InvalidParameter("remove_organization_property(): Enpty name.");
NVListHolder nvlist = new NVListHolder();
@@ -277,41 +390,72 @@
}
/**
- * <p>[CORBA interface] Organization のオーナーを取得します。<br />
+ * {@.ja [CORBA interface] Organization のオーナーを取得する。}
+ * {@.en [CORBA interface] Get the owner of Organization}
+ * <p>
+ * {@.ja この Organization のオーナーへの参照を返す。}
+ * {@.en This operation returns the SDOSystemElement that is owner of
+ * the Organization.}
*
- * この Organization のオーナーへの参照を返します。</p>
- *
- * @return オーナーオブジェクトへの参照。
+ * @return
+ * {@.ja オーナーオブジェクトへの参照。}
+ * {@.en Reference of owner object.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public SDOSystemElement get_owner()
throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.get_owner()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.get_owner()");
return m_varOwner;
}
/**
- * <p>[CORBA interface] Organization にオーナーを設定します。<br />
+ * {@.ja [CORBA interface] Organization にオーナーを設定する。}
+ * {@.en [CORBA interface] Set the owner to the Organization}
*
- * Organization に対して SDOSystemElement をオーナーとしてセットします。
- * 引数 "sdo" にセットする SDOSystemElement を指定します。</p>
+ * <p>
+ * {@.ja Organization に対して SDOSystemElement をオーナーとしてセット。
+ * 引数 "sdo" にセットする SDOSystemElement を指定。}
+ * {@.en This operation sets an SDOSystemElement to the owner of the
+ * Organization. The SDOSystemElement to be set is specified by argument
+ * "sdo."}
*
- * @param sdo オーナーオブジェクトの参照。
+ * @param sdo
+ * {@.ja オーナーオブジェクトの参照。}
+ * {@.en Reference of owner object.}
*
- * @return オペレーションが成功したかどうかを返す。
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en If the operation was successfully completed.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception InvalidParameter 引数 "sdo" が nullである、もしくは、
- * "sdo" が存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "sdo" が nullである、もしくは、 "sdo" が存在しない。}
+ * {@.en The argument "sdo" is null, or the object
+ * that is specified by "sdo" in argument "sdo"
+ * does not exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public boolean set_owner(SDOSystemElement sdo)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.set_owner()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.set_owner()");
if(sdo==null) throw new InvalidParameter("set_owner()");
try {
m_varOwner = sdo;
@@ -323,19 +467,33 @@
}
/**
- * <p>[CORBA interface] Organization のメンバーを取得します。<br />
+ * {@.ja [CORBA interface] Organization のメンバーを取得する。}
+ * {@.en [CORBA interface] Get the member list of the Organization}
*
- * Organization のメンバーの SDO のリストを返します。
- * メンバーが存在しなければ空のリストを返します。</p>
+ * <p>
+ * {@.ja Organization のメンバーの SDO のリストを返します。
+ * メンバーが存在しなければ空のリストを返す。}
+ * {@.en This operation returns a list of SDOs that are members of an
+ * Organization. An empty list is returned if the Organization does not
+ * have any members.}
*
- * @return Organization に含まれるメンバー SDO のリスト。
+ * @return
+ * {@.ja Organization に含まれるメンバー SDO のリスト。}
+ * {@.en Member SDOs that are contained in the Organization object.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public SDO[] get_members() throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.get_members()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.get_members()");
try{
SDOListHolder sdos = new SDOListHolder(m_memberList);
return sdos.value;
@@ -345,25 +503,47 @@
}
/**
- * <p>[CORBA interface] SDO の メンバー を設定します。<br />
+ * {@.ja [CORBA interface] SDO の メンバー を設定する。}
+ * {@.en [CORBA interface] Set SDO}
*
- * SDO のリストを Organization のメンバーとしてセットします。
+ * <p>
+ * {@.ja SDO のリストを Organization のメンバーとしてセットする。
* Organization がすでにメンバーの SDO を管理している場合は、
- * 与えられた SDO のリストに置き換えます。</p>
+ * 与えられた SDO のリストに置き換える。}
+ * {@.en This operation assigns a list of SDOs to an Organization as its
+ * members.
+ * If the Organization has already maintained a member SDO(s) when it is
+ * called, the operation replaces the member(s) with specified list of
+ * SDOs.}
*
- * @param sdos メンバーの SDO。
+ * @param sdos
+ * {@.ja メンバーの SDO。}
+ * {@.en Member SDOs to be assigned.}
*
- * @return オペレーションが成功したかどうかを返す。
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en If the operation was successfully completed.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception InvalidParameter 引数 "SDOList" が nullである、もしくは
- * 引数に指定された "SDOList" が存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "SDOList" が nullである、もしくは
+ * 引数に指定された "SDOList" が存在しない。}
+ * {@.en The argument "SDOList" is null, or the object
+ * that is specified by the argument "sdos"
+ * does not exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public boolean set_members(SDO[] sdos)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.set_members()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.set_members()");
if( sdos==null || sdos.length==0 )
throw new InvalidParameter("set_members(): SDOList is empty.");
try{
@@ -375,23 +555,40 @@
}
/**
- * <p>[CORBA interface] SDO メンバーを追加します。<br />
+ * {@.ja [CORBA interface] SDO メンバーを追加する。}
+ * {@.en [CORBA interface] Add the member SDOs}
*
- * Organization にメンバーとして SDO を追加します。
- * 引数 "sdo" に追加するメンバー SDO を指定します。</p>
+ * <p>
+ * {@.ja Organization にメンバーとして SDO を追加する。
+ * 引数 "sdo" に追加するメンバー SDO を指定する。}
+ * {@.en This operation adds a member that is an SDO to the organization.
+ * The member to be added is specified by argument "sdo."}
*
- * @param sdo_list Organization に追加される SDO のリスト。
+ * @param sdo_list
+ * {@.ja Organization に追加される SDO のリスト。}
+ * {@.en The member to be added to the organization.}
*
- * @return オペレーションが成功したかどうかを返す。
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en If the operation was successfully completed.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception InvalidParameter 引数 "sdo" が nullである。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "sdo" が nullである。}
+ * {@.en The argument "sdo" is null.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public boolean add_members(SDO[] sdo_list)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.add_members()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.add_members()");
try{
SDOListHolder sdoList1 = new SDOListHolder();
sdoList1.value = m_memberList;
@@ -406,22 +603,39 @@
}
/**
- * <p>[CORBA interface] SDO メンバーを削除します。<br />
+ * {@.ja [CORBA interface] SDO メンバーを削除する。}
+ * {@.en [CORBA interface] Remove member SDO from Organization}
*
- * Organization から引数で指定された "id" の SDO を削除します。</p>
+ * <p>
+ * {@.ja Organization から引数で指定された "id" の SDO を削除する。}
+ * {@.en This operation removes a member from the organization.
+ * The member to be removed is specified by argument "id."}
*
- * @param id 削除する SDO の id。
+ * @param id
+ * {@.ja 削除する SDO の id。}
+ * {@.en Id of the SDO to be removed from the organization.}
*
- * @return オペレーションが成功したかどうかを返す。
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en If the operation was successfully completed.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception InvalidParameter 引数 "id" が null もしくは存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "id" が null もしくは存在しない。}
+ * {@.en The argument "id" is null or does not exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public boolean remove_member(final String id)
throws InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.remove_member("+id+")");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.remove_member("+id+")");
if(id==null || id.equals("") )
throw new InvalidParameter("remove_member(): Enpty name.");
@@ -438,44 +652,79 @@
}
/**
- * <p>[CORBA interface] Organization の DependencyType を取得します。<br />
+ * {@.ja [CORBA interface] Organization の DependencyType を取得する。}
+ * {@.en [CORBA interface] Get the DependencyType of the Organization}
*
- * Organization の関係を表す "DependencyType" を返します。</p>
+ * <p>
+ * {@.ja Organization の関係を表す "DependencyType" を返す。}
+ * {@.en This operation gets the relationship "DependencyType" of the
+ * Organization.}
*
- * @return Organizaton の依存関係 DependencyType を返します。
+ * @return
+ * {@.ja Organizaton の依存関係 DependencyType を返す。
* DependencyType は OMG SDO 仕様の Section 2.2.2 2-3 ページの
- * "Data Structures Used by Resource Data Model" を参照。
+ * "Data Structures Used by Resource Data Model" を参照。}
+ * {@.en The relationship of the Organization as DependencyType.
+ * DependencyType is defined in Section 2.2.2, "Data Structures
+ * Used by Resource Data Model," on page 2-3
+ * of OMG SDO Specification.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception NotAvailable
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*
*/
public DependencyType get_dependency() throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.get_dependency()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.get_dependency()");
return m_dependency;
}
/**
- * <p>[CORBA interface] Organization の DependencyType を設定します。<br />
+ * {@.ja [CORBA interface] Organization の DependencyType を設定する。}
+ * {@.en [CORBA interface] Set the DependencyType of the Organization}
+ * <p>
+ * {@.ja Organization の依存関係 "DependencyType" をセットする。
+ * 引数 "dependencty" により依存関係を与える。}
+ * {@.en This operation sets the relationship "DependencyType" of the
+ * Organization. The value to be set is specified by argument "dependency."}
*
- * Organization の依存関係 "DependencyType" をセットします。
- * 引数 "dependencty" により依存関係を与えます。</p>
- *
- * @param dependency Organization の依存関係を表す DependencyType。
+ * @param dependency
+ * {@.ja Organization の依存関係を表す DependencyType。
* DependencyType は OMG SDO 仕様の Section 2.2.2、2-3 ページの
- * "Data Structures Used by Resource Data Model" を参照。
+ * "Data Structures Used by Resource Data Model" を参照。}
+ * {@.en The relationship of the Organization as
+ * DependencyType. DependencyType is defined in Section
+ * 2.2.2, "Data Structures Used by Resource Data Model,"
+ * on page 2-3.}
*
- * @return オペレーションが成功したかどうかを返します。
+ * @return
+ * {@.ja オペレーションが成功したかどうかを返す。}
+ * {@.en If the operation was successfully completed.}
*
- * @exception SDONotExists ターゲットのSDOが存在しない。
- * @exception InvalidParameter 引数 "sProfile" が nullである。
- * @exception NotAvailable SDOは存在するが応答がない。
- * @exception InternalError 内部的エラーが発生した。
+ * @exception SDONotExists
+ * {@.ja ターゲットのSDOが存在しない。}
+ * {@.en The target SDO does not exist.}
+ * @exception InvalidParameter
+ * {@.ja 引数 "sProfile" が nullである。}
+ * {@.en The argument "dependency" is null.}
+ * @exception NotAvailable i
+ * {@.ja SDOは存在するが応答がない。}
+ * {@.en The target SDO is reachable but cannot respond.}
+ * @exception InternalError
+ * {@.ja 内部的エラーが発生した。}
+ * {@.en The target SDO cannot execute the operation
+ * completely due to some internal error.}
*/
public boolean set_dependency(DependencyType dependency)
throws NotAvailable, InternalError {
- rtcout.println(rtcout.TRACE, "Organization_impl.set_dependency()");
+ rtcout.println(Logbuf.TRACE, "Organization_impl.set_dependency()");
try {
m_dependency = dependency;
return true;
@@ -485,9 +734,12 @@
}
/**
- * <p> getObjRef </p>
+ * {@.ja オブジェクトを取得する。}
+ * {@.en Gets the object. }
*
- * @return Organization
+ * @return
+ * {@.ja Organization}
+ * {@.en Organization}
*
*/
public Organization getObjRef() {
@@ -499,67 +751,111 @@
protected Organization m_objref;
/**
- * <p>Organization の識別子</p>
+ * {@.ja Organization の識別子}
*/
protected String m_pId = new String();
/**
- * <p>Organization に関連付けられた SDO メンバのリスト</p>
+ * {@.ja Organization に関連付けられた SDO メンバのリスト}
*/
protected SDO[] m_memberList = new SDO[0];
/**
- * <p>Organization の owner</p>
+ * {@.ja Organization の owner}
*/
protected SDOSystemElement m_varOwner;
/**
- * <p>依存関係のタイプ<br />
- *
- * Owner と member の依存関係を指定する属性。
+ * {@.ja 依存関係のタイプ}
+ * {@.en Dependency type}
+ * <p>
+ * {@.ja Owner と member の依存関係を指定する属性。
* Organization は以下のトポロジパターンを表現することができます。
*
* <ol>
- * <li>owenr が member を管理する階層的構造。この場合 DependencyType は OWNという値を持つ。</li>
+ * <li>owenr が member を管理する階層的構造。
+ * この場合 DependencyType は OWNという値を持つ。</li>
* <li>members が owner を管理する逆向きの階層的構造。
* この場合はDependencyType は OWNER という値を持つ。</li>
* <li>owner と member に依存関係がないフラットな構造。
* この場合はDependencyType は NO_DEPENDENCY という値を持つ。</li>
* </ol>
*
- * <p>SDO および SDOSystemElement のサブクラスは Organization の owner として
+ * <p>SDO および SDOSystemElement のサブクラスは Organization の
+ * owner として
* 振舞うことが出来ます。SDO が owner の場合にはOrganization は上記の
* いずれかのトポロジーパターンをとります。</p>
*
* <ol>
- * <li>Organization が 1. のトポロジーパターンを持つ場合、唯一つの owner SDOは member SDO を制御します。
- * たとえば、エアコン(owner)は、温度センサ(member)、湿度センサ(member)、風量制御器(member)を制御します。
- * <li>Organization が 2. のトポロジを持つ場合は、複数の SDO member が唯一のSDO owner を共有します。
- * たとえば、アンプ(owner)はいくつかのAVコンポーネント(member)から共有されます。</li>
- * <li>SDO ではない SDOSystemElement のサブクラスが owner の場合、以下のようなトポロジー例が考えられます。
+ * <li>Organization が 1. のトポロジーパターンを持つ場合、
+ * 唯一つの owner SDOは member SDO を制御します。
+ * たとえば、エアコン(owner)は、温度センサ(member)、湿度センサ(member)、
+ * 風量制御器(member)を制御します。
+ * <li>Organization が 2. のトポロジを持つ場合は、
+ * 複数の SDO member が唯一のSDO owner を共有します。
+ * たとえば、アンプ(owner)はいくつかのAVコンポーネント(member)から
+ * 共有されます。</li>
+ * <li>SDO ではない SDOSystemElement のサブクラスが owner の場合、
+ * 以下のようなトポロジー例が考えられます。
* <ol>
- * <li>User(owner)-SDO(member): ユーザ(owner) は一つ以上の SDO(member)を管理します。
+ * <li>User(owner)-SDO(member): ユーザ(owner) は一つ以上の SDO(member)を
+ * 管理します。
* これは上記トポロジパタン1.にあたります。</li>
* <li>Location(owner)-SDO(members): 一つ以上の SDO(member) が特定の場所
* = location(owner) で動作している場合、Organization のトポロジパターン
- * は 3. の場合になります。たとえば、複数の PDA がある部屋にあり、互いに同等
- * な関係であり相互に通信可能な場合はこれにあたります。</li>
- * </ol>
- * </li>
- * </ol>
+ * は 3. の場合になります。たとえば、複数の PDA がある部屋にあり、
+ * 互いに同等
+ * な関係であり相互に通信可能な場合は
+ * これにあたります。</li></ol></li></ol>}
+ *
+ * {@.en This attribute specifies the dependency relation between
+ * the owner and
+ * members of the organization.
+ * Organization is used to form the following three patterns of topology.
+ *
+ * -# Hierarchical organization, which indicates owner supervises members.
+ * In this case, DependencyType should hold OWN value (see description
+ * of DependencyType on previous pages).
+ * -# Reversely hierarchical organization, which indicates members
+ * supervise owner. In this case, DependencyType should hold OWNED value
+ * (see description of DependencyType on previous pages).
+ * -# Flat organization, which indicates no dependency exists. In this
+ * case, DependencyType should hold NO_DEPENDENCY value (see description
+ * of DependencyType on previous pages).
+ *
+ * Both an SDO and another subclass of SDOSystemElement can act as owner
+ * of an Organization. When an SDO is an owner, Organization can represent
+ * any of the above three topology patterns.
+ *
+ * - When an Organization represents topology pattern (1), an SDO (owner)
+ * controls one or more SDOs (members). For example, air conditioner
+ * (owner) controls a temperature sensor (member), humidity sensor
+ * (member), and wind flow controller (member).
+ * - When an Organization represents topology pattern (2), multiple
+ * SDOs(members) share an SDO (owner). For example, an amplifier (owner)
+ * is shared by several AV components (members) in an AV stereo.
+ * - When a subclass of SDOSystemElement, which is not an SDO is an owner
+ * examples of the topology are as follows.
+ * -- User (owner)-SDO (members): When a user (owner) supervises one or
+ * more SDOs (members), the organization represents topology pattern 1.
+ * -- Location (owner)-SDO (members): When one or more SDOs (members) are
+ * operating in a specific location (owner), the organization represents
+ * topology pattern 3. For example, multiple PDAs in the same place
+ * (e.g., a room) have equal relationships among them to communicate
+ * with each other.}
*/
protected DependencyType m_dependency;
- /**
- * Organization プロパティ
+ /**
+ * {@.ja Organization プロパティ}
* <p>
- * OrganizationProperty は Organization のプロパティ情報を保持します。
+ * {@.ja OrganizationProperty は Organization のプロパティ情報を保持します。
* 一つの Organization は0個もしくは1個の OrganizationProperty
- * をもちます。</p>
+ * をもちます。}
*
* member:property NVList
*/
OrganizationProperty m_orgProperty = new OrganizationProperty();
/**
- * <p>Organization プロパティ検索用ヘルパークラス</p>
+ * {@.ja Organization プロパティ検索用ヘルパークラス}
*/
class nv_name implements equalFunctor{
public nv_name(final String name) {
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceAdmin.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceAdmin.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceAdmin.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceAdmin.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,488 @@
+package jp.go.aist.rtm.RTC;
+
+import java.lang.Exception;
+
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+import java.util.Vector;
+
+import _SDOPackage.InvalidParameter;
+import _SDOPackage.NVListHolder;
+import _SDOPackage.ServiceProfile;
+import _SDOPackage.ServiceProfileListHolder;
+import _SDOPackage.SDOService;
+import _SDOPackage.SDOServiceHolder;
+
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.Properties;
+import jp.go.aist.rtm.RTC.util.StringUtil;
+
+ /**
+ * {@.ja SDO service 管理クラス}
+ * {@.en SDO service administration class}
+ * <p>
+ * {@.ja
+ * このクラスは、SDO Service を管理するためのクラスである。SDO
+ * Service は OMG SDO Specification において定義されている、SDOが特定
+ * の機能のために提供また要求するサービスの一つである。詳細は仕様にお
+ * いて定義されていないが、本クラスでは以下のように振る舞うサービスで
+ * あるものとし、これらを管理するためのクラスが本クラスである。
+ *
+ * SDO Service においては、SDO/RTCに所有され、ある種のサービスを提供
+ * するものを SDO Service Provider、他のSDO/RTCやアプリケーションが提
+ * 供するサービスオブジェクトの参照を受け取り、それらの機能を利用する
+ * ものを、SDO Service Consumer と呼ぶ。
+ *
+ * SDO Service Provider は他のアプリケーションから呼ばれ、SDO/RTC内部
+ * の機能にアクセスするために用いられる。他のSDO/RTCまたはアプリケー
+ * ションは、
+ *
+ * - SDO::get_service_profiles ()
+ * - SDO::get_service_profile (in UniqueIdentifier id)
+ * - SDO::get_sdo_service (in UniqueIdentifier id)
+ *
+ * のいずれかのオペレーションにより、ServiceProfile または SDO
+ * Service の参照を取得し、機能を利用するためのオペレーションを呼び出
+ * す。他のSDO/RTCまたはアプリケーション上での参照の破棄は任意のタイ
+ * ミングで行われ、サービス提供側では、どこからどれだけ参照されている
+ * かは知ることはできない。一方で、SDO/RTC側も、任意のタイミングでサー
+ * ビスの提供を停止することもできるため、サービスの利用側では、常にい
+ * サービスが利用できるとは限らないものとしてサービスオペレーションを
+ * 呼び出す必要がある。
+ *
+ * 一方、SDO Service Consumer は当該SDO/RTC以外のSDO/RTCまたはアプリ
+ * ケーションがサービスの実体を持ち、当該SDO/RTCにオブジェクト参照を
+ * 含むプロファイルを与えることで、SDO/RTC側からサービスオペレーショ
+ * ンが呼ばれ外部のSDO/RTCまたはアプリケーションが提供する機能を利用
+ * できる。また、オブザーバ的なオブジェクトを与えることで、SDO/RTC側
+ * からのコールバックを実現するためにも利用することができる。コンシュー
+ * マは、プロバイダとは異なり、SDO Configurationインターフェースから
+ * 追加、削除が行われる。関連するオペレーションは以下のとおりである。
+ *
+ * - Configuration::add_service_profile (in ServiceProfile sProfile)
+ * - Configuration::remove_service_profile (in UniqueIdentifier id)
+ *
+ * 外部のSDO/RTCまたはアプリケーションは、自身が持つSDO Servcie
+ * Provider の参照をIDおよびinterface type、プロパティとともに
+ * ServcieProfile にセットしたうえで、add_service_profile() の引数と
+ * して与えることで、当該SDO/RTCにサービスを与える。この際、IDはUUID
+ * など一意なIDでなければならない。また、削除する際にはIDにより対象と
+ * するServiceProfileを探索するため、サービス提供側では削除時までIDを
+ * 保持しておかなければならない。}
+ *
+ *
+ */
+public class SdoServiceAdmin {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ *
+ */
+ public SdoServiceAdmin(RTObject_impl rtobj) {
+ m_rtobj = rtobj;
+ m_allConsumerAllowed = true;
+ rtcout = new Logbuf("SdoServiceAdmin");
+ rtcout.println(Logbuf.TRACE, "SdoServiceAdmin.SdoServiceAdmin(" + rtobj.getProperties().getProperty("instance_name") + ")");
+
+ Properties prop = m_rtobj.getProperties();
+ //------------------------------------------------------------
+ // SDO service provider
+ String[] enabledProviderTypes
+ = prop.getProperty("sdo.service.provider.enabled_services").split(",");
+ rtcout.println(Logbuf.DEBUG,"sdo.service.provider.enabled_services:"+
+ prop.getProperty("sdo.service.provider.enabled_services"));
+
+ Set availableProviderTypes
+ = SdoServiceProviderFactory.instance().getIdentifiers();
+ prop.setProperty("sdo.service.provider.available_services", StringUtil.flatten(availableProviderTypes));
+ rtcout.println(Logbuf.DEBUG,"sdo.service.provider.available_services:"+
+ prop.getProperty("sdo.service.provider.available_services"));
+
+
+ // If types include '[Aa][Ll][Ll]', all types enabled in this RTC
+ Set activeProviderTypes = new HashSet();
+ for (int ic=0; ic < enabledProviderTypes.length; ++ic) {
+ String tmp = enabledProviderTypes[ic];
+ if(tmp.toLowerCase().equals("all")){
+ activeProviderTypes = availableProviderTypes;
+ rtcout.println(Logbuf.DEBUG,"sdo.service.provider.enabled_services: ALL");
+ break;
+ }
+ for (Iterator jc=availableProviderTypes.iterator(); jc.hasNext();) {
+ String str = (String)jc.next();
+ if (str.equals(tmp)) {
+ activeProviderTypes.add(str);
+ }
+ }
+ }
+
+ SdoServiceProviderFactory<SdoServiceProviderBase,String> factory = SdoServiceProviderFactory.instance();
+ for (Iterator ic=activeProviderTypes.iterator(); ic.hasNext();) {
+ String str = (String)ic.next();
+ SdoServiceProviderBase svc
+ = factory.createObject(str);
+
+ ServiceProfile prof = new ServiceProfile();
+ prof.id = str;
+ prof.interface_type = str;
+ prof.service = (SDOService)svc;
+ String propkey = ifrToKey(str);
+ NVListHolder nvholder =
+ new NVListHolder(prof.properties);
+ NVUtil.copyFromProperties(nvholder, prop.getNode(propkey));
+ prof.properties = nvholder.value;
+
+ svc.init(rtobj, prof);
+ m_providers.add(svc);
+ }
+
+ //------------------------------------------------------------
+ // SDO service consumer
+ // getting consumer types from RTC's properties
+
+ String constypes = prop.getProperty("sdo.service.consumer.enabled_services");
+ m_consumerTypes = Arrays.asList(constypes.split(","));
+ rtcout.println(Logbuf.DEBUG,"sdo.service.consumer.enabled_services:"+constypes);
+
+ prop.setProperty("sdo.service.consumer.available_services",
+ StringUtil.flatten(SdoServiceConsumerFactory.instance().getIdentifiers()));
+ rtcout.println(Logbuf.DEBUG,"sdo.service.consumer.available_services:"+ prop.getProperty("sdo.service.consumer.available_services"));
+
+ // If types include '[Aa][Ll][Ll]', all types enabled in this RTC
+ for (Iterator ic=m_consumerTypes.iterator(); ic.hasNext();) {
+ String tmp = (String)ic.next();
+ if(tmp.toLowerCase().equals("all")){
+ m_allConsumerEnabled = true;
+ rtcout.println(Logbuf.DEBUG,"sdo.service.consumer.enabled_services: ALL");
+ }
+ }
+ }
+
+ /**
+ * {@.ja 仮想デストラクタ}
+ * {@.en Virtual destractor}
+ */
+ //public ~SdoServiceAdmin();
+
+ /**
+ *
+ * {@.ja SDO Service Provider の ServiceProfileList を取得する}
+ * {@.en Get ServiceProfileList of SDO Service Provider}
+ *
+ */
+ public ServiceProfile[] getServiceProviderProfiles() {
+ ServiceProfileListHolder prof
+ = new ServiceProfileListHolder();
+ ServiceProfileListHolder prof2
+ = new ServiceProfileListHolder();
+ synchronized (m_provider_mutex) {
+ for(Iterator ic=m_providers.iterator();ic.hasNext();){
+ SdoServiceProviderBase sspb = (SdoServiceProviderBase)ic.next();
+ CORBA_SeqUtil.push_back(prof2, sspb.getProfile());
+ }
+ }
+ return prof.value;
+ }
+
+ /**
+ * {@.ja SDO Service Provider の ServiceProfile を取得する}
+ * {@.en Get ServiceProfile of an SDO Service Provider}
+ * <p>
+ * {@.ja id で指定されたIFR IDを持つSDO Service Provider の
+ * ServiceProfile を取得する。id が NULL ポインタの場合、指定された
+ * id に該当するServiceProfile が存在しない場合、InvalidParameter
+ * 例外が送出される。}
+ * {@.en This operation returnes ServiceProfile of an SDO Service
+ * Provider which has the specified id. If the specified id is
+ * NULL pointer or the specified id does not exist in the
+ * ServiceProfile list, InvalidParameter exception will be thrown.}
+ *
+ * @param id
+ * {@.ja SDO Service provider の IFR ID}
+ * {@.en IFR ID of an SDO Service provider}
+ * @return
+ * {@.ja 指定された id を持つ ServiceProfile}
+ * {@.en ServiceProfile which has the specified id}
+ */
+ public ServiceProfile getServiceProviderProfile(final String id) throws InvalidParameter {
+ String idstr = id;
+ synchronized (m_provider_mutex) {
+ for(Iterator ic=m_providers.iterator();ic.hasNext();){
+ SdoServiceProviderBase sspb = (SdoServiceProviderBase)ic.next();
+ if (idstr.equals(sspb.getProfile().id)) {
+ return sspb.getProfile();
+ }
+ }
+ }
+ throw new InvalidParameter();
+ //return new ServiceProfile();
+ }
+
+ /**
+ * {@.ja SDO Service Provider の Service を取得する}
+ * {@.en Get ServiceProfile of an SDO Service}
+ * <p>
+ * {@.ja id で指定されたIFR IDを持つSDO Service のオブジェクトリファレン
+ * ス を取得する。id が NULL ポインタの場合、指定された id に該当す
+ * るServiceProfile が存在しない場合、InvalidParameter 例外が送出さ
+ * れる。}
+ * {@.en This operation returnes an object reference of an SDO Service
+ * Provider which has the specified id. If the specified id is
+ * NULL pointer or the specified id does not exist in the
+ * ServiceProfile list, InvalidParameter exception will be thrown.}
+ *
+ * @param id
+ * {@.ja SDO Service provider の IFR ID}
+ * {@.en IFR ID of an SDO Service provider}
+ * @return
+ * {@.ja 指定された id を持つ SDO Service のオブジェクトリファレンス}
+ * {@.en an SDO Service reference which has the specified id}
+ *
+ */
+ public SDOService getServiceProvider(final String id) {
+ try{
+ ServiceProfile prof;
+ prof = getServiceProviderProfile(id);
+ SDOServiceHolder sdo
+ = new SDOServiceHolder(prof.service);
+ return sdo.value;
+ }
+ catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
+ * {@.ja SDO service provider をセットする}
+ * {@.en Set a SDO service provider}
+ */
+ public boolean addSdoServiceProvider(final ServiceProfile prof,
+ SdoServiceProviderBase provider) {
+ rtcout.println(Logbuf.TRACE,"SdoServiceAdmin.addSdoServiceProvider(if="+prof.interface_type+")");
+ synchronized (m_provider_mutex) {
+ String id = prof.id;
+ for(Iterator ic=m_providers.iterator();ic.hasNext();){
+ SdoServiceProviderBase sspb = (SdoServiceProviderBase)ic.next();
+ if (id.equals(sspb.getProfile().id)) {
+ rtcout.println(Logbuf.ERROR,"SDO service(id="+prof.id+", ifr="+prof.interface_type+") already exists");
+ return false;
+ }
+ }
+ m_providers.add(provider);
+ }
+ return true;
+ }
+
+ /**
+ * {@.ja SDO service provider を削除する}
+ * {@.en Remove a SDO service provider}
+ */
+ public boolean removeSdoServiceProvider(final String id) {
+ rtcout.println(Logbuf.TRACE,"removeSdoServiceProvider("+id+")");
+ synchronized (m_provider_mutex) {
+ String strid = id;
+ for(Iterator it=m_providers.iterator();it.hasNext();){
+ SdoServiceProviderBase sspb = (SdoServiceProviderBase)it.next();
+ if (strid.equals(sspb.getProfile().id)) {
+ sspb.finalize();
+ SdoServiceProviderFactory
+ factory = SdoServiceProviderFactory.instance();
+ factory.deleteObject(sspb);
+ m_providers.remove(sspb);
+ rtcout.println(Logbuf.INFO,"SDO service provider has been deleted: "+id);
+ return true;
+ }
+ }
+ rtcout.println(Logbuf.WARN,"Specified SDO service provider not found: "+id);
+ }
+ return false;
+
+ }
+
+ /**
+ * {@.ja Service Consumer を追加する}
+ * {@.en Add Service Consumer}
+ */
+ public boolean addSdoServiceConsumer(final ServiceProfile sProfile){
+ synchronized (m_provider_mutex) {
+ rtcout.println(Logbuf.TRACE,"addSdoServiceConsumer(IFR = "+sProfile.interface_type+")");
+ // Not supported consumer type -> error return
+ if (!isEnabledConsumerType(sProfile)) { return false; }
+ if (!isExistingConsumerType(sProfile)) { return false; }
+ rtcout.println(Logbuf.DEBUG,"Valid SDO service required");
+ if (sProfile.id.length() < 1) {
+ rtcout.println(Logbuf.WARN,"No id specified. It should be given by clients.");
+ return false;
+ }
+ rtcout.println(Logbuf.DEBUG,"Valid ID specified");
+ }
+ { // re-initialization
+ String id=sProfile.id;
+ for(Iterator it=m_consumers.iterator();it.hasNext();){
+ SdoServiceConsumerBase sscb = (SdoServiceConsumerBase)it.next();
+ if (id.equals(sscb.getProfile().id)) {
+ rtcout.println(Logbuf.INFO,"Existing consumer is reinitilized.");
+ NVListHolder nvlist = new NVListHolder(sProfile.properties);
+ rtcout.println(Logbuf.DEBUG,"Propeteis are: "+
+ NVUtil.toString(nvlist));
+ return sscb.reinit(sProfile);
+ }
+ }
+ }
+ rtcout.println(Logbuf.DEBUG,"SDO service properly initialized.");
+
+ // new pofile
+ SdoServiceConsumerFactory<SdoServiceConsumerBase,String>
+ factory = SdoServiceConsumerFactory.instance();
+ final String ctype = sProfile.interface_type;
+ if (ctype.length() < 1) { return false; }
+ SdoServiceConsumerBase consumer = factory.createObject(ctype);
+ if (consumer == null) {
+ rtcout.println(Logbuf.ERROR,"Hmm... consumer must be created.");
+ return false;
+ }
+ rtcout.println(Logbuf.DEBUG,"An SDO service consumer created.");
+
+ // initialize
+ if (!consumer.init(m_rtobj, sProfile)) {
+ rtcout.println(Logbuf.WARN,"SDO service initialization was failed.");
+ rtcout.println(Logbuf.DEBUG,"id: "+sProfile.id);
+ rtcout.println(Logbuf.DEBUG,"IFR: "+
+ sProfile.interface_type);
+ NVListHolder nvlist = new NVListHolder(sProfile.properties);
+ rtcout.println(Logbuf.DEBUG,"properties: "+
+ NVUtil.toString(nvlist));
+ factory.deleteObject(consumer);
+ rtcout.println(Logbuf.INFO,"SDO consumer was deleted by initialization failure");
+ return false;
+ }
+ rtcout.println(Logbuf.DEBUG,"An SDO service consumer initialized.");
+ rtcout.println(Logbuf.DEBUG,"id: "+sProfile.id);
+ rtcout.println(Logbuf.DEBUG,"IFR: "+
+ sProfile.interface_type);
+ NVListHolder nvlist = new NVListHolder(sProfile.properties);
+ rtcout.println(Logbuf.DEBUG,"properties: "+
+ NVUtil.toString(nvlist));
+
+ // store consumer
+ m_consumers.add(consumer);
+
+ return true;
+ }
+ /**
+ * {@.ja Service Consumer を削除する}
+ * {@.en Remove Service Consumer}
+ *
+ */
+ public boolean removeSdoServiceConsumer(final String id) {
+ synchronized (m_consumer_mutex) {
+ if (id.length() < 1) {
+ rtcout.println(Logbuf.ERROR,"removeSdoServiceConsumer(): id is invalid.");
+ return false;
+ }
+ rtcout.println(Logbuf.TRACE,"removeSdoServiceConsumer(id = "+id+")");
+
+ String strid = id;
+ for(Iterator it=m_consumers.iterator();it.hasNext();){
+ SdoServiceConsumerBase sscb = (SdoServiceConsumerBase)it.next();
+ if (strid.equals(sscb.getProfile().id)) {
+ sscb.finalize();
+ SdoServiceConsumerFactory
+ factory = SdoServiceConsumerFactory.instance();
+ factory.deleteObject(sscb);
+ m_consumers.remove(sscb);
+ rtcout.println(Logbuf.INFO,"SDO service has been deleted: "+id);
+ return true;
+ }
+ }
+ }
+ rtcout.println(Logbuf.WARN,"Specified SDO consumer not found: "+id);
+ return false;
+ }
+
+ /**
+ * {@.ja 許可されたサービス型かどうか調べる}
+ * {@.en If it is enabled service type}
+ *
+ */
+ protected boolean isEnabledConsumerType(final ServiceProfile sProfile){
+ if (m_allConsumerEnabled) { return true; }
+
+ for (Iterator ic=m_consumerTypes.iterator(); ic.hasNext();) {
+ if (ic.next().equals(sProfile.interface_type)) {
+ rtcout.println(Logbuf.DEBUG,sProfile.interface_type+" is supported SDO service.");
+ return true;
+ }
+ }
+ rtcout.println(Logbuf.WARN,"Consumer type is not supported: "+
+ sProfile.interface_type);
+ return false;
+ }
+
+ /**
+ * {@.ja 存在するサービス型かどうか調べる}
+ * {@.en If it is existing service type}
+ *
+ */
+ protected boolean isExistingConsumerType(final ServiceProfile sProfile){
+ SdoServiceConsumerFactory factory=SdoServiceConsumerFactory.instance();
+ Set consumerTypes = factory.getIdentifiers();
+
+ for (Iterator ic=consumerTypes.iterator(); ic.hasNext();) {
+ String str = (String)ic.next();
+ if (str.equals(sProfile.interface_type)) {
+ rtcout.println(Logbuf.DEBUG,sProfile.interface_type+" exists in the SDO service factory.");
+ rtcout.println(Logbuf.PARANOID,"Available SDO serices in the factory: "+ StringUtil.flatten(consumerTypes));
+ return true;
+ }
+ }
+ rtcout.println(Logbuf.WARN,"No available SDO service in the factory: "+
+ sProfile.interface_type);
+ return false;
+ }
+
+ final String getUUID() {
+ return UUID.randomUUID().toString();
+ }
+
+ private String ifrToKey(String ifr) {
+ String[] ifrvstr = ifr.split(":");
+ String str = ifrvstr[1].toLowerCase();
+ str = str.replace(".", "_");
+ str = str.replace("/", ".");
+ return str;
+ }
+ private RTObject_impl m_rtobj;
+
+ private List<String> m_consumerTypes = new ArrayList<String>();
+ private boolean m_allConsumerEnabled;
+ private boolean m_allConsumerAllowed;
+
+ /**
+ * {@.ja Lock 付き SDO ServiceProfileList}
+ * {@.en SDO ServiceProfileList with mutex lock}
+ */
+ private Vector<SdoServiceProviderBase> m_providers = new Vector<SdoServiceProviderBase>();
+ private String m_provider_mutex = new String();
+
+ /**
+ * {@.ja Lock 付き SDO ServiceProfileList}
+ * {@.en SDO ServiceProfileList with mutex lock}
+ */
+ private Vector<SdoServiceConsumerBase> m_consumers = new Vector<SdoServiceConsumerBase>();
+ private String m_consumer_mutex = new String();
+
+ /**
+ * {@.ja logger}
+ * {@.en logger}
+ */
+ protected Logbuf rtcout;
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerBase.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerBase.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerBase.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,184 @@
+package jp.go.aist.rtm.RTC;
+
+import _SDOPackage.ServiceProfile;
+ /**
+ * {@.ja SdoServiceConsumerBase インターフェース。}
+ * {@.en SdoServiceConsumerBase Interface.}
+ * <p>
+ * {@.ja SDOで定義されているSDOサービスのコンシューマを実装するための基底ク
+ * ラス。SDOサービスには、外部から提供サービスをRTC(SDO)側で利用する
+ * SDOサービスコンシューマと、RTC(SDO)自身がSDOサービスを提供するSDO
+ * サービスプロバイダがある。すべてのSDOサービスコンシューマはこの基
+ * 底クラスを継承して実装される。
+ *
+ * このオブジェクトのライフサイクルは以下の通り。
+ * <ul>
+ * <li># オブジェクトは通常、共有オブジェクト (so, DLL) としてコンパイル・
+ * リンクされる。
+ * <li># マネージャに対してロードされるとモジュール初期化関数によりオブ
+ * ジェクトファクトリが、SdoServiceConsumerFactory に対して登録さ
+ * れる。登録のキーにはサービスインターフェースの IFR (interface
+ * repository) ID が利用され、これによりサービスが区別される。
+ * <li># 外部のツールなどからサービスプロバイダがアタッチされた場合、サー
+ * ビスインターフェースの IFR ID が同一である SDO コンシューマがイ
+ * ンスタンス化され、提供されたSDOサービスの ServiceProfile (この
+ * 構造体はサービスのオブジェクトリファレンスを含む) がコンシュー
+ * マにアタッチされる。
+ * <li># このときのアタッチシーケンスは以下の通り。
+ * -# SDO::get_configuration() により Configuration オブジェクトを取得
+ * -# Configuration::add_service_profile() により外部側の
+ * SdoServiceProvider を ServiceProfile により RTC に与える。
+ * -# RTC側でサービスを呼び出す必要が有った場合、この
+ * SdoServiceConsumer が保持しているサービスオブジェクトプロキシ
+ * に対して呼び出しを行う
+ * <li># 最終的に SdoServiceConsumer が不要になった場合には、
+ * Configuration::remove_service_profile() が id とともに呼び出され
+ * SDOサービスコンシューマが RTC から削除される。
+ * </ul>
+ * <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>
+ *
+ * このクラスの実装に当たっては、少なくとも以下の純粋仮想関数を実装す
+ * る必要がある。
+ * <ul>
+ * <li> init(): 初期化関数。与えられた RTObject および ServiceProfile か
+ * ら、当該オブジェクトを初期化する。
+ * <li> reinit(): 再初期化関数。ServiceProfile は設定情報更新のため同一
+ * IDで呼び出されることが有るが、その際にこの関数が新たな
+ * ServiceProfile とともに呼び出される。関数内では、設定の変更など
+ * 再初期化処理を実装する。
+ * <li> getProfile(): 設定されたプロファイルを返す関数。
+ * <li> finalize(): 終了処理。コンシューマがデタッチされる際に呼び出され
+ * る関数。関数内では終了処理を実装する。
+ * </ul>
+ * SdoServiceConsumer は通常共有オブジェクトとしてコンパイル・リンク
+ * される。共有オブジェクトのエントリポイントは通常コンパイルされたファ
+ * イル名の basename + "Init" にしておく。以下に、クラス名、ファイル
+ * 名、エントリポイント関数名の推奨例を示す。
+ * <ul>
+ * <li> 実装クラス名: MySdoServiceConusmer
+ * <li> ファイル名: MySdoServiceConsumer.h. MySdoServiceConsumer.cpp
+ * <li> 共有オブジェクト名: MySdoServiceConsumer.so (or DLL)
+ * <li> エントリポイント関数名: MySdoServiceConsumerInit()
+ * </ul>
+ * エントリポイント関数は通常以下のように、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>}
+ * </p>
+ *
+ */
+
+
+public interface SdoServiceConsumerBase {
+
+ /**
+ * {@.ja コンシューマクラスの初期化関数}
+ * {@.en Initialization function of the consumer class}
+ * <p>
+ * {@.ja このオブジェクトの初期化を行う。外部からSDOサービスが
+ * ServiceProfile とともにアタッチされると、SDOコンシューマがインス
+ * タンス化され、その直後に SDO サービスがアタッチされた RTC と与え
+ * られた ServiceProfile を引数としてこの関数が呼ばれる。
+ *
+ * 関数内では、ServiceProfile 内の SDO サービスリファレンスを
+ * CorbaConsumer クラス等を利用しオブジェクト内に保持するとともに、
+ * properties から設定内容を読み込みサービス固有の設定等を行う。与
+ * えられたサービスのオブジェクトリファレンスが不正、あるいは
+ * properties の内容が不正、等の場合は戻り値に false を返す。}
+ *
+ * @param rtobj
+ * {@.ja このオブジェクトがインスタンス化された RTC}
+ * @param profile
+ * {@.ja 外部から与えられた SDO ServiceProfile}
+ * @return
+ * {@.ja 与えられた SDO Service や ServiceProfile が不正の場合 false}
+ *
+ */
+ public boolean init(RTObject_impl rtobj,
+ final _SDOPackage.ServiceProfile profile);
+ /**
+ * {@.ja コンシューマクラスの再初期化関数}
+ * {@.en Reinitialization function of the consumer class}
+ * <p>
+ * {@.ja このオブジェクトの再初期化を行う。ServiceProfile には id フィー
+ * ルドにセッション固有の UUID がセットされているが、同一の id の場
+ * 合、properties に設定された設定情報の変更や、service フィールド
+ * のサービスの参照の変更が行われる。その際に呼ばれるのがこの
+ * reinit() 関数である。実装では、service フィールドのオブジェクト
+ * リファレンスの同一性を確認し、異なっている場合保持しているリファ
+ * レンスを更新する必要がある。また properties には新たな設定が与え
+ * られている可能性があるので、内容を読み込み設定を更新する。}
+ *
+ * @param profile
+ * {@.ja 新たに与えられた SDO ServiceProfile}
+ * @return
+ * {@.ja 不正な ServiceProfile が与えられた場合は false}
+ *
+ *
+ */
+ public boolean reinit(final _SDOPackage.ServiceProfile profile);
+
+ /**
+ * {@.ja ServiceProfile を返す}
+ * {@.en Getting ServiceProfile}
+ * <p>
+ * {@.ja init()/reinit()で与えられた ServiceProfile は通常オブジェクト内
+ * で保持される。SDO Service 管理フレームワークは管理上このオブジェ
+ * クトに対応する ServiceProfile を必要とするので、この関数では保持
+ * されている ServiceProfile を返す。}
+ *
+ * @return
+ * {@.ja このオブジェクトが保持している ServiceProfile}
+ *
+ */
+ public _SDOPackage.ServiceProfile getProfile();
+
+ /**
+ * {@.ja 終了処理}
+ * {@.en Finalization}
+ * <p>
+ * {@.ja SDOサービスがでタッチされる際に呼び出される終了処理用関数。サー
+ * ビスのでタッチに際して、当該オブジェクトが保持するリソースを解放
+ * するなどの処理を行う。}
+ *
+ *
+ */
+ public void finalize();
+
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerFactory.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerFactory.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerFactory.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceConsumerFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,53 @@
+package jp.go.aist.rtm.RTC;
+
+/**
+ * {@.ja SdoServiceConsumer用ファクトリの実装}
+ * {@.en Implement of factory for SdoServiceConsumer}
+ */
+
+public class SdoServiceConsumerFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
+
+ /**
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ */
+ private SdoServiceConsumerFactory() {
+
+ }
+ /**
+ * {@.ja インスタンス生成。}
+ * {@.en Create instance}
+ *
+ * <p>
+ * {@.ja インスタンスを生成する。}
+ *
+ * @return
+ * {@.ja インスタンス}
+ * {@.en SdoServiceConsumerFactory object}
+ *
+ */
+ public static SdoServiceConsumerFactory instance() {
+ if (factory_global == null) {
+ synchronized (factory_global_mutex) {
+ if (factory_global == null) {
+ try {
+ factory_global = new SdoServiceConsumerFactory();
+ } catch (Exception e) {
+ factory_global = null;
+ }
+ }
+ }
+ }
+
+ return factory_global;
+ }
+ /**
+ * <p> mutex </p>
+ */
+ private static String factory_global_mutex = new String();
+ /**
+ * <p> object </p>
+ */
+ private static SdoServiceConsumerFactory factory_global;
+}
+
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderBase.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderBase.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderBase.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,183 @@
+package jp.go.aist.rtm.RTC;
+
+import _SDOPackage.ServiceProfile;
+import _SDOPackage.SDOServicePOA;
+ /**
+ * {@.ja SdoServiceProviderBase インターフェース。}
+ * {@.en SdoServiceProviderBase Interface.}
+ * <p>
+ * {@.ja SDOで定義されているSDOサービスのプロバイダを実装するための基底クラ
+ * ス。SDOサービスには、外部から提供サービスをRTC(SDO)側で利用する
+ * SDOサービスコンシューマと、RTC(SDO)自身がSDOサービスを提供するSDO
+ * サービスプロバイダがある。すべてのSDOサービスプロバイダはこの基底
+ * クラスを継承して実装される。
+ *
+ * このオブジェクトのライフサイクルは以下の通り。
+ *
+ * -# オブジェクトは通常、共有オブジェクト (so, DLL) としてコンパイル・
+ * リンクされる。
+ * -# マネージャに対してロードされるとモジュール初期化関数によりオブ
+ * ジェクトファクトリが、SdoServiceProviderFactory に対して登録さ
+ * れる。登録のキーにはサービスインターフェースの IFR (interface
+ * repository) ID が利用され、これによりサービスが区別される。
+ * -# rtc.conf等のコンフィギュレーション指定により、有効化することが
+ * 指定されているサービスインプロバイダは、RTCの起動と同時にインス
+ * タンス化される。
+ * -# インスタンス化後、初期化関数 init() が呼ばれる。引数には当該サー
+ * ビスのためのコンフィギュレーションオプションが coil::Propertyに
+ * より渡される。
+ * -# インスタンス化されたSDOサービスプロバイダは
+ * SDO::get_get_sdo_service() により外部からアクセスされる。このと
+ * き、サービスを指定するIDはIFR IDと同じである。このときのアタッ
+ * チシーケンスは以下の通り。
+ * -# RTCがfinalizeされ解体されると同時にSDOサービスプロバイダも解体
+ * されるが、その際にはSdoServiceProviderBase::finalize()がコール
+ * されるので、ここでリソースの解放など終了処理を行う。
+ *
+ * <pre>
+ *
+ * [RTC] [SDO service] [Other]
+ * | : |
+ * | instantiate : |
+ * |------------->: |
+ * | init() | |
+ * |------------->| |
+ * | | get_service_profiles() |
+ * |<--------------------------------------|
+ * | | get_sdo_service() |
+ * |<--------------------------------------|
+ * | | use service |
+ * | |<-----------------------|
+ * | | |
+ * | finalize() | |
+ * |------------->x |
+ * x x |
+ *
+ * </pre>
+ *
+ * このクラスの実装に当たっては、少なくとも以下の純粋仮想関数を実装す
+ * る必要がある。
+ *
+ * - init(): 初期化関数。与えられた RTObject および ServiceProfile か
+ * ら、当該オブジェクトを初期化する。
+ * - reinit(): 再初期化関数。ServiceProfile は設定情報更新のため同一
+ * IDで呼び出されることが有るが、その際にこの関数が新たな
+ * ServiceProfile とともに呼び出される。関数内では、設定の変更など
+ * 再初期化処理を実装する。
+ * - getProfile(): 設定されたプロファイルを返す関数。
+ * - finalize(): 終了処理。コンシューマがデタッチされる際に呼び出され
+ * る関数。関数内では終了処理を実装する。
+ *
+ * SdoServiceProvider は通常共有オブジェクトとしてコンパイル・リンク
+ * される。共有オブジェクトのエントリポイントは通常コンパイルされたファ
+ * イル名の basename + "Init" にしておく。以下に、クラス名、ファイル
+ * 名、エントリポイント関数名の推奨例を示す。
+ *
+ * - 実装クラス名: MySdoServiceConusmer
+ * - ファイル名: MySdoServiceProvider.h. MySdoServiceProvider.cpp
+ * - 共有オブジェクト名: MySdoServiceProvider.so (or DLL)
+ * - エントリポイント関数名: MySdoServiceProviderInit()
+ *
+ * エントリポイント関数は通常以下のように、SdoServiceProviderFactory
+ * に当該コンシューマのファクトリ (と解体ファンクタ) を登録する以下の
+ * ような関数になる。
+ *
+ * <pre>
+ * extern "C"
+ * {
+ * void MySdoServiceProviderInit()
+ * {
+ * RTC::SdoServiceProviderFactory& factory
+ * = RTC::SdoServiceProviderFactory::instance();
+ * factory.addFactory(CORBA_Util::toRepositoryId<OpenRTM::MySdoService>(),
+ * ::coil::Creator< ::RTC::SdoServiceProviderBase,
+ * ::RTC::MySdoServiceProvider>,
+ * ::coil::Destructor< ::RTC::SdoServiceProviderBase,
+ * ::RTC::MySdoServiceProvider>);
+ * }
+ * };
+ * </pre>}
+ *
+ *
+ *
+ */
+
+
+//public interface SdoServiceProviderBase extends SDOServicePOA{
+public interface SdoServiceProviderBase {
+
+ /**
+ * {@.ja コンシューマクラスの初期化関数}
+ * {@.en Initialization function of the consumer class}
+ * <p>
+ * {@.ja このオブジェクトの初期化を行う。外部からSDOサービスが
+ * ServiceProfile とともにアタッチされると、SDOコンシューマがインス
+ * タンス化され、その直後に SDO サービスがアタッチされた RTC と与え
+ * られた ServiceProfile を引数としてこの関数が呼ばれる。
+ *
+ * 関数内では、ServiceProfile 内の SDO サービスリファレンスを
+ * CorbaProvider クラス等を利用しオブジェクト内に保持するとともに、
+ * properties から設定内容を読み込みサービス固有の設定等を行う。与
+ * えられたサービスのオブジェクトリファレンスが不正、あるいは
+ * properties の内容が不正、等の場合は戻り値に false を返す。}
+ *
+ * @param rtobj
+ * {@.ja このオブジェクトがインスタンス化された RTC}
+ * @param profile
+ * {@.ja 外部から与えられた SDO ServiceProfile}
+ * @return
+ * {@.ja 与えられた SDO Service や ServiceProfile が不正の場合 false}
+ *
+ */
+ public boolean init(RTObject_impl rtobj,
+ final _SDOPackage.ServiceProfile profile);
+ /**
+ * {@.ja コンシューマクラスの再初期化関数}
+ * {@.en Reinitialization function of the consumer class}
+ * <p>
+ * {@.ja このオブジェクトの再初期化を行う。ServiceProfile には id フィー
+ * ルドにセッション固有の UUID がセットされているが、同一の id の場
+ * 合、properties に設定された設定情報の変更や、service フィールド
+ * のサービスの参照の変更が行われる。その際に呼ばれるのがこの
+ * reinit() 関数である。実装では、service フィールドのオブジェクト
+ * リファレンスの同一性を確認し、異なっている場合保持しているリファ
+ * レンスを更新する必要がある。また properties には新たな設定が与え
+ * られている可能性があるので、内容を読み込み設定を更新する。}
+ *
+ * @param profile
+ * {@.ja 新たに与えられた SDO ServiceProfile}
+ * @return
+ * {@.ja 不正な ServiceProfile が与えられた場合は false}
+ *
+ *
+ */
+ public boolean reinit(final _SDOPackage.ServiceProfile profile);
+
+ /**
+ * {@.ja ServiceProfile を返す}
+ * {@.en Getting ServiceProfile}
+ * <p>
+ * {@.ja init()/reinit()で与えられた ServiceProfile は通常オブジェクト内
+ * で保持される。SDO Service 管理フレームワークは管理上このオブジェ
+ * クトに対応する ServiceProfile を必要とするので、この関数では保持
+ * されている ServiceProfile を返す。}
+ *
+ * @return
+ * {@.ja このオブジェクトが保持している ServiceProfile}
+ *
+ */
+ public _SDOPackage.ServiceProfile getProfile();
+
+ /**
+ * {@.ja 終了処理}
+ * {@.en Finalization}
+ * <p>
+ * {@.ja SDOサービスがでタッチされる際に呼び出される終了処理用関数。サー
+ * ビスのでタッチに際して、当該オブジェクトが保持するリソースを解放
+ * するなどの処理を行う。}
+ *
+ *
+ */
+ public void finalize();
+
+}
Copied: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderFactory.java (from rev 498, branches/RELENG_1_0/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderFactory.java)
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderFactory.java (rev 0)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SdoServiceProviderFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -0,0 +1,56 @@
+package jp.go.aist.rtm.RTC;
+
+/**
+ * {@.ja SdoServiceProvider用ファクトリの実装}
+ * {@.en Implement of factory for SdoServiceProvider}
+ */
+
+public class SdoServiceProviderFactory<ABSTRACTCLASS,IDENTIFIER> extends FactoryGlobal<ABSTRACTCLASS,IDENTIFIER> {
+
+ /**
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ */
+ private SdoServiceProviderFactory() {
+
+ }
+ /**
+ * {@.ja インスタンス生成。}
+ * {@.en Create instance}
+ *
+ * <p>
+ * {@.ja インスタンスを生成する。}
+ *
+ * @return
+ * {@.ja インスタンス}
+ * {@.en SdoServiceConsumerFactory object}
+ *
+ */
+ public static SdoServiceProviderFactory instance() {
+/*
+ if (factory_global == null) {
+ synchronized (factory_global_mutex) {
+ if (factory_global == null) {
+ try {
+ factory_global = new SdoServiceProviderFactory();
+ } catch (Exception e) {
+ factory_global = null;
+ }
+ }
+ }
+ }
+ return factory_global;
+*/
+ return (SdoServiceProviderFactory)instance("SdoServiceProviderFactory");
+ }
+ /**
+ * <p> mutex </p>
+ */
+ private static String factory_global_mutex = new String();
+ /**
+ * <p> object </p>
+ */
+ private static SdoServiceProviderFactory factory_global;
+}
+
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateAction.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateAction.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateAction.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,20 @@
package jp.go.aist.rtm.RTC;
/**
-* <p>ステートマシン起動アクション用インターフェースです。</p>
-* @param STATE ステートマシンが管理する状態の型(LifeCycleState)
+* {@.ja ステートマシン起動アクション用インターフェース}
+* {@.en Interface for state machine start action}
+* @param STATE
+* {@.ja ステートマシンが管理する状態の型(LifeCycleState)}
+* {@.en Type in state that state machine manages}
*/
public interface StateAction<STATE> {
/**
- * <p>ステートマシンから起動されるアクションです。</p>
+ * {@.ja ステートマシンから起動されるアクション。}
+ * {@.en This is an action started from the state machine.}
*
- * @param state 状態遷移履歴
+ * @param state
+ * {@.ja 状態}
+ * {@.en State holder}
*/
public void doAction(StateHolder<STATE> state);
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,16 +1,30 @@
package jp.go.aist.rtm.RTC;
-/**
- * <p>状態の遷移履歴を保持するクラスです。</p>
- */
+ /**
+ * {@.ja 状態保持用クラス。}
+ * {@.en State holder class}
+ *
+ * <p>
+ * {@.ja 状態を保持するためのホルダークラス。
+ * 現在の状態と、1つ前の状態、遷移予定の状態を保持する。}
+ * {@.en This is a holder class to hold states.
+ * Hold current state, the previous state and the
+ * state to be expected to transfer.}
+ *
+ * @param State
+ * {@.ja 保持する状態の型}
+ * {@.en Type of state for holding}
+ */
public class StateHolder<STATE> {
- /**
- * <p>デフォルトコンストラクタです。</p>
- */
+ /**
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
+ */
public StateHolder() {
}
/**
- * <p>コピーコンストラクタです。</p>
+ * {@.ja コピーコンストラクタ}
+ * {@.en Copy constructor}
*/
public StateHolder(StateHolder sth) {
this.curr = (STATE)sth.curr;
@@ -18,15 +32,18 @@
this.next = (STATE)sth.next;
}
/**
- * <p>現在の状態</p>
+ * {@.ja 現在の状態}
+ * {@.en Current state}
*/
public STATE curr;
/**
- * <p>1つ前の状態</p>
+ * {@.ja 1つ前の状態}
+ * {@.en Previous state}
*/
public STATE prev;
/**
- * <p>次に遷移する状態</p>
+ * {@.ja 次に遷移する状態}
+ * {@.en Next state}
*/
public STATE next;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateMachine.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateMachine.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/StateMachine.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -5,99 +5,196 @@
/**
-* <p>状態マシンクラスです。<br />
-*
-* StateMachine クラスは状態マシンを実現するクラスです。<br />
-*
-* 例: ActiveObjectは状態マシンを持つアクティブオブジェクトであるとします。
-* 状態は3状態 INACTIVE, ACTIVE, ERROR あり、各状態でのEntryやExit動作を
-* 定義したいとすると、以下のように実現されます。</p>
-* <pre>
-* class ActiveObject {
-*
-* public ActiveObject() {
-* m_sm = new StateMachine(3);
-* m_sm.setListener(this);
-*
-* m_sm.setExitAction(INACTIVE, new inactiveExit());
-* :
-* m_sm.setPostDoAction(ERROR, new errorPostDo());
-* m_sm.setTransitionAction(new tratransitionnsition());
-*
-* StateHolder st = new StateHolder();
-* st.prev = LifeCycleState.INACTIVE_STATE;
-* st.curr = LifeCycleState.INACTIVE_STATE;
-* st.next = LifeCycleState.INACTIVE_STATE;
-* m_sm.setStartState(st);
-* m_sm.goTo(LifeCycleState.INACTIVE_STATE);
-* }
-*
-* private class inactiveExit implements StateAction {
-* public Object doAction(StateHolder state) {
-* }
-* }
-* :
-* private class errorPostDo implements StateAction {
-* public Object doAction(StateHolder state) {
-* }
-* }
-* private class tratransitionnsition implements StateAction {
-* public Object doAction(StateHolder state) {
-* }
-* }
-*
-* private StateMachine<MyState, bool, ActiveObject> m_sm;
-* }
-* </pre>
-* 状態を持たせたいクラスは以下の条件を満たすように実装しなければなりません。
-* <ol>
-* <li> 状態を定義
-* <li> StateMachine のテンプレート引数は、<br>
-* <状態の型(MyState), アクション関数の戻り型(RESULT), 当該オブジェクトの型>
-* <li> StateMachine のコンストラクタ引数は状態の数
-* <ol>
-* <li> 各状態毎に, set(Entry|PreDo|Do|PostDo|Exit)Action でアクションを実行するクラスを設定
-* <li> 状態遷移時のアクションを実行するクラスを setTransitionAction() で設定。
-* </ol>
-* <li> 遷移時のアクションは、与えられた現在状態、次状態、前状態を元に、
-* ユーザが実装しなければなりません。
-* <li> 状態の変更は goTo() で、状態のチェックは isIn(state) で行います。
-* <li> goTo()は次状態を強制的にセットする関数であり、遷移の可否は、
-* ユーザが現在状態を取得し判断するロジックを実装しなければなりません。
-* </ol>
-*
-* このクラスは、一つの状態に対して、
-* <ul>
-* <li> Entry action
-* <li> PreDo action
-* <li> Do action
-* <li> PostDo action
-* <li> Exit action
-* </ul>
-* 5つのアクションが定義することができます。
-* Transition action はあらゆる状態間遷移で呼び出されるアクションで、
-* その振る舞いはユーザが定義しなければなりません。
-*
-* このクラスは以下のようなタイミングで各アクションが実行されます。
-*
-* <ul>
-* <li> 状態が変更され(A->B)状態が遷移する場合 <br>
-* (A:Exit)->|(状態更新:A->B)->(B:Entry)->(B:PreDo)->(B:Do)->(B:PostDo)
-*
-* <li> 状態が変更されず、B状態を維持する場合 (|はステップの区切りを表す)<br>
-* (B(n-1):PostDo)->|(B(n):PreDo)->(B(n):Do)->(B(n):PostDo)->|(B(n+1):PreDo)<br>
-* PreDo, Do, PostDo が繰り返し実行されます。
-*
-* <li> 自己遷移する場合 <br>
-* (B(n-1):PostDo)->(B(n-1):Exit)->|(B(n):Entry)->(B(n):PreDo) <br>
-* 一旦 Exit が呼ばれた後、Entry が実行され、以降は前項と同じ動作をします。
-* </ul>
-*/
+ * {@.ja 状態マシンクラス。}
+ * {@.en State machine class}
+ *
+ * <p>
+ * {@.ja StateMachine クラスは状態マシンを実現するクラス。<br />
+ *
+ * 例: ActiveObjectは状態マシンを持つアクティブオブジェクトであるとする。
+ * 状態は3状態 INACTIVE, ACTIVE, ERROR あり、各状態でのEntryやExit動作を
+ * 定義したいとすると、以下のように実現される。
+ * <pre>
+ * class ActiveObject {
+ *
+ * public ActiveObject() {
+ * m_sm = new StateMachine(3);
+ * m_sm.setListener(this);
+ *
+ * m_sm.setExitAction(INACTIVE, new inactiveExit());
+ * :
+ * m_sm.setPostDoAction(ERROR, new errorPostDo());
+ * m_sm.setTransitionAction(new tratransitionnsition());
+ *
+ * StateHolder st = new StateHolder();
+ * st.prev = LifeCycleState.INACTIVE_STATE;
+ * st.curr = LifeCycleState.INACTIVE_STATE;
+ * st.next = LifeCycleState.INACTIVE_STATE;
+ * m_sm.setStartState(st);
+ * m_sm.goTo(LifeCycleState.INACTIVE_STATE);
+ * }
+ *
+ * private class inactiveExit implements StateAction {
+ * public Object doAction(StateHolder state) {
+ * }
+ * }
+ * :
+ * private class errorPostDo implements StateAction {
+ * public Object doAction(StateHolder state) {
+ * }
+ * }
+ * private class tratransitionnsition implements StateAction {
+ * public Object doAction(StateHolder state) {
+ * }
+ * }
+ *
+ * private StateMachine<MyState, bool, ActiveObject> m_sm;
+ * }
+ * </pre>
+ * 状態を持たせたいクラスは以下の条件を満たすように実装しなければならない。
+ * <ol>
+ * <li> 状態を定義
+ * <li> StateMachine のテンプレート引数は、<br>
+ * <状態の型(MyState), アクション関数の戻り型(RESULT), 当該オブジェクトの型>
+ * <li> StateMachine のコンストラクタ引数は状態の数
+ * <ol>
+ * <li> 各状態毎に, set(Entry|PreDo|Do|PostDo|Exit)Action でアクションを
+ * 実行するクラスを設定
+ * <li> 状態遷移時のアクションを実行するクラスを setTransitionAction() で設定。
+ * </ol>
+ * <li> 遷移時のアクションは、与えられた現在状態、次状態、前状態を元に、
+ * ユーザが実装しなければならない。
+ * <li> 状態の変更は goTo() で、状態のチェックは isIn(state) で行う。
+ * <li> goTo()は次状態を強制的にセットする関数であり、遷移の可否は、
+ * ユーザが現在状態を取得し判断するロジックを実装しなければならない。
+ * </ol>
+ *
+ * このクラスは、一つの状態に対して、
+ * <ul>
+ * <li> Entry action
+ * <li> PreDo action
+ * <li> Do action
+ * <li> PostDo action
+ * <li> Exit action
+ * </ul>
+ * 5つのアクションが定義することができる。
+ * Transition action はあらゆる状態間遷移で呼び出されるアクションで、
+ * その振る舞いはユーザが定義しなければならない。
+ *
+ * このクラスは以下のようなタイミングで各アクションが実行される。
+ *
+ * <ul>
+ * <li> 状態が変更され(A->B)状態が遷移する場合 <br>
+ * (A:Exit)->|(状態更新:A->B)->(B:Entry)->(B:PreDo)->(B:Do)->(B:PostDo)
+ *
+ * <li> 状態が変更されず、B状態を維持する場合 (|はステップの区切りを表す)<br>
+ * (B(n-1):PostDo)->|(B(n):PreDo)->(B(n):Do)->(B(n):PostDo)->|(B(n+1):PreDo)<br>
+ * PreDo, Do, PostDo が繰り返し実行される。
+ *
+ * <li> 自己遷移する場合 <br>
+ * (B(n-1):PostDo)->(B(n-1):Exit)->|(B(n):Entry)->(B(n):PreDo) <br>
+ * 一旦 Exit が呼ばれた後、Entry が実行され、以降は前項と同じ動作をする。
+ * </ul>}
+ * {@.en StateMachine class is a class to realize a state machine.
+ *
+ * Example: ActiveObject assumes to be an active object that has
+ * the state machine.
+ * There are three states such as INACTIVE, ACTIVE and ERROR state,
+ * and if you want to define Entry or Exit action, this class will realize
+ * as follows:
+ * <pre>
+ * class ActiveObject
+ * {
+ * public:
+ * enum MyState { INACTIVE, ACTIVE, ERROR };
+ * typedef States<MyState> MyStates;
+ *
+ * ActiveObject()
+ * : m_sm(3)
+ * {
+ * m_sm.setNOP(&ActiveObject::nullAction);
+ * m_sm.setListener(this);
+ *
+ * m_sm.setExitAction(INACTIVE, &ActiveObject::inactiveExit);
+ * :
+ * m_sm.setPostDoAction(ERROR, &ActiveObject::errorPostDo);
+ * m_sm.setTransitionAction(&ActiveObject:transition);
+ * };
+ *
+ * bool nullAction(MyStates st) {};
+ * bool inactiveExit(MyStates st) {};
+ * :
+ * bool errorPostDo(MyStates st) {};
+ * bool transition(MyStates st) {};
+ *
+ * private:
+ * StateMachine<MyState, bool, ActiveObject> m_sm;
+ * };
+ * </pre>
+ * If you want to give a class to some states, you must implement the class to
+ * satisfy the following conditions:
+ * <ol>
+ * <li> You must define states by enum.
+ * <li> Template arguments of StateMachine must be
+ * <type of state(MyState), listener object, state holder,callback function>
+ * <li> Constructor arguments of StateMachine must be the number of the states.
+ * <li> You must set the following action functions as a function of
+ * (Return _function_name_(States))
+ * <ol>
+ * <li> You must define a function that does not do anything and give with
+ * setNOP.
+ * <li> You must set actions to each state
+ * by set(Entry|PreDo|Do|PostDo|Exit)Action.
+ * <li> You should set actions at the state transition by
+ * setTransitionAction().
+ * </ol>
+ * <li> You must implement action at the transition based on given states, such
+ * as current state, next state and previous state.
+ * <li> You should change states by goTo() and check the state by isIn(state).
+ * <li> goTo() is a function that sets next state forcibly, therefore,
+ * to determine the next state, you must get current state and
+ * implement that logic.
+ * </ol>
+ *
+ * In this class, you can define the following five actions for one state:
+ * <ul>
+ * <li> Entry action
+ * <li> PreDo action
+ * <li> Do action
+ * <li> PostDo action
+ * <li> Exit action
+ * </ul>
+ * Transition action is an action invoked at the transition between any states,
+ * and you must define its behavior.
+ *
+ * This class executes each action according to the following timing.
+ *
+ * <ul>
+ * <li> If the state is changed and transits(A->B) state,<br>
+ * (A:Exit)->|(state update:A->B)->(B:Entry)->(B:PreDo)->(B:Do)->(B:PostDo)
+ *
+ * <li> If the state is not changed and remains B state,
+ * (| shows a step's break)
+ * (B(n-1):PostDo)->|(B(n):PreDo)->(B(n):Do)->(B(n):PostDo)->|(B(n+1):PreDo)
+ * PreDo, Do and PostDo are executed over and over again.
+ *
+ * <li> If the state transits to itself<br>
+ * (B(n-1):PostDo)->(B(n-1):Exit)->|(B(n):Entry)->(B(n):PreDo) <br>
+ * Once Exit is invoked, Entry is executed, and then the same operation
+ * described above will be done from here on.
+ * </ul>}
+ *
+ */
public class StateMachine<STATE, LISTENER> {
/**
- * <p>コンストラクタです。</p>
- *
- * @param num_of_state 状態数
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ *
+ * @param num_of_state
+ * {@.ja ステートマシン中の状態数}
+ * {@.en Number of states in the state machine}
+ *
*/
public StateMachine(int num_of_state) {
m_num = num_of_state;
@@ -111,7 +208,14 @@
}
/**
- * <p>NOP関数を登録します。</p>
+ * {@.ja NOP関数を登録する。}
+ * {@.en Set NOP function}
+ *
+ * <p>
+ * {@.ja NOP関数(何もしない関数)を登録する。}
+ * {@.en Set NOP function that does not do anything}
+ *
+ *
*/
public void setNOP() {
m_entry = new HashMap<STATE, StateAction>();
@@ -124,21 +228,43 @@
}
/**
- * <p>Listener オブジェクトを登録します。</p>
+ * {@.ja Listener オブジェクトを登録する。}
+ * {@.en Set Listener Object}
*
- * @param listener 登録対象リスナー
+ * <p>
+ * {@.ja 各種アクション実行時に呼び出される Listener オブジェクトを
+ * 登録する。}
+ * {@.en Set Listener Object invoked when various actions are executed.}
+ *
+ * @param listener
+ * {@.ja 登録対象リスナーオブジェクト}
+ * {@.en Listener object}
+ *
*/
public void setListener(LISTENER listener) {
m_listener = listener;
}
/**
- * <p>Entry action 関数を登録します。</p>
+ * {@.ja Entry action 関数を登録する。}
+ * {@.en Set Entry action function}
*
- * @param state 登録対象状態
- * @param call_back 実行アクションクラス
- *
- * @return 処理結果(True/False)
+ * <p>
+ * {@.ja 各状態に入った際に実行される Entry action 用コールバック関数を
+ * 登録する。}
+ * {@.en Set callback function for Entry action that is executed
+ * when entering in each state.}
+ *
+ * @param state
+ * {@.ja 登録対象状態}
+ * {@.en Target state for the set}
+ * @param call_back
+ * {@.ja Entry action 用コールバック関数}
+ * {@.en Callback function for Entry action}
+ *
+ * @return
+ * {@.ja アクション実行結果}
+ * {@.en Action execution result}
*/
public boolean setEntryAction(STATE state, StateAction call_back) {
m_entry.put(state, call_back);
@@ -146,12 +272,24 @@
}
/**
- * <p>PreDo action 関数を登録します。</p>
+ * {@.ja PreDo action 関数を登録する。}
+ * {@.en Set PreDo action function}
*
- * @param state 登録対象状態
- * @param call_back 実行アクションクラス
- *
- * @return 処理結果(True/False)
+ * <p>
+ * {@.ja 各状態内で実行される PreDo action 用コールバック関数を登録する。}
+ * {@.en Set callback function for PreDo action that is executed
+ * in each state.}
+ *
+ * @param state
+ * {@.ja 登録対象状態}
+ * {@.en Target state for the set}
+ * @param call_back
+ * {@.ja PreDo action 用コールバック関数}
+ * {@.en Callback function for PreDo action}
+ *
+ * @return
+ * {@.ja アクション実行結果}
+ * {@.en Action execution result}
*/
public boolean setPreDoAction(STATE state, StateAction call_back) {
m_predo.put(state, call_back);
@@ -159,12 +297,24 @@
}
/**
- * <p>Do action 関数を登録します。</p>
+ * {@.ja Do action 関数を登録する。}
+ * {@.en Set Do action function}
*
- * @param state 登録対象状態
- * @param call_back 実行アクションクラス
- *
- * @return 処理結果(True/False)
+ * <p>
+ * {@.ja 各状態内で実行される Do action 用コールバック関数を登録する。}
+ * {@.en Set callback function for Do action that is executed
+ * in each state.}
+ *
+ * @param state
+ * {@.ja 登録対象状態}
+ * {@.en Target state for the set}
+ * @param call_back
+ * {@.ja Do action 用コールバック関数}
+ * {@.en Callback function for Do action}
+ *
+ * @return
+ * {@.ja アクション実行結果}
+ * {@.en Action execution result}
*/
public boolean setDoAction(STATE state, StateAction call_back) {
m_do.put(state, call_back);
@@ -172,12 +322,24 @@
}
/**
- * <p>Post action 関数を登録します。</p>
+ * {@.ja PostDo action 関数を登録する。}
+ * {@.en Set PostDo action function}
*
- * @param state 登録対象状態
- * @param call_back 実行アクションクラス
- *
- * @return 処理結果(True/False)
+ * <p>
+ * {@.ja 各状態内で実行される PostDo action 用コールバック関数を登録する。}
+ * {@.en Set callback function for PostDo action that is executed
+ * in each state.}
+ *
+ * @param state
+ * {@.ja 登録対象状態}
+ * {@.en Target state for the set}
+ * @param call_back
+ * {@.ja PostDo action 用コールバック関数}
+ * {@.en Callback function for PostDo action}
+ *
+ * @return
+ * {@.ja アクション実行結果}
+ * {@.en Action execution result}
*/
public boolean setPostDoAction(STATE state, StateAction call_back) {
m_postdo.put(state, call_back);
@@ -185,12 +347,23 @@
}
/**
- * <p>Exit action 関数を登録します。</p>
+ * {@.ja Exit action 関数を登録する。}
+ * {@.en Set Exit action function}
*
- * @param state 登録対象状態
- * @param call_back 実行アクションクラス
- *
- * @return 処理結果(True/False)
+ * <p>
+ * {@.ja 各状態内で実行される Exit action 用コールバック関数を登録する。}
+ * Set callback function for Exit action that is executed in each state.
+ *
+ * @param state
+ * {@.ja 登録対象状態}
+ * {@.en Target state for the set}
+ * @param call_back
+ * {@.ja Exit action 用コールバック関数}
+ * {@.en Callback function for Exit action}
+ *
+ * @return
+ * {@.ja アクション実行結果}
+ * {@.en Action execution result}
*/
public boolean setExitAction(STATE state, StateAction call_back) {
m_exit.put(state, call_back);
@@ -198,11 +371,22 @@
}
/**
- * <p>State transition action 関数を登録します。</p>
+ * {@.ja State transition action 関数を登録する。}
+ * {@.en Set state transition action function}
*
- * @param call_back 実行アクションクラス
- *
- * @return 処理結果(True/False)
+ * <p>
+ * {@.ja 状態遷移時に実行される State transition action 用コールバック関数を
+ * 登録する。}
+ * {@.en Set callback function for State transition action that is executed
+ * when transiting to the state.}
+ *
+ * @param call_back
+ * {@.ja State transition 用コールバック関数}
+ * {@.en Callback function for State transition}
+ *
+ * @return
+ * {@.ja アクション実行結果}
+ * {@.en Action execution result}
*/
public boolean setTransitionAction(StateAction call_back) {
m_transit = call_back;
@@ -210,10 +394,17 @@
}
/**
- * <p>初期状態をセットします。</p>
- *
- * @param states 初期状態(1つ前,現在,遷移予定)
- */
+ * {@.ja 初期状態をセットする。}
+ * {@.en Set the initial state}
+ *
+ * <p>
+ * {@.ja ステートマシンの初期状態を設定する。}
+ * {@.en Set the initial state of the state machine.}
+ *
+ * @param states
+ * {@.ja 初期状態(1つ前,現在,遷移予定)}
+ * {@.en Initial state}
+ */
public void setStartState(StateHolder states) {
m_states.curr = (STATE)(states.curr);
m_states.prev = (STATE)states.prev;
@@ -221,38 +412,78 @@
}
/**
- * <p>現在の状態を取得します。</p>
- *
- * @return 現在の状態
- */
+ * {@.ja 現在の状態を取得する}
+ * {@.en Get current state}
+ *
+ *
+ * @return
+ * {@.ja 現在の状態}
+ * {@.en Current state}
+ *
+ */
public synchronized STATE getState() {
return m_states.curr;
}
/**
- * <p>現在状態を確認します。</p>
- *
- * @param state 確認対象の状態
- *
- * @return 確認結果
- */
+ * {@.ja 現在状態を確認。}
+ * {@.en Check current state}
+ *
+ * <p>
+ * {@.ja 現在の状態が、引数で指定した状態と一致するか確認する。}
+ * {@.en Check whether current state matches the state specified
+ * by argument.}
+ *
+ * @param state
+ * {@.ja 確認対象状態}
+ * {@.en Target state for the check}
+ *
+ * @return
+ * {@.ja 状態確認結果}
+ * {@.en Check state result}
+ */
public synchronized boolean isIn(STATE state) {
if( m_states.curr == state ) return true;
return false;
}
/**
- * <p>状態を変更します。</p>
- *
- * @param state 遷移先の状態
- */
+ * {@.ja 状態を遷移。}
+ * {@.en Transit State}
+ *
+ * <p>
+ * {@.ja 指定した状態に状態を遷移する。
+ * 本関数は次状態を強制的にセットする関数である。
+ * このため、遷移の可否は、ユーザが現在状態を取得し判断するロジックを
+ * 実装しなければならない。
+ * 遷移先が現在の状態と同じ場合には、自己遷移フラグをセットする。}
+ * {@.en Transit to the specified state.
+ * This function sets the next state forcibly.
+ * Therefore, to determine the next state, users must get current state
+ * and implement that logic.
+ * If transit destination is the same as the current state, flag of
+ * self-transition will be set.}
+ *
+ * @param state
+ * {@.ja 遷移先状態}
+ * {@.en State of the transition destination}
+ */
public synchronized void goTo(STATE state) {
m_states.next = state;
}
/**
- * <p>StateMachineの駆動用クラスです。</p>
- */
+ * {@.ja 駆動関数。}
+ * {@.en Worker function}
+ *
+ * <p>
+ * {@.ja ステートマシンの駆動関数。
+ * 実際の状態遷移および状態遷移発生時の各アクションの呼びだしを実行する。}
+ * {@.en This is a worker function of the state machine.
+ * Execute the invocation of each action at actual state transition and the
+ * state transition occurrence.}
+ *
+ */
public void worker() {
StateHolder state;
@@ -310,39 +541,51 @@
}
/**
- * <p>状態数</p>
- */
+ * {@.ja 状態数}
+ * {@.en Number of state}
+ */
protected int m_num;
/**
- * <p>リスナー</p>
- */
+ * {@.ja コールバック関数用リスナー}
+ * {@.en Callback function for listener}
+ */
protected LISTENER m_listener;
/**
- * <p>Entry Action</p>
- */
+ * {@.ja Entry action 用コールバック関数}
+ * {@.en Callback function for Entry action}
+ */
protected HashMap<STATE, StateAction> m_entry;
/**
* <p>Pre Do Action</p>
*/
+ /**
+ * {@.ja PreDo action 用コールバック関数}
+ * {@.en Callback function for PreDo action}
+ */
protected HashMap<STATE, StateAction> m_predo;
/**
- * <p>Do Action</p>
- */
+ * {@.ja Do action 用コールバック関数}
+ * {@.en Callback function for Do action}
+ */
protected HashMap<STATE, StateAction> m_do;
/**
- * <p>Post Do Action</p>
- */
+ * {@.ja PostDo action 用コールバック関数}
+ * {@.en Callback function for PostDo action}
+ */
protected HashMap<STATE, StateAction> m_postdo;
/**
- * <p>Exit Action</p>
- */
+ * {@.ja Exit action 用コールバック関数}
+ * {@.en Callback function for Exit action}
+ */
protected HashMap<STATE, StateAction> m_exit;
/**
- * <p>遷移Action</p>
- */
+ * {@.ja State transition action 用コールバック関数}
+ * {@.en Callback function for State transition action}
+ */
protected StateAction m_transit;
/**
- * <p>ステートマシンが保持する状態</p>
- */
+ * {@.ja 現在の状態情報}
+ * {@.en Current state information}
+ */
protected StateHolder<STATE> m_states = new StateHolder<STATE>();
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SyncCallback.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SyncCallback.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/SyncCallback.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,20 +1,27 @@
package jp.go.aist.rtm.RTC;
/**
- * <p>ログ同期用インターフェースです。</p>
+ * {@.ja ログ同期用インターフェース}
+ * {@.en Interface for log synchronization}
*/
class SyncCallback {
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*/
public SyncCallback() {
}
/**
- * <p>ログを同期します。(未実装)</p>
+ * {@.ja ログを同期します(未実装)。}
+ * {@.en Synchronizes the log.(no implement)}
*
- * @param s ログ出力文字列
+ * @param s
+ * {@.ja ログ出力文字列}
+ * {@.en Log output string}
*
- * @return 実行結果
+ * @return
+ * {@.ja 実行結果}
+ * {@.en result}
*/
public int operator(final String s){
return 0;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/TaskFuncBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/TaskFuncBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/TaskFuncBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,48 +1,75 @@
-package jp.go.aist.rtm.RTC;
-
-import java.lang.reflect.Method;
-/**
- * <p> </p>
- *
- */
-public class TaskFuncBase {
- /**
- * <p> </p>
- */
- public TaskFuncBase(Object obj, String func) {
- m_obj = obj;
- m_class = obj.getClass();
- try {
- Class[] parameterTypes = null;
- m_method = m_class.getMethod(func, parameterTypes);
- }
- catch(NoSuchMethodException e){
- //getMethod throws
- }
- }
- /**
- * <p> </p>
- */
- public int svc() {
- if(m_method != null && m_class != null){
- try {
- Object[] args = null;
- Integer intg = (Integer)m_method.invoke(m_obj ,args);
- return intg.intValue();
- }
- catch(java.lang.IllegalAccessException e){
- //invoke throws
- }
- catch(java.lang.IllegalArgumentException e){
- //invoke throws
- }
- catch(java.lang.reflect.InvocationTargetException e){
- //invoke throws
- }
- }
- return 0;
- }
- protected Method m_method = null;
- protected Class m_class = null;
- protected Object m_obj = null;
-};
+package jp.go.aist.rtm.RTC;
+
+import java.lang.reflect.Method;
+ /**
+ * {@.ja TaskFuncBase クラス}
+ * {@.en TaskFuncBase class}
+ */
+public class TaskFuncBase {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param obj
+ * {@.ja オブジェクト}
+ * {@.en obj Object.}
+ * @param func
+ * {@.ja 関数}
+ * {@.en func Function.}
+ *
+ */
+ public TaskFuncBase(Object obj, String func) {
+ m_obj = obj;
+ m_class = obj.getClass();
+ try {
+ Class[] parameterTypes = null;
+ m_method = m_class.getMethod(func, parameterTypes);
+ }
+ catch(NoSuchMethodException e){
+ //getMethod throws
+ }
+ }
+
+ /**
+ * {@.ja オブジェクトの関数実行。}
+ * {@.en Functor}
+ *
+ * <p>
+ * {@.ja オブジェクトの関数を実行する。}
+ * {@.en Execute a function of the object.}
+ */
+ public int svc() {
+ if(m_method != null && m_class != null){
+ try {
+ Object[] args = null;
+ Integer intg = (Integer)m_method.invoke(m_obj ,args);
+ return intg.intValue();
+ }
+ catch(java.lang.IllegalAccessException e){
+ //invoke throws
+ }
+ catch(java.lang.IllegalArgumentException e){
+ //invoke throws
+ }
+ catch(java.lang.reflect.InvocationTargetException e){
+ //invoke throws
+ }
+ }
+ return 0;
+ }
+ /**
+ * {@.ja メソッド}
+ * {@.en method}
+ */
+ protected Method m_method = null;
+ /**
+ * {@.ja クラス}
+ * {@.en class}
+ */
+ protected Class m_class = null;
+ /**
+ * {@.ja オブジェクト}
+ * {@.en object}
+ */
+ protected Object m_obj = null;
+};
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/TimeMeasure.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/TimeMeasure.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/TimeMeasure.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -4,36 +4,66 @@
import java.lang.System;
import java.lang.Math;
import jp.go.aist.rtm.RTC.util.TimeValue;
-/**
-* <p>TimeMeasure</p>
-*/
-
- /*!
- * TimeMeasure object
+ /**
+ * {@.ja TimeMeasure クラス。}
+ * {@.en TimeMeasure class}
*
- * This object is used for getting statistics of code execution time.
+ * <p>
+ * {@.ja このクラスは、コード実行時間の統計を取る為に使用します。
+ * get_stat を使用してコード実行の最大・最小・平均・標準偏差時間を
+ * 計測できます。}
+ * {@.en This class is used for getting statistics of code execution time.
* Using get_stat you can get maximum, minimum, mean and standard
- * deviation time for code execution.
+ * deviation time for code execution.}
+ *
*/
public class TimeMeasure {
+ /**
+ * {@.ja 時間統計用クラス。}
+ * {@.en Class for time statistics}
+ */
public class Statistics {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ */
public Statistics() {
max_interval = 0.0;
min_interval = 0.0;
mean_interval = 0.0;
std_deviation = 0.0;
}
+ /**
+ * {@.ja 最大値}
+ * {@.en max interval}
+ */
public double max_interval;
+ /**
+ * {@.ja 最小値}
+ * {@.en minimum interval}
+ */
public double min_interval;
+ /**
+ * {@.ja 平均値}
+ * {@.en mean interval}
+ */
public double mean_interval;
+ /**
+ * {@.ja 標準偏差}
+ * {@.en Standard deviation}
+ */
public double std_deviation;
};
- /*!
- * @brief Time statictics object for profiling.
- *
- * Constructor
+ /**
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ *
+ * <p>
+ * {@.ja 時間統計のプロファイリング}
+ * {@.en Time Statistics object for profiling.}
+ *
*/
public TimeMeasure(int buflen) {
m_begin.convert(0.0);
@@ -48,10 +78,14 @@
}
}
- /*!
- * @brief Time statictics object for profiling.
- *
- * Constructor
+ /**
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ *
+ * <p>
+ * {@.ja 時間統計のプロファイリング}
+ * {@.en Time Statistics object for profiling.}
+ *
*/
public TimeMeasure() {
int buflen = 100;
@@ -67,10 +101,11 @@
}
}
- /*!
- * @brief Begin time measurement for time statistics.
+ /**
+ * {@.ja 時間統計の計測を開始する。}
+ * {@.en Begin time measurement for time statistics.}
*
- * Begin time measurement for time statistics
+ *
*/
public void tick() {
double dtm = (double)System.currentTimeMillis();
@@ -78,10 +113,12 @@
}
- /*!
- * @brief Finish time measurement for time statistics.
+ /**
+ * {@.ja 時間統計の計測を終了する。}
+ * {@.en Finish time measurement for time statistics}
+ * <p>
+ * {@.en End of time measurement for time statistics.}
*
- * End of time measurement for time statistics
*/
public void tack() {
if (m_begin.sec() == 0) {
@@ -99,16 +136,21 @@
}
/**
- * <p> interval </p>
+ * {@.ja 経過時間を取得する。}
+ * {@.en Get a interval time}
*
+ * @return
+ * {@.ja TimeValue オブジェクト}
+ * {@.en TimeValue object}
+ *
*/
public TimeValue interval() {
return m_interval;
}
/**
- * <p> reset </p>
- *
+ * {@.ja 統計関連データの初期化。}
+ * {@.en Initialize for statistics related data}
*/
public void reset() {
m_count = 0;
@@ -117,20 +159,32 @@
}
- /*!
- * Get number of time measurement buffer
+ /**
+ * {@.ja 時間統計バッファサイズを取得する。}
+ * {@.en Get number of time measurement buffer}
*
- * @brief Get number of time measurement buffer.
+ * @return
+ * {@.ja 計測件数}
+ * {@.en Measurement count}
*
*/
public int count() {
return m_recurred ? m_record.size() : m_count;
}
- /*!
- * @brief Get total statistics.
- * Get total statistics
- * s Statistics Class
+ /**
+ * {@.ja 統計データの総計を取得する。}
+ * {@.en Get total statistics}
+ *
+ *
+ * @param s
+ * {@.ja Statistics クラス}
+ * {@.en Statistics Class}
+ *
+ * @return
+ * {@.ja true: データあり, false: データなし}
+ * {@.en true: Data found, false: Data not found}
+ *
*/
public boolean getStatistics(Statistics s) {
s.max_interval = (double)0;
@@ -163,8 +217,14 @@
}
/**
- * <p> getStatistics </p>
+ * {@.ja 統計結果を取得する。}
+ * {@.en Get statistics result}
*
+ *
+ * @return
+ * {@.ja 統計結果}
+ * {@.en Statistics result}
+ *
*/
public Statistics getStatistics() {
Statistics s = new Statistics();
@@ -174,8 +234,13 @@
}
/**
- * <p> createStatistics </p>
+ * {@.ja Statistics クラスの生成。}
+ * {@.en Creation of Statistics class.}
*
+ * <p>
+ * {@.ja Statisticsクラスを生成する。}
+ * {@.en Creates Statistics class.}
+ *
*/
public Statistics createStatistics() {
Statistics s = new Statistics();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/BufferBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/BufferBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/BufferBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -5,146 +5,441 @@
import jp.go.aist.rtm.RTC.buffer.ReturnCode;
-/**
- * <p>バッファのインタフェースです。</p>
- *
- * @param <DataType> バッファ内のデータ型を指定します。
- */
+ /**
+ * {@.ja BufferBase インターフェース。}
+ * {@.en BufferBase Interface.}
+ *
+ * <p>
+ * {@.ja 種々のバッファのための抽象インターフェースクラス。
+ * 具象バッファクラスは、以下の純粋仮想関数の実装を提供しなければならない。
+ * \<DataType\>としてバッファ内で保持するデータ型を指定する。
+ *
+ * publicインターフェースとして以下のものを提供する。<ul>
+ * <li> length(): バッファの長さを返す
+ * <li> length(n): バッファ長をnにセットする
+ * <li> reset(): バッファのポインタをリセットする</li></ul>
+ *
+ * 書込み関連<ul>
+ * <li> wptr(n=0): 現在の書き込み対象の要素のn個先のポインタを返す。
+ * <li> advanceWptr(n=1): 書込みポインタをn進める。
+ * <li> put(): 現在の書き込み位置に書き込む、ポインタは進めない。
+ * <li> write(): バッファに書き込む。ポインタは1つすすむ。
+ * <li> writable(): 書込み可能な要素数を返す。
+ * <li> full(): バッファがフル状態。</li></ul>
+ *
+ * 読み出し関連<ul>
+ * <li> rptr(n=0): 現在の読み出し対象のn個先のポインタを返す。
+ * <li> advanceRptr(n=1): 読み出しポインタをn進める。
+ * <li> get(): 現在の読み出し位置から読む。ポインタは進めない。
+ * <li> read(): バッファから読み出す。ポインタは1つすすむ。
+ * <li> readable(): 読み出し可能要素数を返す。
+ * <li> empty(): バッファが空状態。</li></ul>}
+ * {@.en This is the abstract interface class for various Buffer.
+ * Concrete buffer classes must implement the following pure virtual
+ * functions.
+ * The users specify data type to hold it in a buffer as \<DataType\>.
+ *
+ * This class provides public interface as follows.<ul>
+ * <li> write(): Write data into the buffer.
+ * <li> read(): Read data from the buffer.
+ * <li> length(): Get the buffer length.
+ * <li> isFull(): Check on whether the buffer is full.
+ * <li> isEmpty(): Check on whether the buffer is empty.</li></ul>
+ *
+ * This class provides protected interface as follows.<ul>
+ * <li> put(): Store data into the buffer.
+ * <li> get(): Get data from the buffer.</li></ul>}
+ *
+ *
+ * @param <DataType>
+ * {@.ja バッファに格納するデータ型}
+ * {@.en DataType Data type to be stored to the buffer.}
+ */
public interface BufferBase<DataType> {
/**
- * <p> init </p>
+ * {@.ja バッファの設定}
+ * {@.en Set the buffer}
*
* @param prop
+ * {@.ja プロパティ}
+ * {@.en Properties}
*/
public void init(final Properties prop);
/**
- * <p> reset </p>
- *
- * @return ReturnCode
- */
+ * {@.ja バッファの状態をリセットする。}
+ * {@.en Reset the buffer status}
+ *
+ * <p>
+ * {@.ja バッファの読み出しポインタと書き込みポインタの位置をリセットする。}
+ * {@.en Pure virtual function to reset the buffer status.}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * NOT_SUPPORTED: リセット不可能
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * NOT_SUPPORTED: The buffer status cannot be reset.
+ * BUFFER_ERROR: Failed}
+ */
public ReturnCode reset();
/**
- * <p> wptr </p>
- *
+ * {@.ja バッファの現在の書込み要素のポインタ。}
+ * {@.en Get the writing pointer}
+ *
+ * <p>
+ * {@.ja バッファの現在の書込み要素のポインタまたは、n個先のポインタを返す}
+ * {@.en Pure virtual function to get the writing pointer.}
+ *
* @param n
- * @return DataType
- */
+ * {@.ja 書込みポインタ + n の位置のポインタ}
+ * {@.en writeing pinter + n previous pointer}
+ * @return
+ * {@.ja 書込み位置のポインタ}
+ * {@.en writing pointer}
+ */
public DataType wptr(int n);
/**
- * <p> wptr </p>
- *
- * @return DataType
- */
+ * {@.ja バッファの現在の書込み要素のポインタ。}
+ * {@.en Get the writing pointer}
+ *
+ * <p>
+ * {@.ja バッファの現在の書込む}
+ * {@.en Pure virtual function to get the writing pointer.}
+ *
+ * @return
+ * {@.ja 書込み位置のポインタ}
+ * {@.en writing pointer}
+ */
public DataType wptr();
/**
- * <p> advanceWptr </p>
+ * {@.ja 書込みポインタを進める。}
+ * {@.en Forward n writing pointers.}
+ *
+ * <p>
+ * {@.ja 現在の書き込み位置のポインタを n 個進める。}
+ * {@.en Pure virtual function to forward n writing pointers.}
+ *
+ * @param n
+ * {@.ja 書込みポインタ + n の位置のポインタ}
+ * {@.en writeing pinter + n previous pointer}
*
- * @param n
- * @return ReturnCode
- */
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
+ */
public ReturnCode advanceWptr(int n);
/**
- * <p> advanceWptr </p>
- *
- * @return ReturnCode
- */
+ * {@.ja 書込みポインタを進める。}
+ * {@.en Forward n writing pointers.}
+ *
+ * <p>
+ * {@.ja 現在の書き込み位置のポインタを 1 個進める。}
+ * {@.en Pure virtual function to forward 1 writing pointers.}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
+ */
public ReturnCode advanceWptr();
/**
- * <p> writable </p>
- *
- * @return size_t
+ * {@.ja バッファに書込み可能な要素数。}
+ * {@.en Get a writable number.}
+ *
+ * <p>
+ * {@.ja バッファに書込み可能な要素数を返す。}
+ * {@.en Pure virtual function to get a writable number.}
+ *
+ * @return
+ * {@.ja 書き込み可能な要素数}
+ * {@.en value writable number}
*/
public int writable();
/**
- * <p> full </p>
- * Check on whether the buffer is full
+ * {@.ja バッファfullチェック。}
+ * {@.en Check on whether the buffer is full.}
+ *
+ * <p>
+ * {@.ja バッファfullチェック用純粋仮想関数}
+ * {@.en Pure virtual function to check on whether the buffer is full.}
*
- * @return boolean
- */
+ * @return
+ * {@.ja fullチェック結果(true:バッファfull,false:バッファ空きあり)}
+ * {@.en True if the buffer is full, else false.}
+ */
public boolean full();
/**
- * <p> rptr </p>
- *
- * @param n
- * @return DataType
- */
+ * {@.ja バッファの現在の読み出し要素のポインタ。}
+ * {@.en Get the reading pointer}
+ *
+ * <p>
+ * {@.ja バッファの現在の読み出し要素のポインタまたは、
+ * n個先のポインタを返す}
+ * {@.en Pure virtual function to get the reading pointer.}
+ *
+ * @param n
+ * {@.ja 読み出しポインタ + n の位置のポインタ}
+ * {@.en reading pinter + n previous pointer}
+ * @return
+ * {@.ja 読み出し位置のポインタ}
+ * {@.en reading pointer}
+ */
public DataType rptr(int n);
/**
- * <p> rptr </p>
- *
- * @return DataType
- */
+ * {@.ja バッファの現在の読み出し要素のポインタ。}
+ * {@.en Get the reading pointer}
+ *
+ * <p>
+ * {@.ja バッファの現在の読み出返す}
+ * {@.en Pure virtual function to get the reading pointer.}
+ *
+ * @return
+ * {@.ja 読み出し位置のポインタ}
+ * {@.en reading pointer}
+ */
public DataType rptr();
/**
- * <p> advanceRptr </p>
+ * {@.ja 読み出しポインタを進める。}
+ * {@.en Forward n reading pointers.}
+ *
+ * <p>
+ * {@.ja 現在の読み出し位置のポインタを 1 個進める。}
+ * {@.en Pure virtual function to forward 1 reading pointers.}
+ *
*
- * @return ReturnCode
- */
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
+ */
public ReturnCode advanceRptr();
/**
- * <p> advanceRptr </p>
+ * {@.ja 読み出しポインタを進める。}
+ * {@.en Forward n reading pointers.}
+ *
+ * <p>
+ * {@.ja 現在の読み出し位置のポインタを n 個進める。}
+ * {@.en Pure virtual function to forward n reading pointers.}
+ *
+ * @param n
+ * {@.ja 読み出しポインタ + n の位置のポインタ}
+ * {@.en reading pinter + n previous pointer}
*
- * @param n
- * @return ReturnCode
- */
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
+ */
public ReturnCode advanceRptr(int n);
/**
- * <p> readable </p>
- *
- * @return size_t
+ * {@.ja バッファから読み出し可能な要素数。}
+ * {@.en Write data into the buffer}
+ *
+ * <p>
+ * {@.ja バッファから読み出し可能な要素数を返す。}
+ * {@.en Pure virtual function to get a reading number.}
+ *
+ * @return
+ * {@.ja 読み出し可能な要素数}
+ * {@.en readable number}
*/
public int readable();
/**
- * <p> empty </p>
- * Check on whether the buffer is empty.
+ * {@.ja バッファemptyチェック。}
+ * {@.en Check on whether the buffer is empty.}
+ *
+ * <p>
+ * {@.ja バッファemptyチェック用純粋仮想関数}
+ * {@.en Pure virtual function to check on whether the buffer is empty.}
*
- * @return boolean
+ * @return
+ * {@.ja emptyチェック結果(true:バッファempty,false:バッファデータあり)}
+ * {@.en True if the buffer is empty, else false.}
+ *
*/
public boolean empty();
/**
- * <p>バッファ長を取得します。</p>
+ * {@.ja バッファの長さを取得する。}
+ * {@.en Get the buffer length}
*
- * @return バッファ長
+ * <p>
+ * {@.ja バッファ長を取得するための純粋仮想関数}
+ * {@.en Pure virtual function to get the buffer length.}
+ *
+ * @return
+ * {@.ja バッファ長}
+ * {@.en Buffer length}
+ *
*/
public int length();
+ /**
+ * {@.ja バッファの長さをセットする。}
+ * {@.en Set the buffer length}
+ *
+ * <p>
+ * {@.ja バッファ長を設定する。設定不可な場合はNOT_SUPPORTEDが返る。}
+ * {@.en Pure virtual function to set the buffer length.}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * NOT_SUPPORTED: バッファ長変更不可
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * NOT_SUPPORTED: The buffer length cannot be set.
+ * BUFFER_ERROR: Failed}
+ */
public ReturnCode length(int n);
/**
- * <p>バッファにデータを書き込みます。</p>
+ * {@.ja バッファにデータを書き込む。}
+ * {@.en Write data into the buffer}
*
- * @param value 書き込むデータ
- * @return 書き込みに成功した場合はtrueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja バッファにデータを書き込む。書き込みポインタの位置は1つすすむ。}
+ * {@.en Pure virtual function to write data into the buffer.}
+ *
+ * @param value
+ * {@.ja 書き込み対象データ}
+ * {@.en value Target data to write.}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
*/
public ReturnCode write(final DataType value);
+ /**
+ * {@.ja バッファにデータを書き込む。}
+ * {@.en Write data into the buffer}
+ *
+ * <p>
+ * {@.ja バッファにデータを書き込む。書き込みポインタの位置は1つすすむ。}
+ * {@.en Pure virtual function to write data into the buffer.}
+ *
+ * @param value
+ * {@.ja 書き込み対象データ}
+ * {@.en value Target data to write.}
+ * @param sec
+ * {@.ja タイムアウト時間 sec (default -1: 無効)}
+ * {@.en TimeOut sec order}
+ * @param nsec
+ * {@.ja タイムアウト時間 nsec (default 0)}
+ * {@.en TimeOut nsec order}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
+ */
public ReturnCode write(final DataType value,
int sec, int nsec);
/**
- * <p>バッファからデータを読み込みます。</p>
+ * {@.ja バッファからデータを読み出す。}
+ * {@.en Read data from the buffer}
*
- * @param valueRef 読み込んだデータを受け取るためのDataRefオブジェクト
- * @return 読み込みに成功した場合はtrueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja バッファからデータを読み出すための純粋仮想関数}
+ * {@.en Pure virtual function to read data from the buffer.}
+ *
+ * @param valueRef
+ * {@.ja 読み込んだデータを受け取るためのDataRefオブジェクト}
+ * {@.en Readout data stored into the buffer.}
+ *
+ * @return
+ * {@.ja データ読み出し結果}
+ * {@.en Result of having read}
+ *
*/
public ReturnCode read(DataRef<DataType> valueRef);
+ /**
+ * {@.ja バッファからデータを読み出す。}
+ * {@.en Read data from the buffer}
+ *
+ * <p>
+ * {@.ja バッファからデータを読み出すための純粋仮想関数}
+ * {@.en Pure virtual function to read data from the buffer.}
+ *
+ * @param valueRef
+ * {@.ja 読み込んだデータを受け取るためのDataRefオブジェクト}
+ * {@.en Readout data stored into the buffer.}
+ * @param sec
+ * {@.ja タイムアウト時間 sec (default -1: 無効)}
+ * {@.en TimeOut sec order}
+ * @param nsec
+ * {@.ja タイムアウト時間 nsec (default 0)}
+ * {@.en TimeOut nsec order}
+ *
+ * @return
+ * {@.ja データ読み出し結果}
+ * {@.en Result of having read}
+ *
+ */
public ReturnCode read(DataRef<DataType> valueRef, int sec, int nsec);
/**
- * <p>バッファにデータを書き込みます。</p>
+ * {@.ja バッファにデータを書き込む。}
+ * {@.en Write data into the buffer}
*
- * @param data 書き込むデータ
- * @return ReturnCode
+ * <p>
+ * {@.ja バッファにデータを書き込む。書き込みポインタの位置は変更されない。}
+ * {@.en Pure virtual function to write data into the buffer.}
+ *
+ * @param data
+ * {@.ja 書き込むデータ}
+ * {@.en value Target data to write.}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
*/
public ReturnCode put(final DataType data);
/**
- * <p>バッファからデータを読み込みます。</p>
+ * {@.ja バッファからデータを読み出す。}
+ * {@.en Read data from the buffer}
*
- * @return 読み込んだデータ
+ * <p>
+ * {@.ja バッファからデータを読みだす。読み出しポインタの位置は
+ * 変更されない。}
+ * {@.en Pure virtual function to read data form the buffer.}
+ *
+ * @return
+ * {@.ja 読み込んだデータ}
+ * {@.en value Data to read.}
*/
public DataType get();
+ /**
+ * {@.ja バッファからデータを読み出す。}
+ * {@.en Read data from the buffer}
+ *
+ * <p>
+ * {@.ja バッファからデータを読みだす。読み出しポインタの位置は
+ * 変更されない。}
+ * {@.en Pure virtual function to read data form the buffer.}
+ *
+ * @param value
+ * {@.ja 読み出しデータ}
+ * {@.en value Data to read.}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
+ */
public ReturnCode get(DataRef<DataType> value);
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/CdrRingBuffer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/CdrRingBuffer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/CdrRingBuffer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,12 +1,11 @@
package jp.go.aist.rtm.RTC.buffer;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
import jp.go.aist.rtm.RTC.BufferFactory;
import jp.go.aist.rtm.RTC.ObjectCreator;
import jp.go.aist.rtm.RTC.ObjectDestructor;
+import org.omg.CORBA.portable.OutputStream;
+
/**
* <p> CdrRingBuffer </p>
*
@@ -14,18 +13,24 @@
public class CdrRingBuffer implements ObjectCreator<BufferBase<OutputStream>>, ObjectDestructor {
/**
- * <p> creator_ </p>
+ * {@.ja RingBuffer$B$r at 8@.$9$k!#(B}
+ * {@.en Creats RingBuffer.}
*
- * @return Object Created instances
+ * @return
+ * {@.ja $B at 8@.$7$?%$%s%9%?%s%9$N(BRingBuffer}
+ * {@.en Object Created RingBuffer}
*
*/
public BufferBase<OutputStream> creator_() {
return new RingBuffer<OutputStream>();
}
/**
- * <p> destructor_ </p>
+ * {@.ja $B%$%s%9%?%s%9$rGK4~$9$k!#(B}
+ * {@.en Destroys the object.}
*
- * @param obj The target instances for destruction
+ * @param obj
+ * {@.ja $BGK2u$9$k%$%s%9%?%s%9(B}
+ * {@.en The target instances for destruction}
*
*/
public void destructor_(Object obj) {
@@ -33,7 +38,11 @@
}
/**
- * <p> CdrRingBufferInit </p>
+ * {@.ja $B=i4|2==hM}!#(B}
+ * {@.en Initialization}
+ * <p>
+ * {@.ja $B%U%!%/%H%j$X%*%V%8%'%/%H$rDI2C$9$k!#(B}
+ * {@.en Adds the object to the factory.}
*
*/
public static void CdrRingBufferInit() {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/NullBuffer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/NullBuffer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/NullBuffer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,44 +3,80 @@
import jp.go.aist.rtm.RTC.util.DataRef;
import jp.go.aist.rtm.RTC.util.Properties;
-/**
- * <p>バッファ長1固定のバッファ実装です。</p>
- *
- * @param <DataType> バッファ内のデータ型を指定します。
- */
+ /**
+ * {@.ja ダミーバッファ実装クラス。}
+ * {@.en Concrete buffer class for dummy.}
+ *
+ * <p>
+ * {@.ja バッファ長が1固定のダミーバッファ実装クラス。
+ * \<DataType\>としてバッファ内で保持するデータ型を指定する。}
+ *
+ * {@.en Concrete buffer class for dummy. Buffer length is fixed to 1.
+ * The users specify data type to hold it in a buffer as \<DataType\>.}
+ *
+ * @param <DataType>
+ * {@.ja バッファ内のデータ型を指定する。}
+ * {@.en Data type to hold in a buffer}
+ */
//public class NullBuffer<DataType> implements BufferBase<DataType> {
public class NullBuffer<DataType> {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructer.}
+ * <p>
+ * {@.ja バッファ長を1(固定)で初期化する。}
+ * {@.en Initialize buffer length to always 1.}
*
- * @param size バッファ長
+ * @param size
+ * {@.ja バッファ長}
+ * {@.en Buffer length}
*/
public NullBuffer(long size) {
m_length = 1;
}
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ。}
+ * {@.en Default Constructer.}
*/
public NullBuffer() {
this(1);
}
/**
- * <p>バッファ長を取得します。</p>
+ * {@.ja バッファ長(1固定)を取得する。}
+ * {@.en Get the buffer length (always 1)}
*
- * @return バッファ長
+ * <p>
+ * {@.ja バッファ長を取得する。(常に1を返す。)}
+ * {@.en Get the buffer length. (Return always 1.)}
+ *
+ * @return
+ * {@.ja バッファ長(1固定)}
+ * {@.en buffer length(always 1)}
+ *
*/
public int length() {
return this.m_length;
}
/**
- * <p>バッファにデータを書き込みます。</p>
+ * {@.ja バッファにデータを書き込む。}
+ * {@.en Write data into the buffer}
*
- * @param value 書き込むデータ
- * @return 書き込みに成功した場合はtrueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja 引数で与えられたデータをバッファに書き込む。}
+ * {@.en Write data which were given with an argument into the buffer.}
+ *
+ * @param value
+ * {@.ja 書き込み対象データ}
+ * {@.en Target data to write.}
+ *
+ * @return
+ * {@.ja データ書き込み結果(true:書き込み成功,false:書き込み失敗)}
+ * {@.en Result of having written in data (true:Successful, false:Failed)}
+ *
*/
public ReturnCode write(final DataType value) {
this.m_data = value;
@@ -48,10 +84,21 @@
}
/**
- * <p>バッファからデータを読み込みます。</p>
+ * {@.ja バッファからデータを読み出す。}
+ * {@.en Read data from the buffer}
*
- * @param valueRef 読み込んだデータを受け取るためのDataRefオブジェクト
- * @return 読み込みに成功した場合はtrueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja バッファに格納されたデータを読み出す。}
+ * {@.en Read data stored in the buffer.}
+ *
+ * @param valueRef
+ * {@.ja 読み込んだデータを受け取るためのDataRefオブジェクト}
+ * {@.en Object of DataRef type to receive read data}
+ *
+ * @return
+ * {@.ja データ読み出し結果(true:読み出し成功,false:読み出し失敗)}
+ * {@.en Result of having read (true:Successful, false:Failed)}
+ *
*/
public boolean read(DataRef<DataType> valueRef) {
valueRef.v = this.m_data;
@@ -59,27 +106,50 @@
}
/**
- * <p>バッファがフルかどうか判定します。</p>
+ * {@.ja バッファがフルかどうか判定する。}
+ * {@.en Check on whether the buffer is full.}
*
- * @return バッファがフルならばtrue、さもなくばfalseを返します。
+ * <p>
+ * {@.ja バッファfullをチェックする。(常にfalseを返す。)}
+ * {@.en Check on whether the buffer is full. (Always false.)}
+ *
+ * @return
+ * {@.ja fullチェック結果(常にfalse)}
+ * {@.en Always false.}
+ *
*/
public boolean isFull() {
return false;
}
/**
- * <p>バッファが空かどうか判定します。</p>
+ * {@.ja バッファが空かどうか判定する。}
+ * {@.en Check on whether the buffer is empty.}
*
- * @return バッファが空ならばtrue、さもなくばfalseを返します。
+ * <p>
+ * {@.ja バッファemptyをチェックする。(常にfalseを返す。)}
+ * {@.en Check on whether the buffer is empty. (Always false.)}
+ *
+ * @return
+ * {@.ja emptyチェック結果(常にfalse)}
+ * {@.en Always false.}
+ *
*/
public boolean isEmpty() {
return false;
}
/**
- * <p>バッファにデータを書き込みます。</p>
+ * {@.ja バッファにデータを書き込む。}
+ * {@.en Store data into the buffer}
*
- * @param data 書き込むデータ
+ * <p>
+ * {@.ja 引数で与えられたデータをバッファに格納する。}
+ * {@.en Store data which were given with an argument into the buffer.}
+ *
+ * @param data
+ * {@.ja 書き込むデータ}
+ * {@.en Target data to store.}
*/
public ReturnCode put(final DataType data) {
this.m_data = data;
@@ -87,26 +157,44 @@
}
/**
- * <p>バッファからデータを読み込みます。</p>
- *
- * @return 読み込んだデータ
+ * {@.ja バッファからデータを読み込む。}
+ * {@.en Get data from the buffer}
+ *
+ * <p>
+ * {@.ja バッファに格納されたデータを取得する。}
+ * {@.en Get data from the buffer.}
+ *
+ * @return
+ * {@.ja 取得データ}
+ * {@.en Data got from buffer.}
+ *
*/
public DataType get() {
return this.m_data;
}
/**
- * <p>バッファ中に、まだ読み取られていないデータがあるかどうか判定します。</p>
+ * {@.ja 最新データが存在するか確認する。}
+ * {@.en Check whether the data is newest}
+ * <p>
+ * {@.ja バッファ中に、まだ読み取られていないデータがあるかどうか
+ * 判定する。}
+ * {@.en Check whether the data stored at a current buffer position
+ * is newest.}
*
- * @return 読み取られていないデータがあればtrueを、さもなくばfalseを返します。
+ * @return
+ * {@.ja true 未読の最新データが存在する
+ * false 未接続またはバッファにデータが存在しない。}
+ * {@.en Newest data check result
+ * ( true:Newest data. Data has not been readout yet.
+ * false:Past data.Data has already been readout.)}
*/
public boolean isNew() {
return false;
}
/**
- * <p> get </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @param value
* @return ReturnCode
*/
@@ -115,16 +203,14 @@
}
/**
- * <p> init </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
*
* @param prop
*/
public void init(final Properties prop) {
}
/**
- * <p> reset </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
*
* @return ReturnCode
*/
@@ -132,8 +218,7 @@
return ReturnCode.BUFFER_OK;
}
/**
- * <p> wptr </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @param n
* @return DataType
*/
@@ -141,16 +226,14 @@
return m_data;
}
/**
- * <p> wptr </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @return DataType
*/
public DataType wptr() {
return m_data;
}
/**
- * <p> advanceWptr </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
*
* @param n
* @return ReturnCode
@@ -159,8 +242,7 @@
return ReturnCode.BUFFER_OK;
}
/**
- * <p> advanceWptr </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
*
* @return ReturnCode
*/
@@ -168,16 +250,14 @@
return ReturnCode.BUFFER_OK;
}
/**
- * <p> writable </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @return int
*/
public int writable() {
return 0;
}
/**
- * <p> full </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
*
* @return boolean
*/
@@ -185,8 +265,7 @@
return true;
}
/**
- * <p> rptr </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @param n
* @return DataType
*/
@@ -194,16 +273,14 @@
return m_data;
}
/**
- * <p> rptr </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @return DataType
*/
public DataType rptr() {
return m_data;
}
/**
- * <p> advanceRptr </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @param n
* @return ReturnCode
*/
@@ -212,8 +289,7 @@
return ReturnCode.BUFFER_OK;
}
/**
- * <p> advanceRptr </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @return ReturnCode
*/
public ReturnCode advanceRptr()
@@ -221,16 +297,14 @@
return ReturnCode.BUFFER_OK;
}
/**
- * <p> readable </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
* @return int
*/
public int readable() {
return 0;
}
/**
- * <p> empty </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
*
* @return boolean
*/
@@ -238,8 +312,7 @@
return true;
}
/**
- * <p> length </p>
- * <p> This function is not implemented. </p>
+ * This function is not implemented.
*
* @param n
* @return ReturnCode
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/ReturnCode.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/ReturnCode.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/ReturnCode.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,12 +1,40 @@
-package jp.go.aist.rtm.RTC.buffer;
-
-public enum ReturnCode {
- BUFFER_OK,
- BUFFER_ERROR,
- BUFFER_FULL,
- BUFFER_EMPTY,
- NOT_SUPPORTED,
- TIMEOUT,
- PRECONDITION_NOT_MET
-};
-
+package jp.go.aist.rtm.RTC.buffer;
+
+
+ /**
+ * {@.ja BufferStatus リターンコード}
+ * {@.en iBufferStatus return codes}
+ *
+ * <p>
+ * {@.ja バッファ関連のクラスで共通のリターンコード
+ * <ul>
+ * <li> BUFFER_OK: 正常終了
+ * <li> BUFFER_ERROR: バッファエラー
+ * <li> BUFFER_FULL: バッファフル
+ * <li> BUFFER_EMPTY: バッファエンプティ
+ * <li> NOT_SUPPORTED: 未サポート機能
+ * <li> TIMEOUT: タイムアウト
+ * <li> PRECONDITION_NOT_MET: 事前条件を満たしていない
+ * </ul>}
+ * {@.en Common return codes for buffer classes.
+ * <ul>
+ * <li> BUFFER_OK: Normal return
+ * <li> BUFFER_ERROR: Buffer error
+ * <li> BUFFER_FULL: Buffer full
+ * <li> BUFFER_EMPTY: Buffer empty
+ * <li> NOT_SUPPORTED: Not supported function
+ * <li> TIMEOUT: Timeout
+ * <li> PRECONDITION_NOT_MET: Precodition not met
+ * </ul>}
+ *
+ */
+public enum ReturnCode {
+ BUFFER_OK,
+ BUFFER_ERROR,
+ BUFFER_FULL,
+ BUFFER_EMPTY,
+ NOT_SUPPORTED,
+ TIMEOUT,
+ PRECONDITION_NOT_MET
+};
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/RingBuffer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/RingBuffer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/buffer/RingBuffer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,23 +1,37 @@
package jp.go.aist.rtm.RTC.buffer;
import java.util.Vector;
-import java.lang.Integer;
-import java.lang.Double;
-import java.lang.Thread;
-import java.lang.IllegalMonitorStateException;
import jp.go.aist.rtm.RTC.util.DataRef;
+import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.util.StringUtil;
import jp.go.aist.rtm.RTC.util.TimeValue;
-import jp.go.aist.rtm.RTC.util.Properties;
-/**
- * <p>リング状のバッファを持つバッファ実装です。
- * バッファ全体がデータで埋まった場合、以降のデータは古いデータから順次上書きされていきます。
- * これにより、直近のバッファ長分のデータのみが残ります。</p>
- *
- * @param <DataType> バッファ内のデータ型を指定します。
- */
+ /**
+ * {@.ja リングバッファ実装クラス。}
+ * {@.en Ring buffer implementation class}
+ *
+ * <p>
+ * [@.ja 指定した長さのリング状バッファを持つバッファ実装クラス。
+ * バッファ全体にデータが格納された場合、以降のデータは古いデータから
+ * 順次上書きされる。
+ * 従って、バッファ内には直近のバッファ長分のデータのみ保持される。
+ *
+ * 注)現在の実装では、一番最後に格納したデータのみバッファから読み出し可能}
+ *
+ * {@.en This is the buffer implementation class with ring shaped buffer of
+ * specified length.
+ * If data is stored in the entire buffer, data from now on will be
+ * overwritten from old data one by one.
+ * Therefore, only the length of latest data is stored in the buffer.
+ *
+ * Note: In the current implementation, only last stored data can be read
+ * from the buffer.}
+ *
+ * @param <DataType>
+ * {@.ja バッファに格納するデータ型}
+ * {@.en Data type to store in the buffer}
+ */
public class RingBuffer<DataType> implements BufferBase<DataType> {
private static final int RINGBUFFER_DEFAULT_LENGTH = 8;
@@ -67,9 +81,15 @@
}
/**
- * <p>バッファ長を取得します。</p>
+ * {@.ja バッファ長を取得する。}
+ * {@.en Get the buffer length}
*
- * @return バッファ長
+ *
+ * @return
+ * {@.ja バッファ長}
+ * {@.en Buffer length}
+ *
+ *
*/
public int length() {
synchronized (m_posmutex) {
@@ -77,9 +97,16 @@
}
}
/**
- * <p> sets the length of the buffer. </p>
- * @param n length
+ * {@.ja バッファの長さをセットする。}
+ * {@.en Get the buffer length}
+ *
+ * <p>
+ * {@.ja バッファ長を設定する。設定不可な場合はNOT_SUPPORTEDが返る。
+ * この実装では BUFFER_OK しか返さない。}
+ * {@.en Pure virtual function to get the buffer length.}
+ *
* @return BUFFER_OK
+ *
*/
public ReturnCode length(int n) {
m_buffer.setSize(n);
@@ -89,17 +116,113 @@
}
/**
- * <p>バッファにデータを書き込みます。</p>
+ * {@.ja バッファに書き込む。}
+ * {@.en Write data into the buffer}
*
- * @param value 書き込むデータ
- * @return 書き込みに成功した場合はtrueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja 引数で与えられたデータをバッファに書き込む。
+ *
+ * バッファフル時の書込みモード (overwrite, do_nothing, block) は
+ * init() で設定されたモードに従う。
+ *
+ * 書き込み時にバッファが空(empty)状態で、別のスレッドがblockモード
+ * で読み出し待ちをしている場合、signalを発行して読み出し側のブロッ
+ * キングが解除される。}
+ * {@.en Write data which is given argument into the buffer.}
+ *
+ * @param value
+ * {@.ja 書き込み対象データ}
+ * {@.en Target data for writing}
+ * @return
+ * {@.ja BUFFER_OK 正常終了
+ * BUFFER_FULL バッファがフル状態
+ * TIMEOUT 書込みがタイムアウトした
+ * PRECONDITION_NOT_MET 設定異常}
+ * {@.en BUFFER_OK Normal return
+ * BUFFER_FULL Buffer full
+ * TIMEOUT Timeout
+ * PRECONDITION_NOT_MET Unknown condition}
*/
public ReturnCode write(final DataType value) {
return this.write(value,-1,0);
}
+ /**
+ * {@.ja バッファに書き込む。}
+ * {@.en Write data into the buffer}
+ *
+ * <p>
+ * {@.ja 引数で与えられたデータをバッファに書き込む。
+ *
+ *
+ * 第2引数(sec) に引数が指定された場合は、init() で設定されたモード
+ * に関わらず、block モードとなり、バッファがフル状態であれば指定時
+ * 間まち、タイムアウトする。
+ * write(final DataType value, int sec, int nsec)の第3引数(nsec)が0の場合
+ * と同等。
+ * タイムアウト待ち中に、読み出しスレッド側でバッファから
+ * 読み出せば、ブロッキングは解除されデータが書き込まれる。
+ *
+ * 書き込み時にバッファが空(empty)状態で、別のスレッドがblockモード
+ * で読み出し待ちをしている場合、signalを発行して読み出し側のブロッ
+ * キングが解除される。}
+ * {@.en Write data which is given argument into the buffer.}
+ *
+ * @param value
+ * {@.ja 書き込み対象データ}
+ * {@.en Target data for writing}
+ * @param sec
+ * {@.ja タイムアウト時間 sec}
+ * {@.en Timeout sec}
+ * @return
+ * {@.ja BUFFER_OK 正常終了
+ * BUFFER_FULL バッファがフル状態
+ * TIMEOUT 書込みがタイムアウトした
+ * PRECONDITION_NOT_MET 設定異常}
+ * {@.en BUFFER_OK Normal return
+ * BUFFER_FULL Buffer full
+ * TIMEOUT Timeout
+ * PRECONDITION_NOT_MET Unknown condition}
+ */
public ReturnCode write(final DataType value, int sec) {
return this.write(value,sec,0);
}
+ /**
+ * {@.ja バッファに書き込む。}
+ * {@.en Write data into the buffer}
+ *
+ * <p>
+ * {@.ja 引数で与えられたデータをバッファに書き込む。
+ *
+ * 第2引数(sec) に引数が指定された場合は、init() で設定されたモード
+ * に関わらず、block モードとなり、バッファがフル状態であれば指定時
+ * 間まち、タイムアウトする。第3引数(nsec)は指定されない場合0として
+ * 扱われる。タイムアウト待ち中に、読み出しスレッド側でバッファから
+ * 読み出せば、ブロッキングは解除されデータが書き込まれる。
+ *
+ * 書き込み時にバッファが空(empty)状態で、別のスレッドがblockモード
+ * で読み出し待ちをしている場合、signalを発行して読み出し側のブロッ
+ * キングが解除される。}
+ * {@.en Write data which is given argument into the buffer.}
+ *
+ * @param value
+ * {@.ja 書き込み対象データ}
+ * {@.en Target data for writing}
+ * @param sec
+ * {@.ja タイムアウト時間 sec}
+ * {@.en Timeout sec}
+ * @param nsec
+ * {@.ja タイムアウト時間 nsec}
+ * {@.en Timeout nsec}
+ * @return
+ * {@.ja BUFFER_OK 正常終了
+ * BUFFER_FULL バッファがフル状態
+ * TIMEOUT 書込みがタイムアウトした
+ * PRECONDITION_NOT_MET 設定異常}
+ * {@.en BUFFER_OK Normal return
+ * BUFFER_FULL Buffer full
+ * TIMEOUT Timeout
+ * PRECONDITION_NOT_MET Unknown condition}
+ */
public ReturnCode write(final DataType value, int sec, int nsec) {
synchronized (m_full.mutex) {
@@ -163,14 +286,73 @@
}
/**
- * <p>バッファからデータを読み込みます。</p>
+ * {@.ja バッファから読み出す}
+ * {@.en Readout data from the buffer}
*
- * @param valueRef 読み込んだデータを受け取るためのDataRefオブジェクト
- * @return 読み込みに成功した場合はtrueを、さもなくばfalseを返します。
+ * <p>
+ * {@.ja バッファに格納されたデータを読み出す。
+ *
+ * バッファ空状態での読み出しモード (readback, do_nothing, block) は
+ * init() で設定されたモードに従う。
+ *
+ *
+ * 読み出し時にバッファが空(empty)状態で、別のスレッドがblockモード
+ * で書込み待ちをしている場合、signalを発行して書込み側のブロッキン
+ * グが解除される。}
+ * {@.en Readout data stored into the buffer.}
+ * </p>
+ *
+ * @param valueRef
+ * {@.ja 読み出し対象データ}
+ * {@.en Readout data}
+ * @return
+ * {@.ja BUFFER_OK 正常終了
+ * BUFFER_EMPTY バッファが空状態
+ * TIMEOUT 書込みがタイムアウトした
+ * PRECONDITION_NOT_MET 設定異常}
+ * {@.en BUFFER_OK
+ * BUFFER_EMPTY
+ * TIMEOUT
+ * PRECONDITION_NOT_MET}
+ *
*/
public ReturnCode read(DataRef<DataType> valueRef) {
return read(valueRef, -1, 0);
}
+ /**
+ * {@.ja バッファから読み出す}
+ * {@.en Readout data from the buffer}
+ *
+ * <p>
+ * {@.ja バッファに格納されたデータを読み出す。
+ *
+ *
+ * タイムアウト待ち中に、書込みスレッド側でバッファへ書込み
+ * があれば、ブロッキングは解除されデータが読みだされる。
+ *
+ * 読み出し時にバッファが空(empty)状態で、別のスレッドがblockモード
+ * で書込み待ちをしている場合、signalを発行して書込み側のブロッキン
+ * グが解除される。}
+ * {@.en Readout data stored into the buffer.}
+ * </p>
+ *
+ * @param valueRef
+ * {@.ja 読み出し対象データ}
+ * {@.en Readout data}
+ * @param sec
+ * {@.ja タイムアウト時間 sec (default -1: 無効)}
+ * {@.en TimeOut sec order}
+ * @return
+ * {@.ja BUFFER_OK 正常終了
+ * BUFFER_EMPTY バッファが空状態
+ * TIMEOUT 書込みがタイムアウトした
+ * PRECONDITION_NOT_MET 設定異常}
+ * {@.en BUFFER_OK
+ * BUFFER_EMPTY
+ * TIMEOUT
+ * PRECONDITION_NOT_MET}
+ *
+ */
public ReturnCode read(DataRef<DataType> valueRef, int sec) {
return read(valueRef, sec, 0);
}
@@ -282,19 +464,41 @@
}
/**
- * <p>バッファがフルかどうか判定します。</p>
+ * {@.ja バッファfullチェック}
+ * {@.en Check on whether the buffer is full.}
*
- * @return バッファがフルならばtrue、さもなくばfalseを返します。
+ * <p>
+ * {@.ja 未実装}
+ * {@.en This is not implemented.}
+ * @return
+ * {@.ja fullチェック結果(true:バッファfull,false:バッファ空きあり)}
+ * {@.en True if the buffer is full, else false.}
+ *
*/
public boolean isFull() {
return false;
}
/**
- * <p>バッファにデータを書き込みます。</p>
+ * {@.ja バッファにデータを書き込む。}
+ * {@.en Write data into the buffer}
*
- * @param data 書き込むデータ
- * @return ReturnCode
+ * <p>
+ * {@.ja バッファにデータを書き込む。書き込みポインタの位置は変更されない。
+ * この実装では常に BUFFER_OK を返す。}
+ * {@.en Pure virtual function to write data into the buffer.
+ * Always BUFFER_OK will be returned in this implementation.}
+ *
+ * @param data
+ * {@.ja 書き込み対象データ}
+ * {@.en Target data to write.}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了}
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Successful
+ * BUFFER_ERROR: Failed}
+ *
*/
public ReturnCode put(final DataType data) {
synchronized (m_posmutex) {
@@ -303,10 +507,18 @@
}
}
+ //
/**
- * <p>バッファからデータを読み込みます。</p>
+ * {@.ja バッファからデータを読み出す}
+ * {@.en Reading data from the buffer}
*
- * @return 読み込んだデータ
+ * <p>
+ * {@.ja 読み出しポインタの位置は変更されない。}
+ * {@.en The position of the pointer for reading is not changed.}
+ *
+ * @return
+ * {@.ja 読み出しデータ}
+ * {@.en Read data}
*/
public DataType get() {
synchronized (m_posmutex) {
@@ -314,10 +526,22 @@
}
}
/**
- * <p> get </p>
+ * {@.ja バッファからデータを読み出す。}
+ * {@.en Write data into the buffer}
+ *
+ * <p>
+ * {@.ja 読み出しポインタの位置は変更されない。}
+ * {@.en The position of the pointer for reading is not changed.}
+ *
+ * @param value
+ * {@.ja 読み出しデータ}
+ * {@.en Target data to write.}
*
- * @param value
- * @return ReturnCode
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en Result of having written in data (true:Successful, false:Failed)}
+ *
*/
public ReturnCode get(DataRef<DataType> value) {
synchronized (m_posmutex) {
@@ -327,9 +551,62 @@
}
/**
- * <p> init </p>
+ * {@.ja バッファの設定。}
+ * {@.en Sets the buffer.}
*
+ * <p>
+ * {@.ja Properties で与えられるプロパティにより、
+ * バッファの設定を初期化する。
+ * 使用できるオプションと意味は以下の通り
+ * <ul>
+ * <li> buffer.length:
+ * バッファの長さ。自然数以外の数値が指定されても無視される。す
+ * でにバッファが使用状態でも、長さが再設定されたのち、すべての
+ * ポインタが初期化される。
+ *
+ * <li> buffer.write.full_policy:
+ * 上書きするかどうかのポリシー。
+ * overwrite (上書き), do_nothing (何もしない), block (ブロックする)
+ * block を指定した場合、次の timeout 値を指定すれば、指定時間後
+ * 書き込み不可能であればタイムアウトする。
+ * デフォルトは overwrite (上書き)。
+ *
+ * <li> buffer.write.timeout:
+ * タイムアウト時間を [sec] で指定する。デフォルトは 1.0 [sec]。
+ * 1 sec -> 1.0, 1 ms -> 0.001, タイムアウトしない -> 0.0
+ *
+ * <li> buffer.read.empty_policy:
+ * バッファが空のときの読み出しポリシー。
+ * readback (最後の要素), do_nothing (何もしない), block (ブロックする)
+ * block を指定した場合、次の timeout 値を指定すれば、指定時間後
+ * 読み出し不可能であればタイムアウトする。
+ * デフォルトは readback (最後の要素)。
+ *
+ * <li> buffer.read.timeout:
+ * タイムアウト時間 [sec] で指定する。デフォルトは 1.0 [sec]。
+ * 1sec -> 1.0, 1ms -> 0.001, タイムアウトしない -> 0.0</ul>}
+ * {@.en Initializes the setting of the buffer according to the property
+ * given by Properties.
+ * <li> buffer.length:
+ * Length of buffer
+ *
+ * <li> buffer.write.full_policy:
+ * Policy whether overwrite.Default is overwrite.
+ *
+ * <li> buffer.write.timeout:
+ * The timeout period is specified every second.
+ * Default is 1.0 seconds.
+ *
+ * <li> buffer.read.empty_policy:
+ * Reading policy when buffer is empty.Default is readback.
+ *
+ * <li> buffer.read.timeout:
+ * The timeout period is specified every second.
+ * Default is 1.0 seconds. </ul>}
+ *
* @param prop
+ * {@.ja バッファを設定するためのプロパティ}
+ * {@.en Property to set buffer}
*/
public void init(final Properties prop) {
initLength(prop);
@@ -338,7 +615,7 @@
}
/**
- * {@.ja バッファの状態をリセットする}
+ * {@.ja バッファの状態をリセットする。}
* {@.en Get the buffer length}
*
* <p>
@@ -366,21 +643,41 @@
}
}
/**
- * <p> wptr </p>
- * <p> This function returns the object of a present writing element of the buffer. </p>
- * @param n
- * @return DataType
- */
+ * {@.ja バッファの現在の書込み要素のポインタ。}
+ * {@.en Returns the pointer of a present writing element.}
+ *
+ * <p>
+ * {@.ja バッファの現在の書込み要素のポインタまたは、n個先のポインタを返す}
+ * {@.en This function returns the object of a present writing
+ * element of the buffer. }
+ *
+ * @param n
+ * {@.ja 書込みポインタ + n の位置のポインタ}
+ * {@.en Pointer for writing }
+ * @return
+ * {@.ja 書込み位置のオブジェクト}
+ * {@.en Object at writing position}
+ *
+ */
public DataType wptr(int n) {
synchronized(m_posmutex) {
return this.m_buffer.get((m_wpos + n + m_length) % m_length);
}
}
/**
- * <p> wptr </p>
- * <p> This function returns the pointer of a present writing element of the buffer. </p>
- * @return DataType
- */
+ * {@.ja バッファの現在の書込み要素のポインタ。}
+ * {@.en Returns the pointer of a present writing element.}
+ *
+ * <p>
+ * {@.ja バッファの現在の書込み要素のポインタを返す}
+ * {@.en This function returns the pointer of a present writing element
+ * of the buffer. }
+ *
+ * @return
+ * {@.ja 書込み位置のオブジェクト}
+ * {@.en Object at writing position}
+ *
+ */
public DataType wptr() {
int n = 0;
synchronized(m_posmutex) {
@@ -430,18 +727,38 @@
}
}
/**
- * <p> advanceWptr </p>
- * <p> This function advances the writing pointer. </p>
*
- * @return ReturnCode
- */
+ * {@.ja 書込みポインタを進める。}
+ * {@.en advances the writing pointer.}
+ *
+ * <p>
+ * {@.ja 現在の書き込み位置のポインタを n 個進める。
+ * 書き込み可能な要素数以上の数値を指定した場合、PRECONDITION_NOT_MET
+ * を返す。}
+ * {@.en This function advances the writing pointer. }
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * PRECONDITION_NOT_MET: n > writable()}
+ * {@.en BUFFER_OK: Normal termination
+ * PRECONDITION_NOT_MET: n > writable()}
+ *
+ */
public ReturnCode advanceWptr() {
return this.advanceWptr(1);
}
/**
- * <p> writable </p>
- * <p> This function returns the number of elements that can be written in the buffer. </p>
- * @return int
+ * {@.ja バッファに書込み可能な要素数。}
+ * {@.en Write data into the buffer}
+ *
+ * <p>
+ * {@.ja バッファに書込み可能な要素数を返す。}
+ * {@.en This function returns the number of elements that can be
+ * written in the buffer. }
+ *
+ * @return
+ * {@.ja 書き込み可能な要素数}
+ * {@.en Recordable number of elements}
*/
public int writable() {
synchronized(m_posmutex) {
@@ -449,10 +766,16 @@
}
}
/**
- * <p> full </p>
- * <p> Check on whether the buffer is full </p>
+ * {@.ja バッファfullチェック}
+ * {@.en Check on whether the buffer is full.}
+ *
+ * <p>
+ * {@.ja バッファfullチェック用純粋仮想関数}
+ * {@.en Pure virtual function to check on whether the buffer is full.}
*
- * @return boolean
+ * @return
+ * {@.ja fullチェック結果(true:バッファfull,false:バッファ空きあり)}
+ * {@.en True if the buffer is full, else false.}
*/
public boolean full() {
synchronized(m_posmutex) {
@@ -460,21 +783,42 @@
}
}
/**
- * <p> rptr </p>
- * <p> This function returns the pointer of a present reading element of the buffer. </p>
- * @param n
- * @return DataType
- */
+ * {@.ja バッファの現在の読み出し要素のポインタ.}
+ * {@.en returns the pointer of a present reading element.}
+ *
+ * <p>
+ * {@.ja バッファの現在の読み出し要素のポインタまたは、
+ * n個先のポインタを返す}
+ * {@.en This function returns the pointer of a present reading
+ * element of the buffer. }
+ *
+ * @param n
+ * {@.ja 読み出しポインタ + n の位置のポインタ}
+ * {@.en reading position}
+ * @return
+ * {@.ja 読み出し位置のポインタ}
+ * {@.en Object at reading position}
+ *
+ */
public DataType rptr(int n) {
synchronized(m_posmutex) {
return (m_buffer.get((m_rpos + n + m_length) % m_length));
}
}
/**
- * <p> rptr </p>
- * <p> This function returns the pointer of a present reading element of the buffer. </p>
- * @return DataType
- */
+ * {@.ja バッファの現在の読み出し要素のポインタ.}
+ * {@.en returns the pointer of a present reading element.}
+ *
+ * <p>
+ * {@.ja バッファの現在の読み出し要素のポインタを返す}
+ * {@.en This function returns the pointer of a present reading
+ * element of the buffer. }
+ *
+ * @return
+ * {@.ja 読み出し位置のポインタ}
+ * {@.en Object at reading position}
+ *
+ */
public DataType rptr() {
int n = 0;
synchronized(m_posmutex) {
@@ -482,11 +826,23 @@
}
}
/**
- * <p> advanceRptr </p>
- * <p> This function advances the reading pointer. </p>
+ * {@.ja 読み出しポインタを進める。}
+ * {@.en advances the reading pointer.}
+ *
+ * <p>
+ * {@.ja 現在の読み出し位置のポインタを n 個進める。}
+ * {@.en This function advances the reading pointer.}
+ *
* @param n
- * @return ReturnCode
- */
+ * {@.ja 読み出しポインタ + n の位置のポインタ}
+ * {@.en Advanced number of points}
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Normal termination
+ * BUFFER_ERROR: Abnormal termination}
+ *
+ */
public ReturnCode advanceRptr(int n) {
// n > 0 :
// n satisfies n <= readable elements
@@ -507,18 +863,37 @@
}
}
/**
- * <p> advanceRptr </p>
- * <p> This function advances the reading pointer. </p>
- * @return ReturnCode
- */
+ * {@.ja 読み出しポインタを進める。}
+ * {@.en advances the reading pointer.}
+ *
+ * <p>
+ * {@.ja 現在の読み出し位置のポインタを n 個進める。}
+ * {@.en This function advances the reading pointer.}
+ *
+ * @return
+ * {@.ja BUFFER_OK: 正常終了
+ * BUFFER_ERROR: 異常終了}
+ * {@.en BUFFER_OK: Normal termination
+ * BUFFER_ERROR: Abnormal termination}
+ *
+ */
public ReturnCode advanceRptr() {
return advanceRptr(1);
}
/**
- * <p> readable </p>
- * <p> This function returns the number of elements that can be read
- * from the buffer. </p>
- * @return int
+ * {@.ja バッファから読み出し可能な要素数。}
+ * {@.en returns the number of elements that can be read.}
+ *
+ * <p>
+ * {@.ja バッファから読み出し可能な要素数を返す。}
+ * {@.en This function returns the number of elements that can be read
+ * from the buffer. }
+ * </p>
+ *
+ * @return
+ * {@.ja 読み出し可能な要素数}
+ * {@.en Number of elements that can be read}
+ *
*/
public int readable() {
synchronized(m_posmutex) {
@@ -526,10 +901,16 @@
}
}
/**
- * <p> empty </p>
- * <p> Check on whether the buffer is empty. </p>
+ * {@.ja バッファemptyチェック}
+ * {@.en Check on whether the buffer is empty.}
+ *
+ * <p>
+ * {@.ja バッファemptyチェック用純粋仮想関数}
+ * {@.en Pure virtual function to check on whether the buffer is empty.}
*
- * @return boolean
+ * @return
+ * {@.ja emptyチェック結果(true:バッファempty,false:バッファデータあり)}
+ * {@.en True if the buffer is empty, else false.}
*/
public boolean empty() {
synchronized(m_posmutex) {
@@ -634,9 +1015,21 @@
private int m_fillcount;
private static String m_posmutex = new String();
+ /**
+ * {@.ja 条件変数構造体}
+ * {@.en class for condition variable}
+ */
protected class condition {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ */
public condition() {
}
+ /**
+ * {@.ja ミューテックス用変数}
+ * {@.en Variable for mutex}
+ */
public String mutex = new String();
};
private condition m_empty = new condition();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/ExtTrigExecutionContext.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/ExtTrigExecutionContext.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/ExtTrigExecutionContext.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,31 +1,32 @@
package jp.go.aist.rtm.RTC.executionContext;
-import org.omg.CORBA.SystemException;
-
import jp.go.aist.rtm.RTC.Manager;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.TimeValue;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
+import org.omg.CORBA.SystemException;
/**
- * <p>1周期毎の実行が可能なPeriodic Sampled Data Processing(周期実行用)ExecutionContextクラスです。
- * 外部からのメソッド呼びだしによって時間が1周期づつ進みます。</p>
+ * {@.ja ステップ実行が可能な ExecutionContext クラス}
+ * {@.en ExecutionContext class that enables one step execution}
+ * <p>
+ * {@.ja 1周期毎の実行が可能なPeriodic Sampled Data Processing(周期実行用)
+ * ExecutionContextクラスです。
+ * 外部からのメソッド呼びだしによって時間が1周期づつ進みます。}
+ * {@.en ExecutionContext class that can execute every one cycle for Periodic
+ * Sampled Data Processing.
+ * Time(Tick) advances one cycle by invoking method externally.}
*/
public class ExtTrigExecutionContext
extends PeriodicExecutionContext implements Runnable {
/**
- * <p>デフォルト・コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*/
public ExtTrigExecutionContext() {
super();
- Manager manager = Manager.instance();
rtcout = new Logbuf("Manager.ExtTrigExecutionContext");
- // rtcout.setLevel(manager.getConfig().getProperty("logger.log_level"));
- // rtcout.setDateFormat(manager.getConfig().getProperty("logger.date_format"));
- // rtcout.setLogLock(StringUtil.toBool(manager.getConfig().getProperty("logger.stream_lock"),
- // "enable", "disable", false));
}
@@ -34,7 +35,7 @@
*/
public void tick() throws SystemException {
- rtcout.println(rtcout.TRACE, "ExtTrigExecutionContext.tick()");
+ rtcout.println(Logbuf.TRACE, "ExtTrigExecutionContext.tick()");
synchronized (m_worker) {
m_worker._called = true;
@@ -48,7 +49,7 @@
*/
public int svc() {
- rtcout.println(rtcout.TRACE, "ExtTrigExecutionContext.svc()");
+ rtcout.println(Logbuf.TRACE, "ExtTrigExecutionContext.svc()");
do {
TimeValue tv = new TimeValue(0, m_usec); // (s, us)
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/OpenHRPExecutionContext.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/OpenHRPExecutionContext.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/OpenHRPExecutionContext.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,8 +1,6 @@
package jp.go.aist.rtm.RTC.executionContext;
import jp.go.aist.rtm.RTC.Manager;
-import jp.go.aist.rtm.RTC.RegisterModuleFunc;
-import jp.go.aist.rtm.RTC.util.TimeValue;
import org.omg.CORBA.SystemException;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECOrganization.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECOrganization.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECOrganization.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,36 +1,32 @@
package jp.go.aist.rtm.RTC.executionContext;
-import org.omg.CORBA.SystemException;
-
-import java.util.Vector;
import java.util.Iterator;
+import java.util.Vector;
-import RTC.ComponentProfile;
-import RTC.PortService;
-import RTC.PortProfile;
-import RTC.RTObject;
-import RTC.ExecutionContext;
-import RTC.ExecutionContextListHolder;
-import RTC.ExecutionContextService;
+import jp.go.aist.rtm.RTC.RTObject_impl;
+import jp.go.aist.rtm.RTC.SDOPackage.Organization_impl;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.StringUtil;
+import org.omg.CORBA.SystemException;
+
import OpenRTM.DataFlowComponent;
import OpenRTM.DataFlowComponentHelper;
import OpenRTM.DataFlowComponentHolder;
-
+import RTC.ComponentProfile;
+import RTC.ExecutionContext;
+import RTC.ExecutionContextListHolder;
+import RTC.PortProfile;
+import RTC.PortService;
+import RTC.RTObject;
import _SDOPackage.Configuration;
-import _SDOPackage.Organization;
-import _SDOPackage.SDO;
-import _SDOPackage.SDOListHolder;
import _SDOPackage.InterfaceNotImplemented;
import _SDOPackage.InternalError;
import _SDOPackage.InvalidParameter;
import _SDOPackage.NotAvailable;
+import _SDOPackage.Organization;
+import _SDOPackage.SDO;
-import jp.go.aist.rtm.RTC.RTObject_impl;
-import jp.go.aist.rtm.RTC.SDOPackage.Organization_impl;
-import jp.go.aist.rtm.RTC.log.Logbuf;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-
/**
* <p> PeriodicECOrganizationクラス </p>
*/
@@ -171,7 +167,7 @@
public boolean add_members(final SDO[] sdo_list)
throws SystemException, InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.DEBUG, "add_members()");
+ rtcout.println(Logbuf.DEBUG, "add_members()");
updateExportedPortsList();
for (int i=0, len=sdo_list.length; i < len; ++i) {
@@ -229,7 +225,7 @@
public boolean set_members(final SDO[] sdo_list)
throws SystemException, InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.DEBUG, "set_members()");
+ rtcout.println(Logbuf.DEBUG, "set_members()");
removeAllMembers();
updateExportedPortsList();
@@ -271,7 +267,7 @@
public boolean remove_member(final String id)
throws SystemException, InvalidParameter, NotAvailable, InternalError {
- rtcout.println(rtcout.DEBUG, "remove_member()" + " id=(" + id + ")");
+ rtcout.println(Logbuf.DEBUG, "remove_member()" + " id=(" + id + ")");
for (Iterator it = m_rtcMembers.iterator(); it.hasNext();) {
Member member = (Member)it.next();
if (member.profile_.instance_name.indexOf(id) != 0 ) {
@@ -303,7 +299,7 @@
* <p>Organizationメンバーを全て削除する。</p>
*/
public void removeAllMembers() {
- rtcout.println(rtcout.TRACE, "removeAllMembers()");
+ rtcout.println(Logbuf.TRACE, "removeAllMembers()");
updateExportedPortsList();
for (Iterator it = m_rtcMembers.iterator(); it.hasNext();) {
@@ -349,7 +345,7 @@
* <p>Owned ExecutionContext を停止させる。</p>
*/
public void stopOwnedEC(Member member) {
- rtcout.println(rtcout.DEBUG, "stopOwnedEC()");
+ rtcout.println(Logbuf.DEBUG, "stopOwnedEC()");
// stop target RTC's ExecutionContext
ExecutionContextListHolder ecs = new ExecutionContextListHolder();
@@ -364,7 +360,7 @@
* <p>Owned ExecutionContext を起動する。</p>
*/
public void startOwnedEC(Member member) {
- rtcout.println(rtcout.DEBUG, "startOwnedEC()");
+ rtcout.println(Logbuf.DEBUG, "startOwnedEC()");
// start target RTC's ExecutionContext
ExecutionContextListHolder ecs = new ExecutionContextListHolder();
@@ -379,7 +375,7 @@
* <p>DFC に Organization オブジェクトを与える。</p>
*/
public void addOrganizationToTarget(Member member) {
- rtcout.println(rtcout.DEBUG, "addOrganizationToTarget()");
+ rtcout.println(Logbuf.DEBUG, "addOrganizationToTarget()");
// get given RTC's configuration object
Configuration conf = member.config_;
@@ -404,7 +400,7 @@
* <p>Organization オブジェクトを DFCから削除する。</p>
*/
public void removeOrganizationFromTarget(Member member) {
- rtcout.println(rtcout.DEBUG, "removeOrganizationFromTarget()");
+ rtcout.println(Logbuf.DEBUG, "removeOrganizationFromTarget()");
// get given RTC's configuration object
Configuration conf = member.config_;
@@ -432,7 +428,7 @@
* {@.en Set CompositeRTC's ExecutionContext to the given DFC}
*/
public void addParticipantToEC(Member member) {
- rtcout.println(rtcout.DEBUG, "addParticipantToEC()");
+ rtcout.println(Logbuf.DEBUG, "addParticipantToEC()");
if (m_ec == null) {
ExecutionContext[] ecs = m_rtobj.get_owned_contexts();
@@ -459,7 +455,7 @@
}
}
catch(Exception ex){
- rtcout.println(rtcout.WARN, "no organization");
+ rtcout.println(Logbuf.WARN, "no organization");
}
@@ -470,14 +466,14 @@
* {@.en Remove participant DFC from CompositeRTC's ExecutionContext}
*/
public void removeParticipantFromEC(Member member) {
- rtcout.println(rtcout.DEBUG, "removeParticipantFromEC()");
+ rtcout.println(Logbuf.DEBUG, "removeParticipantFromEC()");
if (m_ec == null) {
ExecutionContext[] ecs = m_rtobj.get_owned_contexts();
if (ecs.length > 0) {
m_ec = (ExecutionContext)ecs[0]._duplicate();
} else {
- rtcout.println(rtcout.FATAL,
+ rtcout.println(Logbuf.FATAL,
"removeParticipantFromEC() no owned EC");
return;
}
@@ -498,7 +494,7 @@
}
}
catch(Exception ex){
- rtcout.println(rtcout.WARN, "no organization");
+ rtcout.println(Logbuf.WARN, "no organization");
}
}
@@ -507,7 +503,7 @@
* {@.en Delegate given RTC's ports to the Composite}
*/
public void addPort(Member member, Vector<String> portlist) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"addPort() portlist=" + StringUtil.flatten(portlist));
if (portlist.size() == 0) {
@@ -522,7 +518,7 @@
for (int i=0, len=plist.length; i < len; ++i) {
String port_name = plist[i].name;
- rtcout.println(rtcout.DEBUG, "port_name: " + port_name +
+ rtcout.println(Logbuf.DEBUG, "port_name: " + port_name +
" is in " + StringUtil.flatten(portlist));
int pos = -1;
for (Iterator it = portlist.iterator(); it.hasNext();) {
@@ -533,15 +529,15 @@
}
}
if (pos == -1) {
- rtcout.println(rtcout.DEBUG, "Not Found: " + port_name +
+ rtcout.println(Logbuf.DEBUG, "Not Found: " + port_name +
" is in " + StringUtil.flatten(portlist));
continue;
}
- rtcout.println(rtcout.DEBUG, "Found: " + port_name +
+ rtcout.println(Logbuf.DEBUG, "Found: " + port_name +
" is in " + StringUtil.flatten(portlist));
m_rtobj.addPort(
(PortService)plist[i].port_ref._duplicate());
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Port " + port_name + " was delegated.");
}
}
@@ -551,7 +547,7 @@
* {@.en Remove delegated participatns's ports from the composite}
*/
public void removePort(Member member, Vector<String> portlist) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"removePort() portlist=" + StringUtil.flatten(portlist));
if (portlist.size() == 0) {
@@ -568,7 +564,7 @@
// port name . comp_name.port_name
String port_name = plist[i].name;
- rtcout.println(rtcout.DEBUG, "port_name: " + port_name +
+ rtcout.println(Logbuf.DEBUG, "port_name: " + port_name +
" is in " + StringUtil.flatten(portlist));
int pos = -1;
for (Iterator it = portlist.iterator(); it.hasNext();) {
@@ -579,17 +575,17 @@
}
}
if (pos == -1) {
- rtcout.println(rtcout.DEBUG, "Not Found: " + port_name +
+ rtcout.println(Logbuf.DEBUG, "Not Found: " + port_name +
" is in " + StringUtil.flatten(portlist));
continue;
}
- rtcout.println(rtcout.DEBUG, "Found: " + port_name +
+ rtcout.println(Logbuf.DEBUG, "Found: " + port_name +
" is in " + StringUtil.flatten(portlist));
m_rtobj.removePort(
(PortService)plist[i].port_ref._duplicate());
portlist.remove((String)port_name);
- rtcout.println(rtcout.DEBUG, "Port " + port_name + " was deleted.");
+ rtcout.println(Logbuf.DEBUG, "Port " + port_name + " was deleted.");
}
}
@@ -598,7 +594,7 @@
* {@.en PortsList is updated.}
*/
private void updateExportedPortsList() {
- rtcout.println(rtcout.DEBUG, "updateExportedPortsList()");
+ rtcout.println(Logbuf.DEBUG, "updateExportedPortsList()");
String plist
= m_rtobj.getProperties().getProperty("conf.default.exported_ports");
@@ -612,7 +608,7 @@
* <p>委譲したポートを更新する。</p>
*/
public void updateDelegatedPorts() {
- rtcout.println(rtcout.DEBUG, "updateDelegatedPorts()");
+ rtcout.println(Logbuf.DEBUG, "updateDelegatedPorts()");
Vector<String> oldPorts = new Vector<String>();
oldPorts = m_expPorts;
@@ -627,10 +623,10 @@
createdPorts.removeAll(oldPorts);
- rtcout.println(rtcout.VERBOSE, "old Ports: " + StringUtil.flatten(oldPorts));
- rtcout.println(rtcout.VERBOSE, "new Ports: " + StringUtil.flatten(newPorts));
- rtcout.println(rtcout.VERBOSE, "remove Ports: " + StringUtil.flatten(removedPorts));
- rtcout.println(rtcout.VERBOSE, "add Ports: " + StringUtil.flatten(createdPorts));
+ rtcout.println(Logbuf.VERBOSE, "old Ports: " + StringUtil.flatten(oldPorts));
+ rtcout.println(Logbuf.VERBOSE, "new Ports: " + StringUtil.flatten(newPorts));
+ rtcout.println(Logbuf.VERBOSE, "remove Ports: " + StringUtil.flatten(removedPorts));
+ rtcout.println(Logbuf.VERBOSE, "add Ports: " + StringUtil.flatten(createdPorts));
for (int i=0, len=m_rtcMembers.size(); i < len; ++i) {
removePort(m_rtcMembers.elementAt(i), removedPorts);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECSharedComposite.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECSharedComposite.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECSharedComposite.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,34 +1,11 @@
package jp.go.aist.rtm.RTC.executionContext;
-import org.omg.CORBA.SystemException;
-
-import java.util.Vector;
-
-import RTC.RTObject;
-import RTC.RTObjectHelper;
-import RTC.ExecutionContext;
-import RTC.ExecutionContextService;
-import RTC.ReturnCode_t;
-
import jp.go.aist.rtm.RTC.Manager;
import jp.go.aist.rtm.RTC.RTObject_impl;
-import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
-import jp.go.aist.rtm.RTC.util.ValueHolder;
-import jp.go.aist.rtm.RTC.util.StringHolder;
-import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.RtcDeleteFunc;
import jp.go.aist.rtm.RTC.RtcNewFunc;
-import jp.go.aist.rtm.RTC.executionContext.PeriodicECSharedComposite_impl;
+import jp.go.aist.rtm.RTC.util.Properties;
-import _SDOPackage.Organization;
-import _SDOPackage.SDO;
-import _SDOPackage.SDOListHolder;
-import _SDOPackage.InvalidParameter;
-import _SDOPackage.InternalError;
-import _SDOPackage.NotAvailable;
-
-import OpenRTM.DataFlowComponent;
-
/**
* <p>データフロー型RTコンポーネント基底クラスです。</p>
*/
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECSharedComposite_impl.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECSharedComposite_impl.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicECSharedComposite_impl.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,40 +1,30 @@
package jp.go.aist.rtm.RTC.executionContext;
-import org.omg.CORBA.SystemException;
-
import java.util.Vector;
-import RTC.RTObject;
-import RTC.RTObjectHelper;
-import RTC.ExecutionContext;
-import RTC.ExecutionContextService;
-import RTC.ReturnCode_t;
-
import jp.go.aist.rtm.RTC.Manager;
import jp.go.aist.rtm.RTC.RTObject_impl;
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
-import jp.go.aist.rtm.RTC.util.ValueHolder;
-import jp.go.aist.rtm.RTC.util.StringHolder;
-import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.POAUtil;
-import jp.go.aist.rtm.RTC.util.OnSetConfigurationSetCallbackFunc;
import jp.go.aist.rtm.RTC.util.OnAddConfigurationAddCallbackFunc;
-import jp.go.aist.rtm.RTC.RtcDeleteFunc;
-import jp.go.aist.rtm.RTC.RtcNewFunc;
+import jp.go.aist.rtm.RTC.util.OnSetConfigurationSetCallbackFunc;
+import jp.go.aist.rtm.RTC.util.POAUtil;
+import jp.go.aist.rtm.RTC.util.Properties;
+import jp.go.aist.rtm.RTC.util.StringHolder;
import jp.go.aist.rtm.RTC.log.Logbuf;
-import jp.go.aist.rtm.RTC.executionContext.PeriodicECOrganization;
-
+import OpenRTM.DataFlowComponent;
+import OpenRTM.DataFlowComponentHelper;
+import RTC.ExecutionContext;
+import RTC.ExecutionContextService;
+import RTC.RTObject;
+import RTC.RTObjectHelper;
+import RTC.ReturnCode_t;
+import _SDOPackage.InternalError;
+import _SDOPackage.NotAvailable;
import _SDOPackage.Organization;
import _SDOPackage.SDO;
import _SDOPackage.SDOListHolder;
-import _SDOPackage.InvalidParameter;
-import _SDOPackage.InternalError;
-import _SDOPackage.NotAvailable;
-import OpenRTM.DataFlowComponent;
-import OpenRTM.DataFlowComponentHelper;
-
/**
* <p>データフロー型RTコンポーネント基底クラスのインスタンスです。</p>
*/
@@ -122,7 +112,7 @@
*/
public ReturnCode_t onInitialize() {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"PeriodicECSharedComposite_impl.onInitialize()");
String active_set;
@@ -137,7 +127,7 @@
Manager mgr = Manager.instance();
- Vector<RTObject_impl> comps = mgr.getComponents();
+// Vector<RTObject_impl> comps = mgr.getComponents();
SDOListHolder sdos = new SDOListHolder();
String[] str = m_members.toString().split(",");
@@ -170,7 +160,7 @@
*/
public ReturnCode_t onActivated(int exec_handle) {
- rtcout.println(rtcout.TRACE, "PeriodicECSharedComposite_impl.onActivated(" + Integer.toString(exec_handle) + ")");
+ rtcout.println(Logbuf.TRACE, "PeriodicECSharedComposite_impl.onActivated(" + Integer.toString(exec_handle) + ")");
ExecutionContext[] ecs = get_owned_contexts();
try {
SDO[] sdos = m_org.get_members();
@@ -178,7 +168,7 @@
RTObject rtc = RTObjectHelper.narrow(sdos[i]);
ecs[0].activate_component(rtc);
}
- rtcout.println(rtcout.DEBUG, Integer.toString(sdos.length) + " member RTC" + ((sdos.length == 1) ? " was" : "s were") );
+ rtcout.println(Logbuf.DEBUG, Integer.toString(sdos.length) + " member RTC" + ((sdos.length == 1) ? " was" : "s were") );
} catch(NotAvailable e) {
;
} catch(InternalError e) {
@@ -192,7 +182,7 @@
*/
public ReturnCode_t onDeactivated(int exec_handle) {
- rtcout.println(rtcout.TRACE, "PeriodicECSharedComposite_impl.onDeactivated(" + Integer.toString(exec_handle) + ")");
+ rtcout.println(Logbuf.TRACE, "PeriodicECSharedComposite_impl.onDeactivated(" + Integer.toString(exec_handle) + ")");
ExecutionContext[] ecs = get_owned_contexts();
try {
SDO[] sdos = m_org.get_members();
@@ -213,7 +203,7 @@
*/
public ReturnCode_t onReset(int exec_handle) {
- rtcout.println(rtcout.TRACE, "PeriodicECSharedComposite_impl.onReset(" + Integer.toString(exec_handle) + ")");
+ rtcout.println(Logbuf.TRACE, "PeriodicECSharedComposite_impl.onReset(" + Integer.toString(exec_handle) + ")");
ExecutionContext[] ecs = get_owned_contexts();
try {
SDO[] sdos = m_org.get_members();
@@ -234,9 +224,10 @@
*/
public ReturnCode_t onFinalize() {
- rtcout.println(rtcout.TRACE, "PeriodicECSharedComposite_impl.onFinalize()");
+ rtcout.println(Logbuf.TRACE, "PeriodicECSharedComposite_impl.onFinalize()");
m_org.removeAllMembers();
- rtcout.println(rtcout.TRACE, "PeriodicECSharedComposite_impl.onFinalize() done");
+ rtcout.println(Logbuf.TRACE,
+ "PeriodicECSharedComposite_impl.onFinalize() done");
return ReturnCode_t.RTC_OK;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicExecutionContext.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicExecutionContext.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/executionContext/PeriodicExecutionContext.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,17 +3,15 @@
import java.util.Vector;
import jp.go.aist.rtm.RTC.Manager;
+import jp.go.aist.rtm.RTC.RTObject_impl;
import jp.go.aist.rtm.RTC.StateAction;
import jp.go.aist.rtm.RTC.StateHolder;
import jp.go.aist.rtm.RTC.StateMachine;
-import jp.go.aist.rtm.RTC.RTObject_impl;
-import jp.go.aist.rtm.RTC.util.TimeValue;
-import jp.go.aist.rtm.RTC.util.POAUtil;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.POAUtil;
import jp.go.aist.rtm.RTC.util.equalFunctor;
-import jp.go.aist.rtm.RTC.log.Logbuf;
import OpenRTM.DataFlowComponent;
import OpenRTM.DataFlowComponentHelper;
import RTC.ExecutionContextProfile;
@@ -24,7 +22,6 @@
import RTC.LifeCycleState;
import RTC.LightweightRTObject;
import RTC.ReturnCode_t;
-import RTC.RTCListHolder;
import _SDOPackage.NVListHolder;
/**
@@ -65,10 +62,6 @@
m_profile.rate = 0.0;
m_profile.owner = (RTC.RTObject)null;
m_profile.participants = new RTC.RTObject[0];
- NVListHolder holder = new NVListHolder(m_profile.properties);
- CORBA_SeqUtil.push_back(holder,
- NVUtil.newNV("", "", String.class));
- m_profile.properties = holder.value;
}
/**
@@ -107,7 +100,7 @@
public PeriodicExecutionContext(DataFlowComponent owner, double rate) {
super();
rtcout = new Logbuf("PeriodicExecutionContext");
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"PeriodicExecutionContext(owner,rate="+rate+")");
m_running = false;
m_svc = true;
@@ -125,10 +118,6 @@
m_profile.rate = rate;
m_profile.owner = owner;
m_profile.participants = new RTC.RTObject[0];
- NVListHolder holder = new NVListHolder(m_profile.properties);
- CORBA_SeqUtil.push_back(holder,
- NVUtil.newNV("", "", String.class));
- m_profile.properties = holder.value;
}
/**
@@ -177,7 +166,7 @@
*/
public void setObjRef(final ExecutionContextService ref) {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.setObjRef()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.setObjRef()");
m_ref = ref;
}
@@ -188,7 +177,7 @@
*/
public ExecutionContextService getObjRef() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.getObjRef()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.getObjRef()");
return m_ref;
}
@@ -199,7 +188,7 @@
*/
public ExecutionContextService getRef() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.getRef()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.getRef()");
return m_ref;
}
@@ -209,7 +198,7 @@
*/
public int open() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.open()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.open()");
if(m_thread==null) {
m_thread = new Thread(this, "PeriodicExecutionContext");
@@ -224,7 +213,7 @@
*/
public int svc() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.svc()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.svc()");
do {
synchronized (m_worker) {
@@ -259,7 +248,7 @@
*/
public void run() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.run()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.run()");
this.svc();
}
@@ -269,7 +258,7 @@
*/
public int close(long flags) {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.close()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.close()");
// At this point, this component have to be finished.
// Current state and Next state should be RTC_EXITING.
@@ -287,7 +276,7 @@
*/
public boolean is_running() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.is_running()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.is_running()");
return m_running;
}
@@ -299,7 +288,7 @@
*/
public ReturnCode_t start() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.start()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.start()");
if( m_running ) return ReturnCode_t.PRECONDITION_NOT_MET;
@@ -326,7 +315,7 @@
*/
public ReturnCode_t stop(){
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.stop()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.stop()");
if( !m_running ) return ReturnCode_t.PRECONDITION_NOT_MET;
@@ -351,7 +340,7 @@
*/
public double get_rate() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.get_rate()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.get_rate()");
return m_profile.rate;
}
@@ -363,7 +352,7 @@
*/
public ReturnCode_t set_rate(double rate) {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.set_rate("+rate+")");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.set_rate("+rate+")");
if( rate<=0.0 ) return ReturnCode_t.BAD_PARAMETER;
@@ -385,7 +374,7 @@
*/
public ReturnCode_t activate_component(LightweightRTObject comp) {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.activate_component()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.activate_component()");
// コンポーネントが参加者リストに無ければ BAD_PARAMETER を返す
for(int intIdx=0;intIdx<m_comps.size();intIdx++ ) {
@@ -411,7 +400,7 @@
*/
public ReturnCode_t deactivate_component(LightweightRTObject comp) {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.deactivate_component()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.deactivate_component()");
for(int intIdx=0;intIdx<m_comps.size();intIdx++ ) {
find_comp find = new find_comp((LightweightRTObject)comp._duplicate());
@@ -436,7 +425,7 @@
*/
public ReturnCode_t reset_component(LightweightRTObject comp){
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.reset_component()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.reset_component()");
for(int intIdx=0;intIdx<m_comps.size();intIdx++ ) {
find_comp find = new find_comp((LightweightRTObject)comp._duplicate());
@@ -461,7 +450,7 @@
*/
public LifeCycleState get_component_state(LightweightRTObject comp) {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.get_component_state()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.get_component_state()");
for(int intIdx=0;intIdx<m_comps.size();intIdx++ ) {
find_comp find = new find_comp((LightweightRTObject)comp._duplicate());
@@ -479,7 +468,7 @@
*/
public ExecutionKind get_kind() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.get_kind()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.get_kind()");
return m_profile.kind;
}
@@ -513,7 +502,7 @@
*/
public ReturnCode_t add_component(LightweightRTObject comp) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"PeriodicExecutionContext.add_component()");
if( comp==null ) return ReturnCode_t.BAD_PARAMETER;
@@ -559,7 +548,7 @@
*/
public ReturnCode_t bindComponent(RTObject_impl rtc) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"PeriodicExecutionContext.bindComponent()");
if (rtc == null) return ReturnCode_t.BAD_PARAMETER;
@@ -570,10 +559,10 @@
int id = rtc.bindContext(m_ref);
if (id < 0 || id > RTObject_impl.ECOTHER_OFFSET) {
- rtcout.println(rtcout.ERROR, "bindContext returns invalid id: "+id);
+ rtcout.println(Logbuf.ERROR, "bindContext returns invalid id: "+id);
return ReturnCode_t.RTC_ERROR;
}
- rtcout.println(rtcout.DEBUG, "bindComponent() returns id = "+id);
+ rtcout.println(Logbuf.DEBUG, "bindComponent() returns id = "+id);
m_comps.add(new Comp((LightweightRTObject)comp._duplicate(),
(DataFlowComponent)dfp._duplicate(),
id));
@@ -610,7 +599,7 @@
*/
public ReturnCode_t remove_component(LightweightRTObject comp) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"PeriodicExecutionContext.remove_component()");
for(int intIdx=0;intIdx<m_comps.size();intIdx++ ) {
@@ -623,7 +612,7 @@
m_comps.remove(m_comps.elementAt(intIdx));
RTC.RTObject rtcomp = RTC.RTObjectHelper.narrow(comp);
if(rtcomp == null){
- rtcout.println(rtcout.ERROR,"Invalid object reference.");
+ rtcout.println(Logbuf.ERROR,"Invalid object reference.");
return ReturnCode_t.RTC_ERROR;
}
long index;
@@ -632,7 +621,7 @@
index = CORBA_SeqUtil.find(holder, new is_equiv(rtcomp));
if (index < 0) { // not found in my list
- rtcout.println(rtcout.ERROR, "Not found.");
+ rtcout.println(Logbuf.ERROR, "Not found.");
return ReturnCode_t.BAD_PARAMETER;
}
@@ -655,7 +644,7 @@
*/
public ExecutionContextProfile get_profile() {
- rtcout.println(rtcout.TRACE, "PeriodicExecutionContext.get_profile()");
+ rtcout.println(Logbuf.TRACE, "PeriodicExecutionContext.get_profile()");
ExecutionContextProfileHolder p = new ExecutionContextProfileHolder(m_profile);
return p.value;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/log/Logbuf.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/log/Logbuf.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/log/Logbuf.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,17 +1,14 @@
package jp.go.aist.rtm.RTC.log;
+import java.util.Date;
+import java.util.IllegalFormatException;
+import java.util.Vector;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
-import java.util.Vector;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.TimeZone;
-import java.util.IllegalFormatException;
-
/**
* <p>ログ収集ON時のロギングクラスです。</p>
* ログ出力の可否は、デフォルトで無効とし、
@@ -54,13 +51,17 @@
String str;
if(name.equals("Manager")) {
str = "OpenRTM-aist.logging." + name;
+ m_Logger = Logger.getLogger(str);
+ this.addStream(new NullHandler());
} else if(parent >= 0) {
m_Suffix = this.getLastName(name);
str = "OpenRTM-aist.logging.Manager." + m_Suffix;
+ m_Logger = Logger.getLogger(str);
} else {
str = "OpenRTM-aist.logging.Manager." + name;
+ m_Logger = Logger.getLogger(str);
}
- m_Logger = Logger.getLogger(str);
+// m_Logger = Logger.getLogger(str);
_constructor();
}
@@ -109,7 +110,7 @@
*/
public void println(int level, String contents) {
// logger.enable check
- if(!m_Enabled) {
+ if(!Logbuf.m_Enabled) {
return;
}
boolean bret = this.getPrintFlag();
@@ -225,6 +226,8 @@
*/
private class OpenRTMLevel extends Level {
+ private static final long serialVersionUID = -9018991580877614607L;
+
public OpenRTMLevel(String str, int val) {
super(str, val);
}
@@ -376,7 +379,7 @@
*
*/
public void setLevel(final String level) {
- int lv = this.strToLogLevel(level);
+ int lv = Logbuf.strToLogLevel(level);
String str = logLevelToStr(lv);
Level clevel = Level.parse(str);
m_Logger.setLevel(clevel);
@@ -398,7 +401,7 @@
formatter.format(m_dateFormat,date,date,date,date,date,date,date,date,date,date);
} catch(IllegalFormatException ex){
m_dateFormat = "%tb %td %tH:%tM:%tS";
- this.println(this.ERROR, "The specified format is illegal.");
+ this.println(Logbuf.ERROR, "The specified format is illegal.");
}
}
@@ -418,7 +421,7 @@
*
*/
public void setEnabled() {
- this.m_Enabled = true;
+ Logbuf.m_Enabled = true;
}
/**
@@ -426,7 +429,7 @@
*
*/
public void setDisabled() {
- this.m_Enabled = false;
+ Logbuf.m_Enabled = false;
}
/**
@@ -455,4 +458,13 @@
*/
private static boolean m_Enabled = false;
+ class NullHandler extends Handler{
+ public void close() {
+ }
+ public void flush() {
+ }
+ public void publish(LogRecord record){
+ }
+ }
+
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,95 +1,110 @@
-package jp.go.aist.rtm.RTC.port;
-
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-import java.util.Vector;
-
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
-import jp.go.aist.rtm.RTC.util.Properties;
-
-/**
- * <p> ConnectorBase </p>
- * <p> Connector Base class </p>
- * <p> The base class to derive subclasses for InPort/OutPort, </p>
- * <p> Push/Pull Connectors </p>
- *
- */
-
-public abstract class ConnectorBase {
- /**
- * <p> ConnectorInfoHoldedr </p>
- *
- */
- public static class ConnectorInfoHolder {
- public ConnectorBase.ConnectorInfo value = null;
- public ConnectorInfoHolder() {
- }
- public ConnectorInfoHolder(ConnectorBase.ConnectorInfo initialValue) {
- value = initialValue;
- }
- };
- /**
- * <p> ConnectorInfo </p>
- * <p> local representation of Connector profile </p>
- *
- * <p> ConnectorProfile struct for ConnectorBase and its subclasses. </p>
- */
- public static class ConnectorInfo {
- public ConnectorInfo(final String name_, final String id_,
- Vector<String> ports_, Properties properties_) {
- name = name_;
- id = id_;
- ports = ports_;
- properties = properties_;
- }
- public String name;
- public String id;
- public Vector<String> ports;
- public Properties properties;
- };
-
-// typedef std::vector<Profile> ProfileList;
-// typedef std::vector<ConnectorBase*> ConnectorList;
-
- /**
- * <p> Getting Profile </p>
- * <p> This operation returns Connector Profile </p>
- */
- public abstract ConnectorInfo profile();
-
- /**
- * <p> Getting Connector ID </p>
- * <p> This operation returns Connector ID </p>
- *
- */
- public abstract String id();
-
- /**
- * <p> Getting Connector name </p>
- * <p> This operation returns Connector name </p>
- */
- public abstract String name();
-
- /**
- * <p> Disconnect connection </p>
- * <p> This operation disconnect this connection </p>
- *
- */
- public abstract ReturnCode disconnect();
-
- /**
- * <p> Getting Buffer </p>
- * <p> This operation returns this connector's buffer </p>
- *
- */
- public abstract BufferBase<OutputStream> getBuffer();
-
- public abstract void activate();
- public abstract void deactivate();
-
- // non-copyable class
- // ConnectorBase(const ConnectorBase& x);
- // ConnectorBase& operator=(const ConnectorBase& x);
-}
-
+package jp.go.aist.rtm.RTC.port;
+
+import java.util.Vector;
+
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import jp.go.aist.rtm.RTC.util.Properties;
+
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * {@.ja Connector 基底クラス}
+ * {@.en Connector Base class}
+ * <p>
+ * {@.ja InPort/OutPort, Push/Pull 各種 Connector を派生させるための
+ * 基底クラス。}
+ * {@.en The base class to derive subclasses for InPort/OutPort,
+ * Push/Pull Connectors}
+ *
+ */
+
+public abstract class ConnectorBase {
+ /**
+ * <p> ConnectorInfoHoldedr </p>
+ *
+ */
+ public static class ConnectorInfoHolder {
+ public ConnectorBase.ConnectorInfo value = null;
+ public ConnectorInfoHolder() {
+ }
+ public ConnectorInfoHolder(ConnectorBase.ConnectorInfo initialValue) {
+ value = initialValue;
+ }
+ };
+ /**
+ * <p> ConnectorInfo </p>
+ * <p> local representation of Connector profile </p>
+ *
+ * <p> ConnectorProfile struct for ConnectorBase and its subclasses. </p>
+ */
+ public static class ConnectorInfo {
+ public ConnectorInfo(final String name_, final String id_,
+ Vector<String> ports_, Properties properties_) {
+ name = name_;
+ id = id_;
+ ports = ports_;
+ properties = properties_;
+ }
+ public String name;
+ public String id;
+ public Vector<String> ports;
+ public Properties properties;
+ };
+
+// typedef std::vector<Profile> ProfileList;
+// typedef std::vector<ConnectorBase*> ConnectorList;
+
+ /**
+ * {@.ja Profile 取得}
+ * {@.en Getting Profile}
+ * <p>
+ * {@.ja Connector Profile を取得する}
+ * {@.en This operation returns Connector Profile}
+ */
+ public abstract ConnectorInfo profile();
+
+ /**
+ * {@.ja Connector ID 取得}
+ * {@.en Getting Connector ID}
+ * <p>
+ * {@.ja Connector ID を取得する}
+ * {@.en This operation returns Connector ID}
+ *
+ */
+ public abstract String id();
+
+ /**
+ * {@.ja Connector 名取得}
+ * {@.en Getting Connector name}
+ * <p>
+ * {@.ja Connector 名を取得する}
+ * {@.en This operation returns Connector name}
+ */
+ public abstract String name();
+
+ /**
+ * {@.ja 接続解除関数}
+ * {@.en Disconnect connection}
+ * <p>
+ * {@.ja Connector が保持している接続を解除する}
+ * {@.en This operation disconnect this connection}
+ */
+ public abstract ReturnCode disconnect();
+
+ /**
+ * {@.ja Buffer を取得する}
+ * {@.en Getting Buffer}
+ * <p>
+ * {@.ja Connector が保持している Buffer を返す}
+ * {@.en This operation returns this connector's buffer}
+ */
+ public abstract BufferBase<OutputStream> getBuffer();
+
+ public abstract void activate();
+ public abstract void deactivate();
+
+ // non-copyable class
+ // ConnectorBase(const ConnectorBase& x);
+ // ConnectorBase& operator=(const ConnectorBase& x);
+}
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListener.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListener.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListener.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,12 +1,10 @@
package jp.go.aist.rtm.RTC.port;
-import java.util.Observer;
import java.util.Observable;
+import java.util.Observer;
import org.omg.CORBA.portable.OutputStream;
-import jp.go.aist.rtm.RTC.port.ConnectorBase;
-import jp.go.aist.rtm.RTC.util.DataRef;
/**
* {@.ja ConnectorDataListener クラス}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListenerArgument.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListenerArgument.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListenerArgument.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,23 +1,27 @@
-package jp.go.aist.rtm.RTC.port;
-
-import org.omg.CORBA.portable.OutputStream;
-
-import jp.go.aist.rtm.RTC.port.ConnectorBase;
-import jp.go.aist.rtm.RTC.util.DataRef;
- /**
- * <p> ConnectorDataListenerArgument class </p>
- *
- *
- */
-public class ConnectorDataListenerArgument {
- public ConnectorDataListenerArgument(ConnectorBase.ConnectorInfo info,
- OutputStream data){
- m_info = info;
- m_data = data;
- }
- public ConnectorBase.ConnectorInfo m_info;
- public OutputStream m_data;
-}
-
-
-
+package jp.go.aist.rtm.RTC.port;
+
+import org.omg.CORBA.portable.OutputStream;
+
+ /**
+ * {@.ja ConnectorDataListener クラス}
+ * {@.en ConnectorDataListenerArgument class}
+ *
+ *
+ */
+public class ConnectorDataListenerArgument {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ */
+ public ConnectorDataListenerArgument(ConnectorBase.ConnectorInfo info,
+ OutputStream data){
+ m_info = info;
+ m_data = data;
+ }
+ public ConnectorBase.ConnectorInfo m_info;
+ public OutputStream m_data;
+}
+
+
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListenerT.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListenerT.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/ConnectorDataListenerT.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,97 +1,118 @@
-package jp.go.aist.rtm.RTC.port;
-
-import java.util.Observer;
-import java.util.Observable;
-
-import java.lang.reflect.Field;
-
-import org.omg.CORBA.portable.Streamable;
-import org.omg.CORBA.portable.OutputStream;
-
-import jp.go.aist.rtm.RTC.port.ConnectorBase;
-import jp.go.aist.rtm.RTC.util.DataRef;
-
- /**
- * <p> ConnectorDataListenerT class </p>
- *
- * <p>This class is abstract base class for listener classes that
- * provides callbacks for various events in the data port's
- * connectors.<p>
- *
- * This class template can have practical data types that are used
- * as typed variable for DataPort as an argument of template instead
- * of cdrMemoryStream.
- *
- */
-public abstract class ConnectorDataListenerT<DataType> implements Observer{
- /**
- * <p> Constructor </p>
- *
- */
- public ConnectorDataListenerT(Class<DataType> cl) {
- String class_name = cl.getName();
- try {
- Class datatype = Class.forName(class_name,
- true,
- this.getClass().getClassLoader());
- m_datatype = (DataType)datatype.newInstance();
- Class holder = Class.forName(class_name+"Holder",
- true,
- this.getClass().getClassLoader());
- m_streamable = (Streamable)holder.newInstance();
- m_field = m_streamable.getClass().getField("value");
- }
- catch(NoSuchFieldException e){
- //getField throws
- e.printStackTrace();
- }
- catch(java.lang.InstantiationException e){
- e.printStackTrace();
- }
- catch(ClassNotFoundException e){
- //forName throws
- e.printStackTrace();
- }
- catch(IllegalAccessException e){
- //set throws
- e.printStackTrace();
- }
- catch(IllegalArgumentException e){
- //invoke throws
- e.printStackTrace();
- }
- }
- /**
- * <p> </p>
- *
- */
- public void update(Observable o, Object obj) {
- ConnectorDataListenerArgument arg
- = (ConnectorDataListenerArgument)obj;
- try {
- m_streamable._read(arg.m_data.create_input_stream());
- m_datatype = (DataType)m_field.get(m_streamable);
- }
- catch(IllegalAccessException e){
- //set throws
- e.printStackTrace();
- }
- catch(IllegalArgumentException e){
- //invoke throws
- e.printStackTrace();
- }
- operator(arg.m_info,m_datatype);
- }
- /**
- * <p> </p>
- *
- */
- public abstract void operator(final ConnectorBase.ConnectorInfo info,
- final DataType data);
- private Streamable m_streamable = null;
- private Field m_field = null;
- private DataType m_datatype = null;
-}
-
-
-
+package jp.go.aist.rtm.RTC.port;
+
+import java.lang.reflect.Field;
+import java.util.Observable;
+import java.util.Observer;
+
+import org.omg.CORBA.portable.Streamable;
+
+ /**
+ * {@.ja ConnectorDataListenerTクラス}
+ * {@.en ConnectorDataListenerT class}
+ *
+ * <p>
+ * {@.ja データポートの Connector において発生する各種イベントに対するコー
+ * ルバックを実現するリスナクラスの基底クラス。}
+ * {@.en This class is abstract base class for listener classes that
+ * provides callbacks for various events in the data port's
+ * connectors.}
+ *
+ */
+public abstract class ConnectorDataListenerT<DataType> implements Observer{
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ */
+ public ConnectorDataListenerT(Class<DataType> cl) {
+ String class_name = cl.getName();
+ try {
+ Class datatype = Class.forName(class_name,
+ true,
+ this.getClass().getClassLoader());
+ m_datatype = (DataType)datatype.newInstance();
+ Class holder = Class.forName(class_name+"Holder",
+ true,
+ this.getClass().getClassLoader());
+ m_streamable = (Streamable)holder.newInstance();
+ m_field = m_streamable.getClass().getField("value");
+ }
+ catch(NoSuchFieldException e){
+ //getField throws
+ e.printStackTrace();
+ }
+ catch(java.lang.InstantiationException e){
+ e.printStackTrace();
+ }
+ catch(ClassNotFoundException e){
+ //forName throws
+ e.printStackTrace();
+ }
+ catch(IllegalAccessException e){
+ //set throws
+ e.printStackTrace();
+ }
+ catch(IllegalArgumentException e){
+ //invoke throws
+ e.printStackTrace();
+ }
+ }
+ /**
+ * {@.ja コールバックメソッド}
+ * {@.en Callback method}
+ * <p>
+ * {@.ja データをデータポートで使用される変数型に変換して
+ * ConnectorDataListenerTのコールバックメソッドを呼び出す。}
+ * {@.en This method invokes the callback method of ConnectorDataListenerT.
+ * Data is converted into the variable type used in DataPort.}
+ *
+ * @param o
+ * {@.ja Observable}
+ * {@.en Observable}
+ * @param obj
+ * {@.ja Object}
+ * {@.en Object}
+ */
+ public void update(Observable o, Object obj) {
+ ConnectorDataListenerArgument arg
+ = (ConnectorDataListenerArgument)obj;
+ try {
+ m_streamable._read(arg.m_data.create_input_stream());
+ m_datatype = (DataType)m_field.get(m_streamable);
+ }
+ catch(IllegalAccessException e){
+ //set throws
+ e.printStackTrace();
+ }
+ catch(IllegalArgumentException e){
+ //invoke throws
+ e.printStackTrace();
+ }
+ operator(arg.m_info,m_datatype);
+ }
+ /**
+ * {@.ja 抽象コールバックメソッド}
+ * {@.en Abstract Callback method}
+ * <p>
+ * {@.ja データポートの Connector において発生する各種イベントに対するコー
+ * ルバックメソッド}
+ * {@.en This method invokes the callback method of ConnectorDataListenerT.
+ * Data is converted into the variable type used in DataPort.}
+ *
+ * @param info
+ * {@.ja ConnectorInfo}
+ * {@.en ConnectorInfo}
+ * @param data
+ * {@.ja データ}
+ * {@.en Data}
+ *
+ */
+ public abstract void operator(final ConnectorBase.ConnectorInfo info,
+ final DataType data);
+ private Streamable m_streamable = null;
+ private Field m_field = null;
+ private DataType m_datatype = null;
+}
+
+
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/CorbaPort.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/CorbaPort.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/CorbaPort.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,39 +1,32 @@
package jp.go.aist.rtm.RTC.port;
-import java.util.Vector;
-import java.util.HashMap;
import java.util.Iterator;
-import java.util.Set;
+import java.util.Vector;
-import jp.go.aist.rtm.RTC.Manager;
import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
-import jp.go.aist.rtm.RTC.util.NVListHolderFactory;
import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.util.operatorFunc;
import jp.go.aist.rtm.RTC.util.ORBUtil;
-import jp.go.aist.rtm.RTC.util.equalFunctor;
import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.util.StringHolder;
+import jp.go.aist.rtm.RTC.util.operatorFunc;
-import org.omg.CORBA.ORB;
+import org.omg.CORBA.Any;
import org.omg.CORBA.BAD_OPERATION;
-import org.omg.CORBA.Object;
+import org.omg.CORBA.ORB;
import org.omg.CORBA.ObjectHelper;
-import org.omg.CORBA.Any;
import org.omg.CORBA.TCKind;
import org.omg.PortableServer.Servant;
import org.omg.PortableServer.POAPackage.ObjectNotActive;
import org.omg.PortableServer.POAPackage.ServantAlreadyActive;
import org.omg.PortableServer.POAPackage.WrongPolicy;
-import _SDOPackage.NVListHolder;
-import _SDOPackage.NameValue;
-
import RTC.ConnectorProfile;
import RTC.ConnectorProfileHolder;
import RTC.PortInterfacePolarity;
import RTC.ReturnCode_t;
+import _SDOPackage.NVListHolder;
+import _SDOPackage.NameValue;
/**
* <p>CORBAを通信手段とするPortクラスです。</p>
@@ -65,17 +58,17 @@
* @param prop properties of the CorbaPort
*/
public void init(Properties prop) {
- rtcout.println(rtcout.TRACE, "init()");
- rtcout.println(rtcout.PARANOID, "given properties:");
+ rtcout.println(Logbuf.TRACE, "init()");
+ rtcout.println(Logbuf.PARANOID, "given properties:");
String dumpString = new String();
dumpString = prop._dump(dumpString, prop, 0);
- rtcout.println(rtcout.DEBUG, dumpString);
+ rtcout.println(Logbuf.DEBUG, dumpString);
m_properties.merge(prop);
- rtcout.println(rtcout.PARANOID, "updated properties:");
+ rtcout.println(Logbuf.PARANOID, "updated properties:");
dumpString = m_properties._dump(dumpString, m_properties, 0);
- rtcout.println(rtcout.DEBUG, dumpString);
+ rtcout.println(Logbuf.DEBUG, dumpString);
int num = -1;
String limit = m_properties.getProperty("connection_limit","-1");
@@ -83,7 +76,7 @@
num = Integer.parseInt(limit);
}
catch(Exception ex){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid connection_limit value: "+limit );
}
setConnectionLimit(num);
@@ -139,7 +132,7 @@
final String type_name, Servant provider)
throws ServantAlreadyActive, WrongPolicy, ObjectNotActive {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"registerProvider(instance="+instance_name+",type_name="+type_name+")");
try{
@@ -148,7 +141,7 @@
provider));
}
catch(Exception ex){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"appending provider interface failed");
return false;
}
@@ -201,7 +194,7 @@
final String type_name,
CorbaConsumerBase consumer) {
- rtcout.println(rtcout.TRACE, "registerConsumer()");
+ rtcout.println(Logbuf.TRACE, "registerConsumer()");
if (! appendInterface(instance_name, type_name,
PortInterfacePolarity.REQUIRED)) {
return false;
@@ -341,7 +334,7 @@
protected
ReturnCode_t publishInterfaces(ConnectorProfileHolder connector_profile) {
- rtcout.println(rtcout.TRACE, "publishInterfaces()");
+ rtcout.println(Logbuf.TRACE, "publishInterfaces()");
ReturnCode_t returnvalue = _publishInterfaces();
if(returnvalue!=ReturnCode_t.RTC_OK) {
@@ -378,7 +371,7 @@
String dumpString = new String();
dumpString = NVUtil.toString(holder);
- rtcout.println(rtcout.DEBUG, dumpString);
+ rtcout.println(Logbuf.DEBUG, dumpString);
return ReturnCode_t.RTC_OK;
}
@@ -513,7 +506,7 @@
protected ReturnCode_t
subscribeInterfaces(final ConnectorProfileHolder connector_profile) {
- rtcout.println(rtcout.TRACE, "subscribeInterfaces()");
+ rtcout.println(Logbuf.TRACE, "subscribeInterfaces()");
final NVListHolder nv
= new NVListHolder(connector_profile.value.properties);
@@ -539,7 +532,7 @@
else if (strictness.equals("strict")) {
strict = true;
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Connetion strictness is: "+ strictness);
}
@@ -560,12 +553,12 @@
// never come here without error
// if strict connection option is set, error is returned.
if (strict) {
- rtcout.println(rtcout.ERROR, "subscribeInterfaces() failed.");
+ rtcout.println(Logbuf.ERROR, "subscribeInterfaces() failed.");
return ReturnCode_t.RTC_ERROR;
}
}
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"subscribeInterfaces() successfully finished.");
return ReturnCode_t.RTC_OK;
@@ -590,23 +583,23 @@
protected void
unsubscribeInterfaces(final ConnectorProfile connector_profile) {
- rtcout.println(rtcout.TRACE, "unsubscribeInterfaces()");
+ rtcout.println(Logbuf.TRACE, "unsubscribeInterfaces()");
final NVListHolder nv = new NVListHolder(connector_profile.properties);
- rtcout.println(rtcout.DEBUG, NVUtil.toString(nv));
+ rtcout.println(Logbuf.DEBUG, NVUtil.toString(nv));
Iterator it = m_consumers.iterator();
while(it.hasNext()) {
StringHolder ior = new StringHolder();
CorbaConsumerHolder cons = (CorbaConsumerHolder)it.next();
if (findProvider(nv, cons, ior)) {
- rtcout.println(rtcout.DEBUG, "Correspoinding consumer found.");
+ rtcout.println(Logbuf.DEBUG, "Correspoinding consumer found.");
releaseObject(ior.value, cons);
continue;
}
if (findProviderOld(nv, cons, ior)) {
- rtcout.println(rtcout.DEBUG, "Correspoinding consumer found.");
+ rtcout.println(Logbuf.DEBUG, "Correspoinding consumer found.");
releaseObject(ior.value, cons);
continue;
}
@@ -640,7 +633,7 @@
m_oid = _default_POA().servant_to_id(servant);
}
catch (Exception e) {
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
try {
@@ -755,7 +748,7 @@
ORB orb = ORBUtil.getOrb();
org.omg.CORBA.Object obj = orb.string_to_object(ior);
if (obj == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Extracted object is nul reference");
return false;
}
@@ -949,7 +942,7 @@
}
iorstr.value = ior;
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"interface matched with new descriptor:"+newdesc);
return true;
@@ -1012,7 +1005,7 @@
}
iorstr.value = ior;
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"interface matched with old descriptor:"+olddesc);
return true;
@@ -1058,14 +1051,14 @@
}
// set IOR to the consumer
if (!cons.setObject(ior)) {
- rtcout.println(rtcout.ERROR, "Cannot narrow reference");
+ rtcout.println(Logbuf.ERROR, "Cannot narrow reference");
return false;
}
if(!cons.setObject(ior)){
- rtcout.println(rtcout.ERROR, "Cannot narrow reference");
+ rtcout.println(Logbuf.ERROR, "Cannot narrow reference");
return false;
}
- rtcout.println(rtcout.TRACE, "setObject() done");
+ rtcout.println(Logbuf.TRACE, "setObject() done");
return true;
}
/**
@@ -1095,11 +1088,11 @@
private boolean releaseObject(final String ior, CorbaConsumerHolder cons){
if (ior == cons.getIor()) {
cons.releaseObject();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"Consumer "+cons.descriptor()+" released.");
return true;
}
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"IORs between Consumer and Connector are different.");
return false;
}
Deleted: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/DataInPort.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/DataInPort.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/DataInPort.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,128 +0,0 @@
-package jp.go.aist.rtm.RTC.port;
-
-import java.util.Iterator;
-import java.util.Vector;
-
-import jp.go.aist.rtm.RTC.util.Properties;
-
-import _SDOPackage.NVListHolder;
-
-import RTC.ConnectorProfile;
-import RTC.ConnectorProfileHolder;
-import RTC.ReturnCode_t;
-
-/**
- * <p>データ入力ポートの実装クラスです。</p>
- *
- * @param <DataType> データ型を指定します。
- */
-public class DataInPort<DataType> extends PortBase {
-
- /**
- * <p>コンストラクタです。</p>
- *
- * @param DATA_TYPE_CLASS 型パラメータ<DataType>で指定したクラスのClassオブジェクト
- * @param name ポート名称
- * @param inPort 当該データ入力ポートに関連付けるInPortオブジェクト
- */
- public DataInPort(Class<DataType> DATA_TYPE_CLASS,
- final String name, InPort<DataType> inPort, Properties prop) throws Exception {
-/*
- super(name);
-
- // PortProfile::properties を設定
- addProperty("port.port_type", "DataInPort", String.class);
-
- NVListHolder holder = new NVListHolder(this.m_profile.properties);
- // CORBA InPort Provider
- this.m_providers.add(new InPortCorbaProvider<DataType>(DATA_TYPE_CLASS, inPort));
- this.m_providers.lastElement().publishInterfaceProfile(holder);
-
- // TCP Socket InPort Provider
- this.m_providers.add(new InPortTcpSockProvider<DataType>(DATA_TYPE_CLASS, inPort, prop));
- this.m_providers.lastElement().publishInterfaceProfile(holder);
-
- this.m_profile.properties = holder.value;
-
- // CORBA OutPort Consumer
- this.m_consumers.add(new OutPortCorbaConsumer<DataType>(DATA_TYPE_CLASS, inPort));
- this.m_dummy.add(Integer.valueOf(1));
-*/
- }
-
- /**
- * <p>Interface情報を公開します。このPortが所有しているプロバイダ(Provider)に関する情報を、
- * ConnectorProfile#propertiesに代入します。</p>
- *
- * @param connector_profile プロバイダ(Provider)に関する情報を受け取るホルダオブジェクト
- *
- * @return ReturnCode_t 戻り値
- */
- protected ReturnCode_t publishInterfaces(ConnectorProfileHolder connector_profile) {
-
- if (this.m_dummy.size() != 1) {
- StringBuffer msg = new StringBuffer();
- msg.append("Memory access violation was detected.\n");
- msg.append("dummy.size(): ").append(this.m_dummy.size()).append("\n");
- msg.append("size() should be 1.\n");
- throw new AssertionError(msg.toString());
- }
-
- for (Iterator<InPortProvider> it = this.m_providers.iterator(); it.hasNext(); ) {
- InPortProvider provider = it.next();
- NVListHolder holder = new NVListHolder(connector_profile.value.properties);
- provider.publishInterface(holder);
- connector_profile.value.properties = holder.value;
- }
-
- return ReturnCode_t.RTC_OK;
- }
-
- /**
- * <p>Interfaceに接続します。Portが所有するConsumerに適合するProviderに関する情報を
- * ConnectorProfile#propertiesから抽出し、ConsumerにCORBAオブジェクト参照を設定します。</p>
- *
- * @param connector_profile 接続プロファイルオブジェクト
- *
- * @return ReturnCode_t 戻り値
- */
- protected ReturnCode_t subscribeInterfaces(final ConnectorProfileHolder connector_profile) {
-
- for (Iterator<OutPortConsumer> it = this.m_consumers.iterator(); it.hasNext(); ) {
- OutPortConsumer consumer = it.next();
- consumer.subscribeInterface(new NVListHolder(connector_profile.value.properties));
- }
-
- return ReturnCode_t.RTC_OK;
- }
-
- /**
- * <p>Interfaceへの接続を解除します。
- * 与えられたConnectorProfileに関連するConsumerに設定された全てのObjectを解放し接続を解除します。</p>
- *
- * @param connector_profile 接続プロファイルオブジェクト
- */
- protected void unsubscribeInterfaces(final ConnectorProfile connector_profile) {
-
- for (Iterator<OutPortConsumer> it = this.m_consumers.iterator(); it.hasNext(); ) {
- OutPortConsumer consumer = it.next();
- consumer.unsubscribeInterface(new NVListHolder(connector_profile.properties));
- }
- }
-
- private Vector<Integer> m_dummy = new Vector<Integer>();
- private Vector<InPortProvider> m_providers = new Vector<InPortProvider>();
- private Vector<OutPortConsumer> m_consumers = new Vector<OutPortConsumer>();
- /**
- * <p> Activate all Port interfaces </p>
- */
- public void activateInterfaces() {
- }
-
- /**
- * <p> Deactivate all Port interfaces </p>
- */
- public void deactivateInterfaces() {
- }
-
-}
Deleted: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/DataOutPort.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/DataOutPort.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/DataOutPort.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,201 +0,0 @@
-package jp.go.aist.rtm.RTC.port;
-
-import java.util.Iterator;
-import java.util.Vector;
-
-import jp.go.aist.rtm.RTC.port.publisher.PublisherBase;
-import jp.go.aist.rtm.RTC.port.publisher.PublisherFactory;
-import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.util.Properties;
-import RTC.ConnectorProfile;
-import RTC.ConnectorProfileHolder;
-import RTC.ReturnCode_t;
-import _SDOPackage.NVListHolder;
-
-
-/*!
- * @if jp
- * @class DataOutPort
- * @brief InPort 用 Port
- * @else
- * @class DataOutPort
- * @brief InPort abstruct class
- * @endif
- */
-/**
- * <p>データ出力ポートです。</p>
- *
- * @param <DataType> データ型を指定します。
- */
-public class DataOutPort<DataType> extends PortBase {
-
- /**
- * <p>コンストラクタです。</p>
- *
- * @param DATA_TYPE_CLASS 型パラメータ<DataType>で指定したクラスのClassオブジェクト
- * @param name ポート名称
- * @param outPort 当該データ出力ポートに関連付けるOutPortオブジェクト
- */
- public DataOutPort(Class<DataType> DATA_TYPE_CLASS,
- final String name, OutPort<DataType> outPort, Properties prop) throws Exception {
-/*
-
- super(name);
- this.m_outPort = outPort;
-
- // PortProfile::properties を設定
- addProperty("port.port_type", "DataOutPort", String.class);
-
- NVListHolder holder = new NVListHolder(this.m_profile.properties);
- // CORBA OutPort Provider
- this.m_providers.add(new OutPortCorbaProvider<DataType>(DATA_TYPE_CLASS, outPort));
- this.m_providers.lastElement().publishInterfaceProfile(holder);
-
- // TCP Socket OutPort Provider
- this.m_providers.add(new OutPortTcpSockProvider<DataType>(DATA_TYPE_CLASS, outPort));
- this.m_providers.lastElement().publishInterfaceProfile(holder);
-
- this.m_profile.properties = holder.value;
-
- this.m_consumers.add(new InPortCorbaConsumer<DataType>(DATA_TYPE_CLASS, outPort));
- this.m_consumers.add(new InPortTcpSockConsumer<DataType>(DATA_TYPE_CLASS, outPort, prop));
-*/
- }
-
- /**
- * <p>Interface 情報を公開します。</p>
- *
- * <p>このメソッドは、notify_connect()処理シーケンスの始めに呼び出されるテンプレートメソッドです。
- * notify_connect()では、
- * <ol>
- * <li>publishInterfaces()</li>
- * <li>connectNext()</li>
- * <li>subscribeInterfaces()</li>
- * <li>updateConnectorProfile()</li>
- * </ol>
- * の順にprotectedメソッドが呼び出されて接続処理が行われます。
- * </p>
- *
- * <p>このメソッドの処理は、新規のconnector_idに対しては接続の生成が適切に行われる必要があります。<br />
- * また、既存のconnector_idに対しては更新が適切に行われる必要があります。</p>
- *
- * @param connector_profile 接続プロファイル情報
- * @return ReturnCode_t 戻り値
- */
- protected ReturnCode_t publishInterfaces(ConnectorProfileHolder connector_profile) {
-
- NVListHolder properties = new NVListHolder(connector_profile.value.properties);
-
- for (Iterator<OutPortProvider> it = this.m_providers.iterator(); it.hasNext(); ) {
- OutPortProvider provider = it.next();
- provider.publishInterface(properties);
- }
- connector_profile.value.properties = properties.value;
-
- return ReturnCode_t.RTC_OK;
- }
-
- /**
- * <p>Interface情報を取得します。</p>
- *
- * <p>このメソッドは、notify_connect()処理シーケンスの中間に呼び出されるテンプレートメソッドです。
- * notify_connect()では、
- * <ol>
- * <li>publishInterfaces()</li>
- * <li>connectNext()</li>
- * <li>subscribeInterfaces()</li>
- * <li>updateConnectorProfile()</li>
- * </ol>
- * の順にprotectedメソッドが呼び出され接続処理が行われます。</p>
- *
- * @param connector_profile 接続プロファイル情報
- * @return ReturnCode_t 戻り値
- */
- protected ReturnCode_t subscribeInterfaces(final ConnectorProfileHolder connector_profile) {
-/*
-
- subscribe s = new subscribe(connector_profile.value);
- for (Iterator<InPortConsumer> it = this.m_consumers.iterator(); it.hasNext(); ) {
- InPortConsumer consumer = it.next();
- s.subscribeInterface(consumer);
- }
- if (s._consumer == null) {
- return ReturnCode_t.RTC_OK;
- }
-
- // Pubslihser を生成
- Properties prop = NVUtil.toProperties(new NVListHolder(connector_profile.value.properties));
- PublisherBase publisher = this.m_pf.create(s._consumer.clone(), prop);
-
- // Publisher を OutPort にアタッチ
- this.m_outPort.attach(connector_profile.value.connector_id, publisher);
-*/
-
- return ReturnCode_t.RTC_OK;
- }
-
- /**
- * <p>Interfaceの接続を解除します。</p>
- *
- * <p>このメソッドは、notify_disconnect()処理シーケンスの終わりに呼び出されるテンプレートメソッドです。
- * notify_disconnect()では、
- * <ol>
- * <li>disconnectNext()</li>
- * <li>unsubscribeInterfaces()</li>
- * <li>eraseConnectorProfile()</li>
- * </ol>
- * の順にprotectedメソッドが呼び出され接続解除処理が行われます。
- *
- * @param connector_profile 接続プロファイル情報
- */
- protected void unsubscribeInterfaces(final ConnectorProfile connector_profile) {
-/*
-
- PublisherBase publisher = this.m_outPort.detach(connector_profile.connector_id);
- if( publisher != null ) {
- this.m_pf.destroy(publisher);
- }
-*/
- }
-
- private Vector<OutPortProvider> m_providers = new Vector<OutPortProvider>();
- private Vector<InPortConsumer> m_consumers = new Vector<InPortConsumer>();
- private OutPortBase m_outPort;
- private PublisherFactory m_pf = new PublisherFactory();
-
- private class subscribe {
-
- public subscribe(final ConnectorProfile prof) {
-
- this.m_prof = prof;
- this._consumer = null;
- }
-
- public subscribe(final subscribe subs) {
-
- this.m_prof = subs.m_prof;
- this._consumer = subs._consumer;
- }
-
- public void subscribeInterface(InPortConsumer cons) {
-
- if (cons.subscribeInterface(new NVListHolder(this.m_prof.properties))) {
- this._consumer = cons;
- }
- }
-
- private final ConnectorProfile m_prof;
- private InPortConsumer _consumer;
- }
- /**
- * <p> Activate all Port interfaces </p>
- */
- public void activateInterfaces() {
- }
-
- /**
- * <p> Deactivate all Port interfaces </p>
- */
- public void deactivateInterfaces() {
- }
-}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPort.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPort.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPort.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,30 +1,19 @@
package jp.go.aist.rtm.RTC.port;
-import java.lang.ClassCastException;
-import org.omg.CORBA.TypeCodePackage.BadKind;
-import java.io.IOException;
-
-import org.omg.CORBA.ORB;
-import org.omg.CORBA.portable.Streamable;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-import com.sun.corba.se.impl.encoding.EncapsOutputStream;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.ClassNotFoundException;
-import java.lang.NoSuchFieldException;
-import java.lang.NoSuchMethodException;
import java.lang.reflect.Field;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
import jp.go.aist.rtm.RTC.buffer.RingBuffer;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.DataRef;
-import jp.go.aist.rtm.RTC.util.TypeCast;
import jp.go.aist.rtm.RTC.util.ORBUtil;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.Streamable;
+import com.sun.corba.se.impl.encoding.EncapsOutputStream;
+
/**
* <p>入力ポートのためのベース実装クラスです。
* 外部から送信されてきたデータは順次、コンストラクタで指定されたバッファに格納されます。
@@ -47,7 +36,7 @@
* @return TypeCdoe(String)
*/
private static <DataType> String toTypeCode(DataRef<DataType> value) {
- DataType data = value.v;
+// DataType data = value.v;
String typeName = value.v.getClass().getSimpleName();
return typeName;
@@ -68,12 +57,12 @@
}
catch(IllegalAccessException e){
//set throws
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(IllegalArgumentException e){
//invoke throws
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
@@ -124,26 +113,26 @@
}
catch(NoSuchFieldException e){
//getField throws
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(java.lang.InstantiationException e){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(ClassNotFoundException e){
//forName throws
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(IllegalAccessException e){
//set throws
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(IllegalArgumentException e){
//invoke throws
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
}
@@ -198,25 +187,25 @@
*/
public boolean isNew() {
- rtcout.println(rtcout.TRACE, "isNew()");
+ rtcout.println(Logbuf.TRACE, "isNew()");
int r = 0;
synchronized (m_connectorsMutex){
synchronized (m_connectors){
if (m_connectors.size() == 0) {
- rtcout.println(rtcout.DEBUG, "no connectors");
+ rtcout.println(Logbuf.DEBUG, "no connectors");
return false;
}
r = m_connectors.elementAt(0).getBuffer().readable();
}
}
if (r > 0) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"isNew() = true, readable data: " + r);
return true;
}
- rtcout.println(rtcout.DEBUG, "isNew() = false, no readable data");
+ rtcout.println(Logbuf.DEBUG, "isNew() = false, no readable data");
return false;
}
@@ -289,14 +278,14 @@
*
*/
public boolean read() {
- rtcout.println(rtcout.TRACE, "DataType read()");
+ rtcout.println(Logbuf.TRACE, "DataType read()");
synchronized (m_connectorsMutex){
if (m_OnRead != null) {
m_OnRead.run();
- rtcout.println(rtcout.TRACE, "OnRead called");
+ rtcout.println(Logbuf.TRACE, "OnRead called");
}
ReturnCode ret;
@@ -307,41 +296,33 @@
synchronized (m_connectors){
if (m_connectors.size() == 0) {
- rtcout.println(rtcout.DEBUG, "no connectors");
+ rtcout.println(Logbuf.DEBUG, "no connectors");
return false;
}
ret = m_connectors.elementAt(0).read(dataref);
}
-//zxc cdr = (EncapsOutputStream)dataref.v;
if (ret.equals(ReturnCode.PORT_OK)) {
- rtcout.println(rtcout.DEBUG, "data read succeeded");
-//zxc byte[] ch = cdr.toByteArray();
-// InputStream input_stream = new EncapsInputStream(m_orb,
-// ch,
-// ch.length,
-// isLittleEndian(),
-// GIOPVersion.V1_2);
+ rtcout.println(Logbuf.DEBUG, "data read succeeded");
-//zxc m_value.v = read_stream(m_value,input_stream);
m_value.v = read_stream(m_value,dataref.v);
if (m_OnReadConvert != null) {
m_value.v = m_OnReadConvert.run(m_value.v);
- rtcout.println(rtcout.DEBUG, "OnReadConvert called");
+ rtcout.println(Logbuf.DEBUG, "OnReadConvert called");
return true;
}
return true;
}
else if (ret.equals(ReturnCode.BUFFER_EMPTY)) {
- rtcout.println(rtcout.WARN, "buffer empty");
+ rtcout.println(Logbuf.WARN, "buffer empty");
return false;
}
else if (ret.equals(ReturnCode.BUFFER_TIMEOUT)) {
- rtcout.println(rtcout.WARN, "buffer read timeout");
+ rtcout.println(Logbuf.WARN, "buffer read timeout");
return false;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"unknown retern value from buffer.read()");
return false;
@@ -457,25 +438,25 @@
*
*/
public boolean isEmpty() {
- rtcout.println(rtcout.TRACE, "isEmpty()");
+ rtcout.println(Logbuf.TRACE, "isEmpty()");
int r = 0;
synchronized (m_connectorsMutex){
synchronized (m_connectors){
if (m_connectors.size() == 0) {
- rtcout.println(rtcout.DEBUG, "no connectors");
+ rtcout.println(Logbuf.DEBUG, "no connectors");
return true;
}
r = m_connectors.elementAt(0).getBuffer().readable();
}
}
if (r == 0) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"isEmpty() = true, buffer is empty");
return true;
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"isEmpty() = false, data exists in the buffer");
return false;
}
@@ -507,7 +488,7 @@
}
catch(NoSuchFieldException e){
//getField throws
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
return false;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,73 +1,84 @@
package jp.go.aist.rtm.RTC.port;
-import java.util.Vector;
+import java.util.HashSet;
import java.util.Iterator;
-import java.util.HashSet;
import java.util.Set;
+import java.util.Vector;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-import org.omg.CORBA.TCKind;
-
-import _SDOPackage.NVListHolder;
-import RTC.ConnectorProfile;
-import RTC.ConnectorProfileHolder;
-import RTC.ReturnCode_t;
-
import jp.go.aist.rtm.RTC.BufferFactory;
import jp.go.aist.rtm.RTC.InPortProviderFactory;
-import jp.go.aist.rtm.RTC.OutPortProviderFactory;
import jp.go.aist.rtm.RTC.OutPortConsumerFactory;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
import jp.go.aist.rtm.RTC.buffer.RingBuffer;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.NVUtil;
import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.NVUtil;
import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import org.omg.CORBA.TCKind;
+import org.omg.CORBA.portable.OutputStream;
+
+import _SDOPackage.NVListHolder;
+import RTC.ConnectorProfile;
+import RTC.ConnectorProfileHolder;
+import RTC.ReturnCode_t;
+
/**
- * <p> InPortBase </p>
- * <p> Port for InPort </p>
+ *
+ * {@.ja InPort 用 Port}
+ * {@.en Port for InPort}
*
- * <p> This is an implementation class for the data input port. <p>
+ * <p>
+ * {@.en データ入力ポートの実装クラス。}
+ * {@.en This is an implementation class for the data input port.}
*
*/
public abstract class InPortBase extends PortBase {
/**
- *
- * <p> Constructor </p>
- * @param name Port name
- * @param data_type Specify the data type used in the InPort object.
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * @param name
+ * {@.ja ポート名称}
+ * {@.en Port name}
+ * @param data_type
+ * {@.ja データタイプ}
+ * {@.en Specify the data type used in the InPort object.}
*/
public InPortBase(final String name, final String data_type) {
super(name);
- rtcout.println(rtcout.DEBUG, "Port name: "+name);
+ rtcout.println(Logbuf.DEBUG, "Port name: "+name);
m_singlebuffer = true;
m_thebuffer = null;
m_isLittleEndian = true;
// Set PortProfile::properties
- rtcout.println(rtcout.DEBUG, "setting port.port_type: DataIntPort");
+ rtcout.println(Logbuf.DEBUG, "setting port.port_type: DataIntPort");
addProperty("port.port_type", "DataInPort",String.class);
- rtcout.println(rtcout.DEBUG, "setting dataport.data_type: "+data_type);
+ rtcout.println(Logbuf.DEBUG, "setting dataport.data_type: "+data_type);
addProperty("dataport.data_type", data_type,String.class);
addProperty("dataport.subscription_type", "Any",String.class);
}
/**
*
- * <p> Get properties </p>
- * <p> This method gets properties in the port. </p>
- * @return Properties Properties
+ * {@.ja プロパティを取得する}
+ * {@.en Get properties}
+ *
+ * <p>
+ * {@.ja ポートのプロパティを取得する。}
+ * {@.en This method gets properties in the port.}
+ * @return
+ * {@.ja プロパティ}
+ * {@.en Properties Properties}
*
*/
public Properties properties() {
- rtcout.println(rtcout.TRACE, "properties()");
+ rtcout.println(Logbuf.TRACE, "properties()");
return m_properties;
}
@@ -87,7 +98,7 @@
*
*/
public final Vector<InPortConnector> connectors() {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"connectors(): size = "+m_connectors.size());
return m_connectors;
}
@@ -107,7 +118,7 @@
*
*/
public Vector<ConnectorBase.ConnectorInfo> getConnectorProfiles(){
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorProfiles(): size = "+m_connectors.size());
Vector<ConnectorBase.ConnectorInfo> profs
= new Vector<ConnectorBase.ConnectorInfo>();
@@ -119,9 +130,15 @@
/**
*
- * <p> ConnectorId list </p>
- * <p> This operation returns ConnectorId list </p>
- * @return Vector<String> connector list
+ * {@.ja ConnectorId を取得}
+ * {@.en ConnectorId list}
+ *
+ * <p>
+ * {@.ja 現在所有しているコネクタのIDを取得する。}
+ * {@.en This operation returns ConnectorId list}
+ * @return
+ * {@.ja ConnectorId のリスト}
+ * {@.en Vector<String> connector list}
*
*/
public Vector<String> getConnectorIds() {
@@ -129,15 +146,20 @@
for (int i=0, len=m_connectors.size(); i < len; ++i) {
ids.add(m_connectors.elementAt(i).id());
}
- rtcout.println(rtcout.TRACE, "getConnectorIds(): "+ids);
+ rtcout.println(Logbuf.TRACE, "getConnectorIds(): "+ids);
return ids;
}
/**
*
- * <p> Connector name list </p>
- * <p> This operation returns Connector name list </p>
- * @return Vector<String> connector name list
+ * {@.ja Connectorの名前を取得}
+ * {@.en Connector name list}
+ * <p>
+ * {@.ja 現在所有しているコネクタの名前を取得する。}
+ * {@.en This operation returns Connector name list}
+ * @return
+ * {@.en Connector名のリスト}
+ * {@.en Vector<String> connector name list}
*
*/
public Vector<String> getConnectorNames() {
@@ -145,18 +167,26 @@
for (int i=0, len=m_connectors.size(); i < len; ++i) {
names.add(m_connectors.elementAt(i).name());
}
- rtcout.println(rtcout.TRACE, "getConnectorNames(): "+names);
+ rtcout.println(Logbuf.TRACE, "getConnectorNames(): "+names);
return names;
}
/**
- * <p> Getting ConnectorProfile by ID </p>
- * <p> This operation returns Connector specified by ID. </p>
- * @param id Connector ID
- * @return InPortConnector connector
+ * {@.ja ConnectorProfileをIDで取得}
+ * {@.en Getting ConnectorProfile by ID}
+ *
+ * <p>
+ * {@.ja 現在所有しているコネクタをIDで取得する。}
+ * {@.en This operation returns Connector specified by ID.}
+ * @param id
+ * {@.ja Connector ID}
+ * {@.en Connector ID}
+ * @return
+ * {@.ja コネクタへのポインタ}
+ * {@.en InPortConnector connector}
*/
public InPortConnector getConnectorById(final String id) {
- rtcout.println(rtcout.TRACE, "getConnectorById(id = "+id+")");
+ rtcout.println(Logbuf.TRACE, "getConnectorById(id = "+id+")");
String sid = id;
for (int i=0, len=m_connectors.size(); i < len; ++i) {
@@ -164,20 +194,27 @@
return m_connectors.elementAt(i);
}
}
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"ConnectorProfile with the id("+id+") not found.");
return null;
}
/**
- * <p> Getting Connector by name </p>
- * <p> This operation returns Connector specified by name. </p>
- * @param name Connector ID
- * @return InPortConnector connector
+ * {@.ja ConnectorProfileを名前で取得}
+ * {@.en Getting Connector by name}
+ * <p>
+ * {@.ja 現在所有しているコネクタを名前で取得する。}
+ * {@.en This operation returns Connector specified by name.}
+ * @param name
+ * {@.ja Connector name}
+ * {@.en Connector ID}
+ * @return
+ * {@.ja コネクタへのポインタ}
+ * {@.en InPortConnector connector}
*
*/
public InPortConnector getConnectorByName(final String name){
- rtcout.println(rtcout.TRACE, "getConnectorByName(name = "+name+")");
+ rtcout.println(Logbuf.TRACE, "getConnectorByName(name = "+name+")");
String sname = name;
for (int i=0, len=m_connectors.size(); i < len; ++i) {
@@ -185,22 +222,31 @@
return m_connectors.elementAt(i);
}
}
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"ConnectorProfile with the name("+name+") not found.");
return null;
}
/**
- * <p> Getting ConnectorProfile by name </p>
- * <p> This operation returns ConnectorProfile specified by name </p>
- * @param id Connector ID
- * @param prof ConnectorProfileHolder
- * @return boolean false specified ID does not exist
+ * {@.ja ConnectorProfileをIDで取得}
+ * {@.en Getting ConnectorProfile by name}
+ * <p>
+ * {@.ja 現在所有しているコネクタをIDで取得する。}
+ * {@.en This operation returns ConnectorProfile specified by name}
+ * @param id
+ * {@.ja Connector ID}
+ * {@.en Connector ID}
+ * @param prof
+ * {@.ja ConnectorProfileHolder}
+ * {@.en ConnectorProfileHolder}
+ * @return
+ * {@.ja false 指定したIDがない}
+ * {@.en false specified ID does not exist}
*
*/
public boolean getConnectorProfileById(final String id,
ConnectorBase.ConnectorInfoHolder prof) {
- rtcout.println(rtcout.TRACE, "getConnectorProfileById(id = "+id+")");
+ rtcout.println(Logbuf.TRACE, "getConnectorProfileById(id = "+id+")");
InPortConnector conn = getConnectorById(id);
if (conn == null) {
@@ -212,17 +258,27 @@
/**
*
- * <p> Getting ConnectorProfile by name </p>
- * <p>This operation returns ConnectorProfile specified by name </p>
+ * {@.ja ConnectorProfileを名前で取得}
+ * {@.en Getting ConnectorProfile by name}
*
- * @param name Connector ID
- * @param prof ConnectorProfile
- * @return boolean false specified name does not exist
+ * <p>
+ * {@.ja 現在所有しているコネクタを名前で取得する。}
+ * {@.en This operation returns ConnectorProfile specified by name}
*
+ * @param name
+ * {@.ja Connector name}
+ * {@.en Connector ID}
+ * @param prof
+ * {@.ja ConnectorProfile}
+ * {@.en ConnectorProfile}
+ * @return
+ * {@.ja false 指定した名前がない}
+ * {@.en false specified name does not exist}
+ *
*/
public boolean getConnectorProfileByName(final String name,
ConnectorBase.ConnectorInfoHolder prof) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorProfileByName(name = "+name+")");
InPortConnector conn = getConnectorByName(name);
if (conn == null) {
@@ -233,26 +289,31 @@
}
/**
- * <p> Initializing properties </p>
- * <p> This method initializes the port in the specified property. </p>
- * @param prop Property for setting ports
+ * {@.ja プロパティの初期化}
+ * {@.en Initializing properties}
+ * <p>
+ * {@.ja 指定されたプロパティで初期化する。}
+ * {@.en This method initializes the port in the specified property.}
+ * @param prop
+ * {@.ja 設定するプロパティ}
+ * {@.en Property for setting ports}
*/
public void init(Properties prop) {
- rtcout.println(rtcout.TRACE, "init()");
+ rtcout.println(Logbuf.TRACE, "init()");
m_properties.merge(prop);
if (m_singlebuffer) {
- rtcout.println(rtcout.DEBUG, "single buffer mode.");
+ rtcout.println(Logbuf.DEBUG, "single buffer mode.");
final BufferFactory<RingBuffer<OutputStream>,String> factory
= BufferFactory.instance();
m_thebuffer = factory.createObject("ring_buffer");
if (m_thebuffer == null) {
- rtcout.println(rtcout.ERROR, "default buffer creation failed.");
+ rtcout.println(Logbuf.ERROR, "default buffer creation failed.");
}
}
else {
- rtcout.println(rtcout.DEBUG, "multi buffer mode.");
+ rtcout.println(Logbuf.DEBUG, "multi buffer mode.");
}
initProviders();
initConsumers();
@@ -263,7 +324,7 @@
num = Integer.parseInt(limit);
}
catch(Exception ex){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid connection_limit value: "+limit );
}
setConnectionLimit(num);
@@ -285,19 +346,22 @@
public abstract boolean read();
/**
- * <p> Activate all Port interfaces </p>
+ * {@.ja InPortを activates する}
+ * {@.en Activate all Port interfaces}
*
- * <p> This operation activate all interfaces that is registered in the </p>
- * <p> ports. </p>
+ * <p>
+ * {@.ja Port に登録されている全てのインターフェースを activate する。}
+ * {@.en This operation activate all interfaces that is registered in the
+ * ports.}
*
*/
public void activateInterfaces() {
- rtcout.println(rtcout.TRACE, "activateInterfaces()");
+ rtcout.println(Logbuf.TRACE, "activateInterfaces()");
synchronized (m_connectors){
for (int i=0, len=m_connectors.size(); i < len; ++i) {
m_connectors.elementAt(i).activate();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"activate connector: "
+ m_connectors.elementAt(i).name()
+" "
@@ -308,19 +372,22 @@
/**
*
- * <p> Deactivate all Port interfaces </p>
+ * {@.ja 全ての Port のインターフェースを deactivates する}
+ * {@.en Deactivate all Port interfaces}
*
- * <p> This operation deactivate all interfaces that is registered in the </p>
- * <p> ports. </p>
+ * <p>
+ * {@.ja Port に登録されている全てのインターフェースを deactivate する。}
+ * {@.en This operation deactivate all interfaces that is registered in
+ * the ports.}
*
*/
public void deactivateInterfaces() {
- rtcout.println(rtcout.TRACE, "deactivateInterfaces()");
+ rtcout.println(Logbuf.TRACE, "deactivateInterfaces()");
synchronized (m_connectors){
for (int i=0, len=m_connectors.size(); i < len; ++i) {
m_connectors.elementAt(i).deactivate();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"deactivate connector: "
+ m_connectors.elementAt(i).name()
+" "
@@ -330,26 +397,31 @@
}
/**
- * <p> Connect the Port </p>
+ * {@.ja [CORBA interface] Port の接続を行う}
+ * {@.en Connect the Port}
*
- * <p> This operation establishes connection according to the given
+ * <p>
+ * {@.ja 与えられた ConnectoionProfile の情報に基づき、Port間の接続を確立
+ * する。この関数は主にアプリケーションプログラムやツールから呼び出
+ * すことを前提としている。}
+ * {@.en This operation establishes connection according to the given
* ConnectionProfile inforamtion. This function is premised on
- * calling from mainly application program or tools.</p>
+ * calling from mainly application program or tools.
*
- * <p> To establish the connection among Ports of RT-Components,
+ * To establish the connection among Ports of RT-Components,
* application programs must call this operation giving
- * ConnectorProfile with valid values as an argument.</p>
+ * ConnectorProfile with valid values as an argument.
*
- * <p> Out of ConnectorProfile member variables, "name", "ports"
+ * Out of ConnectorProfile member variables, "name", "ports"
* and "properties" members shall be set valid
* data. "connector_id" shall be set as empty string value or
- * valid string UUID value. </p>
+ * valid string UUID value.
*
- * <p> ConnectorProfile::name that is connection identifier shall
- * be any valid CORBA::string. </p>
+ * ConnectorProfile::name that is connection identifier shall
+ * be any valid CORBA::string.
*
*
- * <p> ConnectorProfile::connector_id shall be set unique
+ * ConnectorProfile::connector_id shall be set unique
* identifier (usually UUID is used) for all connections. Since
* UUID string value is usually set in the connect() function,
* caller should just set empty string. If the connect() is called
@@ -357,24 +429,24 @@
* returns PRECONDITION_NOT_MET error. However, in order to update
* the existing connection profile, the "connect()" operation with
* existing connector ID might be used as valid method by future
- * extension </p>
+ * extension
*
- * <p> ConnectorProfile::ports, which is sequence of
+ * ConnectorProfile::ports, which is sequence of
* RTC::PortService references, shall store usually two or more
* ports' references. As exceptions, the "connect()" operation
* might be called with only one reference in ConnectorProfile, in
* case of just getting interfaces information from the port, or
* connecting a special port (i.e. the peer port except
- * RTC::PortService on CORBA). </p>
+ * RTC::PortService on CORBA).
*
- * <p> ConnectorProfile::properties might be used to give certain
+ * ConnectorProfile::properties might be used to give certain
* properties to the service interfaces associated with the port.
* The properties is a sequence variable with a pair of key string
* and Any type value. Although the A variable can store any type
- * of values, it is not recommended except string.</p>
+ * of values, it is not recommended except string.
*
- * <p> The following is the summary of the ConnectorProfile
- * member to be set when this operation is called.</p>
+ * The following is the summary of the ConnectorProfile
+ * member to be set when this operation is called.
*
* <ul>
* <li>- ConnectorProfile::name: The any name of connection</li>
@@ -383,33 +455,37 @@
* <li>- ConnectorProfile::properties: Properties for the interfaces</li>
* </ul>
*
- * <p> connect() operation will call the first port in the
- * sequence of the ConnectorProfile.</p>
+ * connect() operation will call the first port in the
+ * sequence of the ConnectorProfile.
*
- * <p> "noify_connect()"s perform cascaded call to the ports
+ * "noify_connect()"s perform cascaded call to the ports
* stored in the ConnectorProfile::ports by order. Even if errors
* are raised by intermediate notify_connect() operation, as long
* as ports' object references are valid, it is guaranteed that
* this cascaded call is completed in all the ports. If invalid
* or dead ports exist in the port's sequence, the ports are
- * skipped and notify_connect() is called for the next valid port.</p>
+ * skipped and notify_connect() is called for the next valid port.
*
- * <p> connect() function returns RTC_OK if all the
+ * connect() function returns RTC_OK if all the
* notify_connect() return RTC_OK. At this time the connection is
* completed. If notify_connect()s return except RTC_OK,
* connect() calls disconnect() operation with the connector_id to
* destruct the connection, and then it returns error code from
- * notify_connect().</p>
+ * notify_connect().
*
- * <p> The ConnectorProfile argument of the connect() operation
+ * The ConnectorProfile argument of the connect() operation
* returns ConnectorProfile::connector_id and various information
* about service interfaces that is published by
* publishInterfaces() in the halfway ports. The connect() and
* halfway notify_connect() functions never change
- * ConnectorProfile::{name, ports}.</p>
+ * ConnectorProfile::(name, ports)}
*
- * @param connector_profile The ConnectorProfile.
- * @return ReturnCode_t The return code of ReturnCode_t type.
+ * @param connector_profile
+ * {@.ja ConnectorProfile}
+ * {@.en The ConnectorProfile.}
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type.}
*/
public ReturnCode_t connect(ConnectorProfileHolder connector_profile) {
//
@@ -433,14 +509,14 @@
/**
* {@.ja Interface情報を公開する}
- * [@.en Publish interface information}
+ * {@.en Publish interface information}
*
* <p>
* {@.ja Interface情報を公開する。
* 引数の ConnectorProfile に格納されている dataflow_type が push 型
* の場合は、指定された interface_type の InPortProvider に関する情報
* を ConnectorProfile::properties に書込み呼び出し側に戻す。}
- * [@.en Publish interface information.
+ * {@.en Publish interface information.
* Assign the Provider information that owned by this port
* to ConnectorProfile#properties}
* </p>
@@ -458,7 +534,7 @@
*
*/
protected ReturnCode_t publishInterfaces(ConnectorProfileHolder cprof) {
- rtcout.println(rtcout.TRACE, "publishInterfaces()");
+ rtcout.println(Logbuf.TRACE, "publishInterfaces()");
ReturnCode_t returnvalue = _publishInterfaces();
if(returnvalue!=ReturnCode_t.RTC_OK) {
@@ -480,11 +556,11 @@
*/
prop.merge(conn_prop.getNode("dataport.inport"));
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"ConnectorProfile::properties are as follows.");
String dumpString = new String();
dumpString = prop._dump(dumpString, prop, 0);
- rtcout.println(rtcout.DEBUG, dumpString);
+ rtcout.println(Logbuf.DEBUG, dumpString);
//
@@ -529,13 +605,13 @@
dflow_type = StringUtil.normalize(dflow_type);
if (dflow_type.equals("push")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type = push .... create PushConnector");
// create InPortProvider
InPortProvider provider = createProvider(cprof, prop);
if (provider == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"InPort provider creation failed.");
return ReturnCode_t.BAD_PARAMETER;
}
@@ -543,23 +619,23 @@
// create InPortPushConnector
InPortConnector connector = createConnector(cprof, prop, provider);
if (connector == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"PushConnector creation failed.");
return ReturnCode_t.RTC_ERROR;
}
provider.setConnector(connector);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"publishInterface() successfully finished.");
return ReturnCode_t.RTC_OK;
}
else if (dflow_type.equals("pull")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type = pull .... do nothing.");
return ReturnCode_t.RTC_OK;
}
- rtcout.println(rtcout.ERROR, "unsupported dataflow_type:"+dflow_type);
+ rtcout.println(Logbuf.ERROR, "unsupported dataflow_type:"+dflow_type);
return ReturnCode_t.BAD_PARAMETER;
}
@@ -588,7 +664,7 @@
*/
protected ReturnCode_t subscribeInterfaces(
final ConnectorProfileHolder cprof) {
- rtcout.println(rtcout.TRACE, "subscribeInterfaces()");
+ rtcout.println(Logbuf.TRACE, "subscribeInterfaces()");
// prop: [port.outport].
Properties prop = m_properties;
@@ -606,11 +682,11 @@
prop.merge(conn_prop.getNode("dataport.inport"));
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"ConnectorProfile::properties are as follows.");
String dumpString = new String();
dumpString = prop._dump(dumpString, prop, 0);
- rtcout.println(rtcout.DEBUG, dumpString);
+ rtcout.println(Logbuf.DEBUG, dumpString);
//
NVListHolder holder = new NVListHolder(cprof.value.properties);
@@ -628,7 +704,7 @@
String[] endian = endian_type.split(",");
String str = endian[0].trim();
if(str.length()==0){
- rtcout.println(rtcout.ERROR, "unsupported endian");
+ rtcout.println(Logbuf.ERROR, "unsupported endian");
return ReturnCode_t.UNSUPPORTED;
}
if(str.equals("little")){
@@ -644,7 +720,7 @@
catch(Exception e){
m_isLittleEndian = true;
}
- rtcout.println(rtcout.TRACE, "Little Endian = "+m_isLittleEndian);
+ rtcout.println(Logbuf.TRACE, "Little Endian = "+m_isLittleEndian);
/*
* Because properties of ConnectorProfileHolder was merged,
@@ -655,19 +731,19 @@
dflow_type = StringUtil.normalize(dflow_type);
if (dflow_type.equals("push")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type is push.");
//
// setting endian type
InPortConnector conn = getConnectorById(cprof.value.connector_id);
if (conn == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"specified connector not found: "+cprof.value.connector_id);
return ReturnCode_t.RTC_ERROR;
}
conn.setEndian(m_isLittleEndian);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"subscribeInterfaces() successfully finished.");
return ReturnCode_t.RTC_OK;
@@ -688,14 +764,14 @@
return ReturnCode_t.RTC_OK;
}
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"specified connector not found: " + id);
return ReturnCode_t.RTC_ERROR;
}
*/
}
else if (dflow_type.equals("pull")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type is pull.");
// create OutPortConsumer
@@ -712,32 +788,39 @@
consumer.setConnector(connector);
connector.setEndian(m_isLittleEndian);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"publishInterface() successfully finished.");
return ReturnCode_t.RTC_OK;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"unsupported dataflow_type:"+dflow_type);
return ReturnCode_t.BAD_PARAMETER;
}
/**
- * <p> Disconnect the interface connection </p>
+ * {@.ja Interfaceへの接続を解除する}
+ * {@.en Disconnect the interface connection}
*
- * <p> Disconnect the interface connection. </p>
- * <p> Release all objects set in Consumer associated with </p>
- * <p> given ConnectorProfile and unscribe the interface. </p>
+ * <p>
+ * {@.ja Interfaceへの接続を解除する。
+ * 与えられたConnectorProfileに関連するConsumerに設定された全てのObjectを
+ * 解放し接続を解除する。}
+ * {@.en Disconnect the interface connection.
+ * Release all objects set in Consumer associated with
+ * given ConnectorProfile and unscribe the interface.}
*
- * @param connector_profile The connector profile
+ * @param connector_profile
+ * {@.ja コネクタ・プロファイル}
+ * {@.en The connector profile}
*
*/
protected void
unsubscribeInterfaces(final ConnectorProfile connector_profile) {
- rtcout.println(rtcout.TRACE, "unsubscribeInterfaces()");
+ rtcout.println(Logbuf.TRACE, "unsubscribeInterfaces()");
String id = connector_profile.connector_id;
- rtcout.println(rtcout.PARANOID, "connector_id: " + id);
+ rtcout.println(Logbuf.PARANOID, "connector_id: " + id);
synchronized (m_connectors){
@@ -748,11 +831,11 @@
// Connector's dtor must call disconnect()
connector.disconnect();
it.remove();
- rtcout.println(rtcout.TRACE, "delete connector: " + id);
+ rtcout.println(Logbuf.TRACE, "delete connector: " + id);
return;
}
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"specified connector not found: " + id);
return;
}
@@ -843,14 +926,14 @@
boolean autoclean) {
if (type < ConnectorDataListenerType.CONNECTOR_DATA_LISTENER_NUM) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"addConnectorDataListener("
+ConnectorDataListenerType.toString(type)
+")");
m_listeners.connectorData_[type].addObserver(listener);
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"addConnectorDataListener(): Invalid listener type.");
return;
}
@@ -878,14 +961,14 @@
if (type < ConnectorDataListenerType.CONNECTOR_DATA_LISTENER_NUM) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"removeConnectorDataListener("
+ConnectorDataListenerType.toString(type)
+")");
m_listeners.connectorData_[type].deleteObserver(listener);
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"removeConnectorDataListener(): Invalid listener type.");
return;
}
@@ -950,14 +1033,14 @@
boolean autoclean) {
if (type < ConnectorListenerType.CONNECTOR_LISTENER_NUM) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"addConnectorListener("
+ConnectorListenerType.toString(type)
+")");
m_listeners.connector_[type].addObserver(listener);
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"addConnectorListener(): Invalid listener type.");
return;
}
@@ -983,14 +1066,14 @@
ConnectorListener listener) {
if (type < ConnectorListenerType.CONNECTOR_LISTENER_NUM) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"removeConnectorListener("
+ConnectorListenerType.toString(type)
+")");
m_listeners.connector_[type].deleteObserver(listener);
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"removeConnectorListener(): Invalid listener type.");
return;
}
@@ -998,23 +1081,24 @@
/**
- * <p> InPort provider initialization </p>
+ * {@.ja InPort provider の初期化}
+ * {@.en InPort provider initialization}
*/
protected void initProviders() {
- rtcout.println(rtcout.TRACE, "initProviders()");
+ rtcout.println(Logbuf.TRACE, "initProviders()");
// create InPort providers
InPortProviderFactory<InPortProvider,String> factory
= InPortProviderFactory.instance();
Set provider_types = factory.getIdentifiers();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"available providers: " + provider_types.toString());
//#ifndef RTC_NO_DATAPORTIF_ACTIVATION_OPTION
String string_normalize = StringUtil.normalize(m_properties.getProperty("provider_types"));
if (m_properties.hasKey("provider_types")!=null &&
!string_normalize.equals("all")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"allowed providers: "
+ m_properties.getProperty("provider_types"));
@@ -1038,7 +1122,7 @@
// InPortProvider supports "push" dataflow type
if (provider_types.size() > 0) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type push is supported");
appendProperty("dataport.dataflow_type", "push");
appendProperty("dataport.interface_type",
@@ -1052,23 +1136,24 @@
}
/**
- * <p> OutPort consumer initialization </p>
+ * {@.ja OutPort consumer の初期化}
+ * {@.en OutPort consumer initialization}
*/
protected void initConsumers() {
- rtcout.println(rtcout.TRACE, "iinitConsumers()");
+ rtcout.println(Logbuf.TRACE, "iinitConsumers()");
// create OuPort consumers
OutPortConsumerFactory<OutPortProvider,String> factory
= OutPortConsumerFactory.instance();
Set consumer_types = factory.getIdentifiers();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"available consumer: " + StringUtil.flatten(consumer_types));
//#ifndef RTC_NO_DATAPORTIF_ACTIVATION_OPTION
String string_normalize = StringUtil.normalize(m_properties.getProperty("consumer_types"));
if (m_properties.hasKey("consumer_types")!=null &&
!string_normalize.equals("all")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"allowed consumers: "
+ m_properties.getProperty("consumer_types"));
@@ -1092,7 +1177,7 @@
// OutPortConsumer supports "pull" dataflow type
if (consumer_types.size() > 0) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type pull is supported");
appendProperty("dataport.dataflow_type", "pull");
appendProperty("dataport.interface_type",
@@ -1106,10 +1191,16 @@
}
/**
- * <p> InPort provider creation </p>
- * <p> InPortProvider is created, </p>
- * <p> and information is published to ConnectorProfile. </p>
- * <p> null is returned if failing in creation. </p>
+ * {@.ja InPort provider の生成}
+ * {@.en InPort provider creation}
+ *
+ * <p>
+ * {@.ja InPortProvider を生成し、情報を ConnectorProfile に公開する。}
+ * {@.en InPortProvider is created,
+ * and information is published to ConnectorProfile.}
+ * @return
+ * {@.ja 生成に失敗した場合 0 を返す。}
+ * {@.en null is returned if failing in creation.}
*/
protected InPortProvider
createProvider(ConnectorProfileHolder cprof, Properties prop) {
@@ -1117,15 +1208,15 @@
!StringUtil.includes(m_providerTypes,
prop.getProperty("interface_type"),
true)) {
- rtcout.println(rtcout.ERROR, "no provider found");
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR, "no provider found");
+ rtcout.println(Logbuf.ERROR,
"interface_type: "+prop.getProperty("interface_type"));
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"interface_types: "+m_providerTypes.toString());
return null;
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"interface_type: "+prop.getProperty("interface_type"));
InPortProvider provider;
InPortProviderFactory<InPortProvider,String> factory
@@ -1133,12 +1224,12 @@
provider = factory.createObject(prop.getProperty("interface_type"));
if (provider != null) {
- rtcout.println(rtcout.DEBUG, "provider created");
+ rtcout.println(Logbuf.DEBUG, "provider created");
provider.init(prop.getNode("provider"));
NVListHolder nvlist = new NVListHolder(cprof.value.properties);
if (!provider.publishInterface(nvlist)) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"publishing interface information error");
factory.deleteObject(provider);
return null;
@@ -1147,14 +1238,20 @@
return provider;
}
- rtcout.println(rtcout.ERROR, "provider creation failed");
+ rtcout.println(Logbuf.ERROR, "provider creation failed");
return null;
}
/**
- * <p> InPort provider creation </p>
- * <p> OutPortConsumer is created. </p>
- * <p> null is returned if failing in creation. </p>
+ * {@.ja OutPort consumer の生成}
+ * {@.en InPort provider creation}
+ *
+ * <p>
+ * {@.ja OutPortConsumer を生成する。}
+ * {@.en OutPortConsumer is created.}
+ * @return
+ * {@.ja 生成に失敗した場合 0 を返す。}
+ * {@.en null is returned if failing in creation.}
*/
protected OutPortConsumer
createConsumer(final ConnectorProfileHolder cprof, Properties prop) {
@@ -1162,15 +1259,15 @@
!StringUtil.includes(m_consumerTypes,
prop.getProperty("interface_type"),
true)) {
- rtcout.println(rtcout.ERROR, "no consumer found");
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR, "no consumer found");
+ rtcout.println(Logbuf.ERROR,
"interface_type: "+prop.getProperty("interface_type"));
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"interface_types: "+m_consumerTypes.toString());
return null;
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"interface_type: "+prop.getProperty("interface_type"));
OutPortConsumer consumer;
OutPortConsumerFactory<OutPortConsumer,String> factory
@@ -1178,12 +1275,12 @@
consumer = factory.createObject(prop.getProperty("interface_type"));
if (consumer != null) {
- rtcout.println(rtcout.DEBUG, "consumer created");
+ rtcout.println(Logbuf.DEBUG, "consumer created");
consumer.init(prop.getNode("consumer"));
NVListHolder nvlist = new NVListHolder(cprof.value.properties);
if (!consumer.subscribeInterface(nvlist)) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"interface subscription failed.");
factory.deleteObject(consumer);
return null;
@@ -1192,14 +1289,19 @@
return consumer;
}
- rtcout.println(rtcout.ERROR, "consumer creation failed");
+ rtcout.println(Logbuf.ERROR, "consumer creation failed");
return null;
}
/**
- * <p> InPortPushConnector creation </p>
- * <p> Connector is created, </p>
- * <p> preserves it in m_connectors. </p>
- * <p> null is returned if failing in creation. </p>
+ * {@.ja InPortPushConnector の生成}
+ * {@.en InPortPushConnector creation}
+ * <p>
+ * {@.ja Connector を生成し、生成が成功すれば m_connectors に保存する。}
+ * {@.en Connector is created,
+ * preserves it in m_connectors.}
+ * @return
+ * {@.ja 生成に失敗した場合 0 を返す。}
+ * {@.en null is returned if failing in creation. }
*/
protected InPortConnector
createConnector(ConnectorProfileHolder cprof, Properties prop,
@@ -1224,29 +1326,34 @@
}
if (connector == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"old compiler? new returned 0;");
return null;
}
- rtcout.println(rtcout.TRACE, "InPortPushConnector create");
+ rtcout.println(Logbuf.TRACE, "InPortPushConnector create");
m_connectors.add(connector);
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"connector push backed: "+m_connectors.size());
return connector;
}
catch (Exception e) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"InPortPushConnector creation failed");
return null;
}
}
}
/**
- * <p> InPortPullConnector creation </p>
- * <p> Connector is created, </p>
- * <p> preserves it in m_connectors. </p>
- * <p> 0 is returned if failing in creation. </p>
+ * {@.ja InPortPullConnector の生成}
+ * {@.en InPortPullConnector creation}
+ * <p>
+ * {@.ja Connector を生成し、生成が成功すれば m_connectors に保存する。}
+ * {@.en Connector is created,
+ * preserves it in m_connectors.}
+ * @return
+ * {@.ja 生成に失敗した場合 0 を返す。}
+ * {@.en 0 is returned if failing in creation.}
*/
protected InPortConnector
createConnector(final ConnectorProfileHolder cprof, Properties prop,
@@ -1272,25 +1379,31 @@
}
if (connector == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"old compiler? new returned 0;");
return null;
}
- rtcout.println(rtcout.TRACE, "InPortPushConnector create");
+ rtcout.println(Logbuf.TRACE, "InPortPullConnector create");
m_connectors.add(connector);
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"connector push backed: "+m_connectors.size());
return connector;
}
catch (Exception e) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"InPortPullConnector creation failed");
return null;
}
}
}
/**
+ * {@.ja endian 設定を返す}
+ * {@.en Returns endian}
+ *
+ * @return
+ * {@.ja m_littleEndian がlittleの場合true、bigの場合false を返す。}
+ * {@.en Returns the endian setting.}
*
*/
public boolean isLittleEndian(){
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortConnector.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortConnector.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortConnector.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,121 +1,176 @@
-package jp.go.aist.rtm.RTC.port;
-
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
-import jp.go.aist.rtm.RTC.log.Logbuf;
-import jp.go.aist.rtm.RTC.util.DataRef;
-import jp.go.aist.rtm.RTC.util.ORBUtil;
-
-/**
- * <p> InPortConnector </p>
- * <p> InPortConnector base class </p>
- *
- * <p> The base class to derive subclasses for InPort's Push/Pull Connectors </p>
- */
-public abstract class InPortConnector extends ConnectorBase {
- /**
- * <p> Constructor </p>
- */
- public InPortConnector(ConnectorBase.ConnectorInfo profile,
- BufferBase<OutputStream> buffer) {
- rtcout = new Logbuf("InPortConnector");
- m_profile = profile;
- m_buffer = buffer;
- m_isLittleEndian = true;
- m_spi_orb = (com.sun.corba.se.spi.orb.ORB)ORBUtil.getOrb();
- m_orb = ORBUtil.getOrb();
- }
-
-
- /**
- * <p> Getting Profile </p>
- *
- * <p> This operation returns Connector Profile </p>
- *
- */
- public final ConnectorInfo profile() {
- rtcout.println(rtcout.TRACE, "profile()");
- return m_profile;
- }
- /**
- * <p> Getting Connector ID </p>
- *
- * <p> This operation returns Connector ID </p>
- *
- */
- public final String id() {
- rtcout.println(rtcout.TRACE, "id() = "+profile().id);
- return profile().id;
- }
-
- /**
- * <p> Getting Connector name </p>
- *
- * <p> This operation returns Connector name </p>
- *
- */
- public final String name() {
- rtcout.println(rtcout.TRACE, "name() = "+profile().name);
- return profile().name;
- }
-
- /**
- * <p> Disconnect connection </p>
- *
- * <p> This operation disconnect this connection </p>
- *
- */
- public abstract ReturnCode disconnect();
-
- /**
- *
- * <p> Getting Buffer </p>
- *
- * <p> This operation returns this connector's buffer </p>
- *
- */
- public BufferBase<OutputStream> getBuffer() {
- return m_buffer;
- }
- /**
- *
- * <p> Setting an endian type </p>
- *
- * <p> This operation set this connector's endian type </p>
- *
- */
- public void setEndian(boolean isLittleEndian){
- m_isLittleEndian = isLittleEndian;
- }
- /**
- * <p> This value is true if the architecture is little-endian; false if it is big-endian. </p>
- *
- */
- public boolean isLittleEndian(){
- return m_isLittleEndian;
- }
- public abstract void setListener(ConnectorInfo profile,
- ConnectorListeners listeners);
-
-
- /**
- *
- * <p> Destructor </p>
- *
- * <p> The read function to read data from buffer to InPort </p>
- *
- */
- public abstract ReturnCode read(DataRef<InputStream> data);
-
- protected Logbuf rtcout;
- protected ConnectorInfo m_profile;
- protected BufferBase<OutputStream> m_buffer;
- protected boolean m_isLittleEndian;
- protected com.sun.corba.se.spi.orb.ORB m_spi_orb;
- protected org.omg.CORBA.ORB m_orb;
-}
-
-
+package jp.go.aist.rtm.RTC.port;
+
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.DataRef;
+import jp.go.aist.rtm.RTC.util.ORBUtil;
+
+/**
+ * {@.ja InPortConnector 基底クラス}
+ * {@.en InPortConnector base class}
+ * <p>
+ * {@.ja InPort の Push/Pull 各種 Connector を派生させるための基底クラス。}
+ * {@.en The base class to derive subclasses for InPort's Push/Pull Connectors}
+ */
+public abstract class InPortConnector extends ConnectorBase {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param profile
+ * {@.ja 接続情報を含む ConnectorInfo オブジェクト}
+ * {@.en ConnectorInfo object which includes connection information}
+ * @param buffer
+ * {@.ja このコネクタのバッファへのポインタ}
+ * {@.en A pointer to the buffer of the connector}
+ */
+ public InPortConnector(ConnectorBase.ConnectorInfo profile,
+ BufferBase<OutputStream> buffer) {
+ rtcout = new Logbuf("InPortConnector");
+ m_profile = profile;
+ m_buffer = buffer;
+ m_isLittleEndian = true;
+ m_spi_orb = (com.sun.corba.se.spi.orb.ORB)ORBUtil.getOrb();
+ m_orb = ORBUtil.getOrb();
+ }
+
+
+ /**
+ * {@.ja ConnectorInfo 取得}
+ * {@.en Getting ConnectorInfo}
+ * <p>
+ * {@.ja Connector ConnectorInfo を取得する}
+ * {@.en This operation returns ConnectorInfo}
+ *
+ * @return
+ * {@.ja このコネクタが保持する ConnectorInfo オブジェクト}
+ * {@.en ConnectorInfo object which is owned by this connector}
+ */
+ public final ConnectorInfo profile() {
+ rtcout.println(Logbuf.TRACE, "profile()");
+ return m_profile;
+ }
+ /**
+ * {@.ja Connector ID 取得}
+ * {@.en Getting Connector ID}
+ * <p>
+ * {@.ja Connector ID を取得する}
+ * {@.en This operation returns Connector ID}
+ *
+ * @return
+ * {@.ja コネクタ ID 文字列へのポインタ}
+ * {@.en A pointer to the connector id string}
+ */
+ public final String id() {
+ rtcout.println(Logbuf.TRACE, "id() = "+profile().id);
+ return profile().id;
+ }
+
+ /**
+ * {@.ja Connector 名取得}
+ * {@.en Getting Connector name}
+ * <p>
+ * {@.ja Connector 名を取得する}
+ * {@.en This operation returns Connector name}
+ *
+ * @return
+ * {@.ja コネクタ名文字列へのポインタ}
+ * {@.en A pointer to the connector's name string}
+ */
+ public final String name() {
+ rtcout.println(Logbuf.TRACE, "name() = "+profile().name);
+ return profile().name;
+ }
+
+ /**
+ * {@.ja 接続解除関数}
+ * {@.en Disconnect connection}
+ * <p>
+ * {@.ja Connector が保持している接続を解除する}
+ * {@.en This operation disconnect this connection}
+ *
+ * @return
+ * {@.ja ReturnCode}
+ * {@.en ReturnCode}
+ */
+ public abstract ReturnCode disconnect();
+
+ /**
+ * {@.ja Buffer を取得する}
+ * {@.en Getting Buffer}
+ * <p>
+ * {@.ja Connector が保持している Buffer を返す}
+ * {@.en This operation returns this connector's buffer}
+ *
+ * @return
+ * {@.ja このコネクタが保持するバッファへのポインタ}
+ * {@.en A pointer to the buffer owned by this connector}
+ *
+ */
+ public BufferBase<OutputStream> getBuffer() {
+ return m_buffer;
+ }
+ /**
+ * {@.ja endianタイプ設定}
+ * {@.en Setting an endian type}
+ * <p>
+ * {@.ja endianタイプを設定する}
+ * {@.en This operation set this connector's endian type}
+ *
+ * @param isLittleEndian
+ * {@.ja true: little, false: big}
+ * {@.en true: little, false: big}
+ */
+ public void setEndian(boolean isLittleEndian){
+ m_isLittleEndian = isLittleEndian;
+ }
+ /**
+ * {@.ja endian 設定を返す}
+ * {@.en Returns endian}
+ * <p>
+ * {@.en This value is true if the architecture is little-endian;
+ * false if it is big-endian.}
+ *
+ * @return
+ * {@.ja m_littleEndian がlittleの場合true、bigの場合false を返す。}
+ * {@.en Returns the endian setting.}
+ *
+ */
+ public boolean isLittleEndian(){
+ return m_isLittleEndian;
+ }
+ /**
+ * {@.ja リスナを設定する。}
+ * {@.en Set the listener.}
+ *
+ * @param profile
+ * {@.ja 接続情報}
+ * {@.en Connector information}
+ * @param listeners
+ * {@.ja リスナオブジェクト}
+ * {@.en Listener objects}
+ */
+ public abstract void setListener(ConnectorInfo profile,
+ ConnectorListeners listeners);
+
+
+ /**
+ *
+ * {@.ja read 関数}
+ * {@.en Reading data}
+ *
+ */
+ public abstract ReturnCode read(DataRef<InputStream> data);
+
+ protected Logbuf rtcout;
+ protected ConnectorInfo m_profile;
+ protected BufferBase<OutputStream> m_buffer;
+ protected boolean m_isLittleEndian;
+ protected com.sun.corba.se.spi.orb.ORB m_spi_orb;
+ protected org.omg.CORBA.ORB m_orb;
+}
+
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortConsumer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortConsumer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortConsumer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,11 +1,9 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
-import jp.go.aist.rtm.RTC.port.ReturnCode;
import jp.go.aist.rtm.RTC.util.Properties;
+import org.omg.CORBA.portable.OutputStream;
+
import _SDOPackage.NVListHolder;
/**
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortCorbaCdrConsumer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortCorbaCdrConsumer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortCorbaCdrConsumer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,370 +1,479 @@
-package jp.go.aist.rtm.RTC.port;
-
-import org.omg.CORBA.ORB;
-import org.omg.CORBA.BAD_OPERATION;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-import org.omg.CORBA.TCKind;
-
-import java.io.ByteArrayOutputStream;
-import java.nio.ByteBuffer;
-import com.sun.corba.se.impl.encoding.EncapsOutputStream;
-
-import _SDOPackage.NVListHolder;
-import OpenRTM.CdrDataHolder;
-
-
-import jp.go.aist.rtm.RTC.InPortConsumerFactory;
-import jp.go.aist.rtm.RTC.ObjectCreator;
-import jp.go.aist.rtm.RTC.ObjectDestructor;
-import jp.go.aist.rtm.RTC.Manager;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
-import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.ORBUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
-
-/**
- * <p> InPortCorbaCdrConsumer </p>
- * <p> InPortCorbaCdrConsumer class </p>
- * <p> This is an implementation class of the input port Consumer </p>
- * <p> that uses CORBA for means of communication. </p>
- */
-
-public class InPortCorbaCdrConsumer extends CorbaConsumer< OpenRTM.InPortCdr > implements InPortConsumer, ObjectCreator<InPortConsumer>, ObjectDestructor {
- /**
- * <p> Constructor </p>
- * <p> buffer The buffer object that is attached to this Consumer </p>
- *
- */
- public InPortCorbaCdrConsumer() {
- super(OpenRTM.InPortCdr.class);
- m_spi_orb = (com.sun.corba.se.spi.orb.ORB)ORBUtil.getOrb();
- rtcout = new Logbuf("InPortCorbaCdrConsumer");
-// rtcout.setLevel("PARANOID");
- m_spi_orb = (com.sun.corba.se.spi.orb.ORB)ORBUtil.getOrb();
- m_orb = ORBUtil.getOrb();
- }
- /**
- * <p> Initializing configuration </p>
- * <p> This operation would be called to configure this consumer </p>
- * <p> in initialization. </p>
- *
- */
- public void init(Properties prop) {
- m_properties = prop;
- }
-
- /**
- * <p> Send data to the destination port </p>
- * <p> Pure virtual function to send data to the destination port. </p>
- *
- */
- public ReturnCode put(final OutputStream data) {
- rtcout.println(rtcout.PARANOID, "put");
-
- EncapsOutputStream cdr;
- cdr = (EncapsOutputStream)data;
- byte[] ch = cdr.toByteArray();
- EncapsOutputStream output_stream
- = new EncapsOutputStream(m_spi_orb, m_connector.isLittleEndian());
- output_stream.write_octet_array(ch,0,ch.length);
-
- try {
-// OpenRTM.PortStatus ret = _ptr().put(cdr.toByteArray());
- OpenRTM.PortStatus ret = _ptr().put(output_stream.toByteArray());
- return convertReturn(ret);
- }
- catch (Exception e) {
- return ReturnCode.CONNECTION_LOST;
- }
- }
- /**
- * <p> Publish InterfaceProfile information </p>
- *
- * <p> Publish interfaceProfile information. </p>
- * <p> Check the dataport.interface_type value of the NameValue object </p>
- * <p> specified by an argument in property information and get information </p>
- * <p> only when the interface type of the specified port is matched. </p>
- *
- * @param properties Properties to get InterfaceProfile information
- *
- */
- public void publishInterfaceProfile(NVListHolder properties) {
- return;
- }
- /**
- * <p> Subscribe to the data sending notification </p>
- * <p> Subscribe to the data sending notification based on specified </p>
- * <p> property information. </p>
- * @param properties Information for subscription
- * @return Subscription result (Successful:true, Failed:false)
- *
- */
- public boolean subscribeInterface(final NVListHolder properties) {
- rtcout.println(rtcout.TRACE, "subscribeInterface()");
- if(properties.value == null){
- rtcout.println(rtcout.DEBUG, "NVListHolder is null.");
- return false;
- }
- rtcout.println(rtcout.DEBUG,
- "Length of NVListHolder:"+properties.value.length);
- rtcout.println(rtcout.DEBUG, NVUtil.toString(properties));
-
- // getting InPort's ref from IOR string
- if (subscribeFromIor(properties)) {
- return true;
- }
-
- // getting InPort's ref from Object reference
- if (subscribeFromRef(properties)) {
- return true;
- }
-
- return false;
- }
-
- /**
- * <p> Unsubscribe the data send notification </p>
- * <p> Unsubscribe the data send notification. </p>
- * @param properties Information for unsubscription
- *
- */
- public void unsubscribeInterface(final NVListHolder properties) {
- rtcout.println(rtcout.TRACE, "unsubscribeInterface()");
- rtcout.println(rtcout.DEBUG, NVUtil.toString(properties));
-
- if (unsubscribeFromIor(properties)) {
- return;
- }
- unsubscribeFromRef(properties);
- }
-
- /**
- * <p> Getting object reference fromn IOR string </p>
- * @param properties Information for subscription
- * @return true: succeeded, false: failed
- *
- */
- private boolean subscribeFromIor(final NVListHolder properties) {
- rtcout.println(rtcout.TRACE, "subscribeFromIor()");
-
- int index;
- index = NVUtil.find_index(properties,
- "dataport.corba_cdr.inport_ior");
- if (index < 0) {
- rtcout.println(rtcout.ERROR, "inport_ior not found");
- return false;
- }
- rtcout.println(rtcout.DEBUG, "index:"+index);
-
- final String ior;
-
- try {
- rtcout.println(rtcout.DEBUG,
- "type:"+properties.value[index].value.type());
- if( properties.value[index].value.type().kind() ==
- TCKind.tk_wstring ) {
- ior = properties.value[index].value.extract_wstring();
- } else {
- ior = properties.value[index].value.extract_string();
- }
- }
- catch(BAD_OPERATION e) {
- rtcout.println(rtcout.ERROR, "inport_ior has no string");
- return false;
- }
-
- ORB orb = ORBUtil.getOrb();
- org.omg.CORBA.Object obj = orb.string_to_object(ior);
-
- if (obj==null) {
- rtcout.println(rtcout.ERROR, "invalid IOR string has been passed");
- return false;
- }
-
- if (!super.setObject(obj)) {
- rtcout.println(rtcout.WARN, "Setting object to consumer failed.");
- return false;
- }
- return true;
- }
-
- /**
- * <p> Getting object reference fromn Any directry </p>
- * @param properties Information for subscription
- * @return true: succeeded, false: failed
- *
- */
- private boolean subscribeFromRef(final NVListHolder properties) {
- rtcout.println(rtcout.TRACE, "subscribeFromRef()");
- int index;
- index = NVUtil.find_index(properties,
- "dataport.corba_cdr.inport_ref");
- if (index < 0) {
- rtcout.println(rtcout.ERROR, "inport_ref not found");
- return false;
- }
-
- org.omg.CORBA.Object obj;
- try {
- obj = properties.value[index].value.extract_Object();
- }
- catch(BAD_OPERATION e){
- rtcout.println(rtcout.ERROR, "prop[inport_ref] is not objref");
- return true;
- }
-
- if (obj==null) {
- rtcout.println(rtcout.ERROR, "prop[inport_ref] is not objref");
- return false;
- }
-
- if (!super.setObject(obj)) {
- rtcout.println(rtcout.ERROR, "Setting object to consumer failed.");
- return false;
- }
- return true;
- }
-
- /**
- * <p> ubsubscribing (IOR version) </p>
- * @param properties Information for unsubscription
- * @return true: succeeded, false: failed
- *
- */
- private boolean unsubscribeFromIor(final NVListHolder properties) {
- rtcout.println(rtcout.TRACE, "unsubscribeFromIor()");
- int index;
- index = NVUtil.find_index(properties,
- "dataport.corba_cdr.inport_ior");
- if (index < 0) {
- rtcout.println(rtcout.ERROR, "inport_ior not found");
- return false;
- }
-
- final String ior;
- try {
- if( properties.value[index].value.type().kind() ==
- TCKind.tk_wstring ) {
- ior = properties.value[index].value.extract_wstring();
- } else {
- ior = properties.value[index].value.extract_string();
- }
- }
- catch(BAD_OPERATION e) {
- rtcout.println(rtcout.ERROR, "inport_ior has no string");
- return false;
- }
-
- ORB orb = ORBUtil.getOrb();
- org.omg.CORBA.Object var = orb.string_to_object(ior);
- if (!(_ptr()._is_equivalent(var))) {
- rtcout.println(rtcout.ERROR, "connector property inconsistency");
- return false;
- }
-
- releaseObject();
- return true;
- }
-
- /**
- * <p> ubsubscribing (Object reference version) </p>
- * @param properties Information for unsubscription
- * @return true: succeeded, false: failed
- *
- */
- private boolean unsubscribeFromRef(final NVListHolder properties) {
- rtcout.println(rtcout.TRACE, "unsubscribeFromRef()");
- int index;
- index = NVUtil.find_index(properties,
- "dataport.corba_cdr.inport_ref");
- if (index < 0) {
- return false;
- }
-
- org.omg.CORBA.Object obj;
- try {
- obj = properties.value[index].value.extract_Object();
- }
- catch(BAD_OPERATION e){
- rtcout.println(rtcout.ERROR, "prop[inport_ref] is not objref");
- return false;
- }
-
- if (!(_ptr()._is_equivalent(obj))) {
- rtcout.println(rtcout.ERROR, "connector property inconsistency");
- return false;
- }
-
- releaseObject();
- return true;
- }
- /**
- * <p> convertReturn </p>
- *
- */
- protected ReturnCode convertReturn(OpenRTM.PortStatus status) {
- switch (status.value()) {
- case 0:
- return ReturnCode.PORT_OK;
- case 1:
- return ReturnCode.PORT_ERROR;
- case 2:
- return ReturnCode.BUFFER_FULL;
- case 3:
- return ReturnCode.BUFFER_EMPTY;
- case 4:
- return ReturnCode.BUFFER_TIMEOUT;
- default:
- return ReturnCode.UNKNOWN_ERROR;
- }
- }
-
- /**
- * <p> creator_ </p>
- *
- * @return Object Created instances
- *
- */
- public InPortConsumer creator_() {
- return new InPortCorbaCdrConsumer();
- }
- /**
- * <p> destructor_ </p>
- *
- * @param obj The target instances for destruction
- *
- */
- public void destructor_(Object obj) {
- obj = null;
- }
- /**
- * <p> InPortCorbaCdrConsumerInit </p>
- *
- */
- public static void InPortCorbaCdrConsumerInit() {
- final InPortConsumerFactory<InPortConsumer,String> factory
- = InPortConsumerFactory.instance();
-
- factory.addFactory("corba_cdr",
- new InPortCorbaCdrConsumer(),
- new InPortCorbaCdrConsumer());
-
- }
- /**
- * <p> setConnecotor </p>
- * @param connector
- */
- public void setConnector(OutPortConnector connector) {
- m_connector = connector;
- }
-
- private Logbuf rtcout;
- private Properties m_properties;
- private com.sun.corba.se.spi.orb.ORB m_spi_orb;
- private OutPortConnector m_connector;
- private ORB m_orb;
-
-}
-
+package jp.go.aist.rtm.RTC.port;
+
+import jp.go.aist.rtm.RTC.InPortConsumerFactory;
+import jp.go.aist.rtm.RTC.ObjectCreator;
+import jp.go.aist.rtm.RTC.ObjectDestructor;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.ORBUtil;
+import jp.go.aist.rtm.RTC.util.Properties;
+
+import org.omg.CORBA.BAD_OPERATION;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.TCKind;
+import org.omg.CORBA.portable.OutputStream;
+
+import _SDOPackage.NVListHolder;
+
+import com.sun.corba.se.impl.encoding.EncapsOutputStream;
+
+/**
+ * {@.ja InPortCorbaCdrConsumer クラス}
+ * {@.en InPortCorbaCdrConsumer class}
+ * <p>
+ * {@.ja データ転送に CORBA の OpenRTM::InPortCdr インターフェースを利用し
+ * た、push 型データフロー型を実現する InPort コンシューマクラス。}
+ * {@.en This is an implementation class of the input port Consumer </p>
+ * that uses CORBA for means of communication. </p>
+ * The InPort consumer class which uses the OpenRTM::InPortCdr
+ * interface in CORBA for data transfer and realizes a push-type
+ * dataflow.}
+ */
+
+public class InPortCorbaCdrConsumer extends CorbaConsumer< OpenRTM.InPortCdr > implements InPortConsumer, ObjectCreator<InPortConsumer>, ObjectDestructor {
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * <p>
+ * {@.en buffer 当該コンシューマに割り当てるバッファオブジェクト}
+ * {@.en buffer The buffer object that is attached to this Consumer}
+ *
+ */
+ public InPortCorbaCdrConsumer() {
+ super(OpenRTM.InPortCdr.class);
+ m_spi_orb = (com.sun.corba.se.spi.orb.ORB)ORBUtil.getOrb();
+ rtcout = new Logbuf("InPortCorbaCdrConsumer");
+// rtcout.setLevel("PARANOID");
+ m_spi_orb = (com.sun.corba.se.spi.orb.ORB)ORBUtil.getOrb();
+ m_orb = ORBUtil.getOrb();
+ }
+ /**
+ * {@.ja 設定初期化}
+ * {@.en Initializing configuration}
+ * <p>
+ * {@.ja InPortConsumerの各種設定を行う。実装クラスでは、与えられた
+ * Propertiesから必要な情報を取得して各種設定を行う。この init() 関
+ * 数は、InPortProvider生成直後および、接続時にそれぞれ呼ばれる可
+ * 能性がある。したがって、この関数は複数回呼ばれることを想定して記
+ * 述されるべきである。}
+ * {@.en This operation would be called to configure in initialization.
+ * In the concrete class, configuration should be performed
+ * getting appropriate information from the given Properties data.
+ * This function might be called right after instantiation and
+ * connection sequence respectivly. Therefore, this function
+ * should be implemented assuming multiple call.}
+ *
+ * @param prop
+ * {@.ja 設定情報}
+ * {@.en Configuration information}
+ */
+ public void init(Properties prop) {
+ m_properties = prop;
+ }
+
+ /**
+ * <p> Send data to the destination port </p>
+ * <p> Pure virtual function to send data to the destination port. </p>
+ *
+ */
+ /**
+ * {@.ja 接続先へのデータ送信}
+ * {@.en Send data to the destination port}
+ * <p>
+ * {@.ja 接続先のポートへデータを送信するための純粋仮想関数。
+ *
+ * この関数は、以下のリターンコードを返す。
+ * <ul>
+ * <li>- PORT_OK: 正常終了。
+ * <li>- PORT_ERROR: データ送信の過程で何らかのエラーが発生した。
+ * <li>- SEND_FULL: データを送信したが、相手側バッファがフルだった。
+ * <li>- SEND_TIMEOUT:データを送信したが、相手側バッファがタイムアウトした。
+ * <li>- UNKNOWN_ERROR:原因不明のエラー</ul>}
+ * {@.en Pure virtual function to send data to the destination port.
+ *
+ * This function might the following return codes
+ * <ul>
+ * <li>- PORT_OK: Normal return
+ * <li>- PORT_ERROR: Error occurred in data transfer process
+ * <li>- SEND_FULL: Buffer full although OutPort tried to send data
+ * <li>- SEND_TIMEOUT: Timeout although OutPort tried to send data
+ * <li>- UNKNOWN_ERROR: Unknown error</ul>}
+ *
+ * @param data
+ * {@.ja 送信するデータ}
+ * {@.en Data sent by this operation.}
+ * @return
+ * {@.ja リターンコード}
+ * {@.en ReturnCode}
+ */
+ public ReturnCode put(final OutputStream data) {
+ rtcout.println(Logbuf.PARANOID, "put");
+
+ EncapsOutputStream cdr;
+ cdr = (EncapsOutputStream)data;
+ byte[] ch = cdr.toByteArray();
+ EncapsOutputStream output_stream
+ = new EncapsOutputStream(m_spi_orb, m_connector.isLittleEndian());
+ output_stream.write_octet_array(ch,0,ch.length);
+
+ try {
+// OpenRTM.PortStatus ret = _ptr().put(cdr.toByteArray());
+ OpenRTM.PortStatus ret = _ptr().put(output_stream.toByteArray());
+ return convertReturn(ret);
+ }
+ catch (Exception e) {
+ return ReturnCode.CONNECTION_LOST;
+ }
+ }
+ /**
+ * {@.ja InterfaceProfile情報を公開する}
+ * {@.en Publish InterfaceProfile information}
+ * <p>
+ * {@.ja InterfaceProfile情報を公開する。
+ * 引数で指定するプロパティ情報内の NameValue オブジェクトの
+ * dataport.interface_type 値を調べ、当該ポートに設定されている
+ * インターフェースタイプと一致する場合のみ情報を取得する。}
+ * {@.en Publish interfaceProfile information.
+ * Check the dataport.interface_type value of the NameValue object
+ * specified by an argument in property information and get information
+ * only when the interface type of the specified port is matched.}
+ *
+ * @param properties
+ * {@.ja InterfaceProfile情報を受け取るプロパティ}
+ * {@.en Properties to get InterfaceProfile information}
+ */
+ public void publishInterfaceProfile(NVListHolder properties) {
+ return;
+ }
+ /**
+ * {@.ja データ送信通知への登録}
+ * {@.en Subscribe to the data sending notification}
+ * <p>
+ * {@.ja 指定されたプロパティに基づいて、データ送出通知の受け取り
+ * に登録する。}
+ * {@.en Subscribe to the data sending notification based on specified
+ * property information.}
+ *
+ * @param properties
+ * {@.ja 登録情報}
+ * {@.en Information for subscription}
+ *
+ * @return
+ * {@.ja 登録処理結果(登録成功:true、登録失敗:false)}
+ * {@.en Subscription result (Successful:true, Failed:false)}
+ */
+ public boolean subscribeInterface(final NVListHolder properties) {
+ rtcout.println(Logbuf.TRACE, "subscribeInterface()");
+ if(properties.value == null){
+ rtcout.println(Logbuf.DEBUG, "NVListHolder is null.");
+ return false;
+ }
+ rtcout.println(Logbuf.DEBUG,
+ "Length of NVListHolder:"+properties.value.length);
+ rtcout.println(Logbuf.DEBUG, NVUtil.toString(properties));
+
+ // getting InPort's ref from IOR string
+ if (subscribeFromIor(properties)) {
+ return true;
+ }
+
+ // getting InPort's ref from Object reference
+ if (subscribeFromRef(properties)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * {@.ja データ送信通知からの登録解除}
+ * {@.en Unsubscribe the data send notification}
+ * <p>
+ * {@.ja データ送出通知の受け取りから登録を解除する。}
+ * {@.en Unsubscribe the data send notification.}
+ *
+ * @param properties
+ * {@.ja 登録解除情報}
+ * {@.en Information for unsubscription}
+ */
+ public void unsubscribeInterface(final NVListHolder properties) {
+ rtcout.println(Logbuf.TRACE, "unsubscribeInterface()");
+ rtcout.println(Logbuf.DEBUG, NVUtil.toString(properties));
+
+ if (unsubscribeFromIor(properties)) {
+ return;
+ }
+ unsubscribeFromRef(properties);
+ }
+
+ /**
+ * {@.ja IOR文字列からオブジェクト参照を取得する}
+ * {@.en Getting object reference fromn IOR string}
+ * @param properties
+ * {@.ja Information for subscription}
+ * {@.en Information for subscription}
+ *
+ * @return
+ * {@.ja true: 正常取得, false: 取得失敗}
+ * {@.en true: succeeded, false: failed}
+ */
+ private boolean subscribeFromIor(final NVListHolder properties) {
+ rtcout.println(Logbuf.TRACE, "subscribeFromIor()");
+
+ int index;
+ index = NVUtil.find_index(properties,
+ "dataport.corba_cdr.inport_ior");
+ if (index < 0) {
+ rtcout.println(Logbuf.ERROR, "inport_ior not found");
+ return false;
+ }
+ rtcout.println(Logbuf.DEBUG, "index:"+index);
+
+ final String ior;
+
+ try {
+ rtcout.println(Logbuf.DEBUG,
+ "type:"+properties.value[index].value.type());
+ if( properties.value[index].value.type().kind() ==
+ TCKind.tk_wstring ) {
+ ior = properties.value[index].value.extract_wstring();
+ } else {
+ ior = properties.value[index].value.extract_string();
+ }
+ }
+ catch(BAD_OPERATION e) {
+ rtcout.println(Logbuf.ERROR, "inport_ior has no string");
+ return false;
+ }
+
+ ORB orb = ORBUtil.getOrb();
+ org.omg.CORBA.Object obj = orb.string_to_object(ior);
+
+ if (obj==null) {
+ rtcout.println(Logbuf.ERROR, "invalid IOR string has been passed");
+ return false;
+ }
+
+ if (!super.setObject(obj)) {
+ rtcout.println(Logbuf.WARN, "Setting object to consumer failed.");
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * {@.ja Anyから直接オブジェクト参照を取得する}
+ * {@.en Getting object reference fromn Any directry}
+ * @param properties
+ * {@.ja Information for subscription}
+ * {@.en Information for subscription}
+ * @return
+ * {@.ja true: 正常取得, false: 取得失敗}
+ * {@.en true: succeeded, false: failed}
+ *
+ */
+ private boolean subscribeFromRef(final NVListHolder properties) {
+ rtcout.println(Logbuf.TRACE, "subscribeFromRef()");
+ int index;
+ index = NVUtil.find_index(properties,
+ "dataport.corba_cdr.inport_ref");
+ if (index < 0) {
+ rtcout.println(Logbuf.ERROR, "inport_ref not found");
+ return false;
+ }
+
+ org.omg.CORBA.Object obj;
+ try {
+ obj = properties.value[index].value.extract_Object();
+ }
+ catch(BAD_OPERATION e){
+ rtcout.println(Logbuf.ERROR, "prop[inport_ref] is not objref");
+ return true;
+ }
+
+ if (obj==null) {
+ rtcout.println(Logbuf.ERROR, "prop[inport_ref] is not objref");
+ return false;
+ }
+
+ if (!super.setObject(obj)) {
+ rtcout.println(Logbuf.ERROR, "Setting object to consumer failed.");
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * {@.ja 接続解除(IOR版)}
+ * {@.en ubsubscribing (IOR version)}
+ *
+ * @param properties
+ * {@.ja Information for unsubscription}
+ * {@.en Information for unsubscription}
+ *
+ * @return
+ * {@.ja true: 正常取得, false: 取得失敗}
+ * {@.en true: succeeded, false: failed}
+ */
+ private boolean unsubscribeFromIor(final NVListHolder properties) {
+ rtcout.println(Logbuf.TRACE, "unsubscribeFromIor()");
+ int index;
+ index = NVUtil.find_index(properties,
+ "dataport.corba_cdr.inport_ior");
+ if (index < 0) {
+ rtcout.println(Logbuf.ERROR, "inport_ior not found");
+ return false;
+ }
+
+ final String ior;
+ try {
+ if( properties.value[index].value.type().kind() ==
+ TCKind.tk_wstring ) {
+ ior = properties.value[index].value.extract_wstring();
+ } else {
+ ior = properties.value[index].value.extract_string();
+ }
+ }
+ catch(BAD_OPERATION e) {
+ rtcout.println(Logbuf.ERROR, "inport_ior has no string");
+ return false;
+ }
+
+ ORB orb = ORBUtil.getOrb();
+ org.omg.CORBA.Object var = orb.string_to_object(ior);
+ if (!(_ptr()._is_equivalent(var))) {
+ rtcout.println(Logbuf.ERROR, "connector property inconsistency");
+ return false;
+ }
+
+ releaseObject();
+ return true;
+ }
+
+ /**
+ * {@.ja 接続解除(Object reference版)}
+ * {@.en ubsubscribing (Object reference version)}
+ *
+ * @param properties
+ * {@.ja Information for unsubscription}
+ * {@.en Information for unsubscription}
+ * @return
+ * {@.ja true: 正常取得, false: 取得失敗}
+ * {@.en true: succeeded, false: failed}
+ */
+ private boolean unsubscribeFromRef(final NVListHolder properties) {
+ rtcout.println(Logbuf.TRACE, "unsubscribeFromRef()");
+ int index;
+ index = NVUtil.find_index(properties,
+ "dataport.corba_cdr.inport_ref");
+ if (index < 0) {
+ return false;
+ }
+
+ org.omg.CORBA.Object obj;
+ try {
+ obj = properties.value[index].value.extract_Object();
+ }
+ catch(BAD_OPERATION e){
+ rtcout.println(Logbuf.ERROR, "prop[inport_ref] is not objref");
+ return false;
+ }
+
+ if (!(_ptr()._is_equivalent(obj))) {
+ rtcout.println(Logbuf.ERROR, "connector property inconsistency");
+ return false;
+ }
+
+ releaseObject();
+ return true;
+ }
+ /**
+ * {@.ja PortStatusをReturnCodeに変換する。}
+ * {@.en Converts PortStatus into ReturnCode.}
+ *
+ * @param status
+ * {@.ja PortStatus}
+ * {@.en PortStatus}
+ * @return
+ * {@.ja ReturnCode}
+ * {@.en ReturnCode}
+ */
+ protected ReturnCode convertReturn(OpenRTM.PortStatus status) {
+ switch (status.value()) {
+ case 0:
+ return ReturnCode.PORT_OK;
+ case 1:
+ return ReturnCode.PORT_ERROR;
+ case 2:
+ return ReturnCode.BUFFER_FULL;
+ case 3:
+ return ReturnCode.BUFFER_EMPTY;
+ case 4:
+ return ReturnCode.BUFFER_TIMEOUT;
+ default:
+ return ReturnCode.UNKNOWN_ERROR;
+ }
+ }
+
+ /**
+ * {@.ja InPortCorbaCdrConsumer を生成する}
+ * {@.en Creats InPortCorbaCdrConsumer}
+ *
+ * @return
+ * {@.ja 生成されたInPortConsumer}
+ * {@.en Object Created instances}
+ *
+ *
+ */
+ public InPortConsumer creator_() {
+ return new InPortCorbaCdrConsumer();
+ }
+ /**
+ * {@.ja Object を破棄する}
+ * {@.en Destructs Object}
+ *
+ * @param obj
+ * {@.ja 破棄するインタスタンス}
+ * {@.en The target instances for destruction}
+ *
+ */
+ public void destructor_(Object obj) {
+ obj = null;
+ }
+ /**
+ * {@.ja モジュール初期化関数}
+ * {@.en Module initialization}
+ * <p>
+ * {@.ja InPortCorbaCdrConsumer のファクトリを登録する初期化関数。}
+ * {@.en This initialization function registers InPortCorbaCdrConsumer's
+ * factory.}
+ */
+ public static void InPortCorbaCdrConsumerInit() {
+ final InPortConsumerFactory<InPortConsumer,String> factory
+ = InPortConsumerFactory.instance();
+
+ factory.addFactory("corba_cdr",
+ new InPortCorbaCdrConsumer(),
+ new InPortCorbaCdrConsumer());
+
+ }
+ /**
+ * {@.ja Connectorを設定する。}
+ * {@.en set Connector}
+ *
+ * @param connector
+ * {@.ja OutPortConnector}
+ * {@.en OutPortConnector}
+ */
+ public void setConnector(OutPortConnector connector) {
+ m_connector = connector;
+ }
+
+ private Logbuf rtcout;
+ private Properties m_properties;
+ private com.sun.corba.se.spi.orb.ORB m_spi_orb;
+ private OutPortConnector m_connector;
+ private ORB m_orb;
+
+}
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortCorbaCdrProvider.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortCorbaCdrProvider.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortCorbaCdrProvider.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,52 +1,43 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.Any;
-import org.omg.CORBA.ORB;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-import org.omg.CORBA.SystemException;
-import com.sun.corba.se.impl.encoding.EncapsOutputStream;
-
-import java.io.IOException;
-
-import _SDOPackage.NVListHolder;
-import OpenRTM.CdrDataHolder;
-import OpenRTM.InPortCdrOperations;
-import OpenRTM.InPortCdrPOA;
-import OpenRTM.PortStatus;
-
-import jp.go.aist.rtm.RTC.Manager;
import jp.go.aist.rtm.RTC.InPortProviderFactory;
import jp.go.aist.rtm.RTC.ObjectCreator;
import jp.go.aist.rtm.RTC.ObjectDestructor;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.util.Properties;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.NVListHolderFactory;
import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.ORBUtil;
import jp.go.aist.rtm.RTC.util.POAUtil;
-import jp.go.aist.rtm.RTC.util.NVListHolderFactory;
-import jp.go.aist.rtm.RTC.util.ORBUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.Properties;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.portable.OutputStream;
+
+import OpenRTM.InPortCdrPOA;
+import _SDOPackage.NVListHolder;
+
+import com.sun.corba.se.impl.encoding.EncapsOutputStream;
+
/**
- * <p> InPortCorbaCdrProvider </p>
- * <p> InPortCorbaCdrProvider class </p>
+ * {@.ja InPortCorbaCdrProvider クラス}
+ * {@.en InPortCorbaCdrProvider class}
+ * <p>
+ * {@.ja データ転送に CORBA の OpenRTM::InPortCdr インターフェースを利用し
+ * た、push 型データフロー型を実現する InPort プロバイダクラス。}
+ * {@.en This is an implementation class of the input port Provider
+ * that uses CORBA for means of communication.}
*
- * <p> This is an implementation class of the input port Provider </p>
- * <p> that uses CORBA for means of communication. </p>
*
- *
*/
public class InPortCorbaCdrProvider extends InPortCdrPOA implements InPortProvider, ObjectCreator<InPortProvider>, ObjectDestructor {
/**
- * <p> Constructor </p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * <p> Set the following items to port properties </p>
- * <p> - Interface type : CORBA_Any </p>
- * <p> - Data flow type : Push, Pull </p>
- * <p> - Subscription type : Any </p>
*
- *
*/
public InPortCorbaCdrProvider() {
m_buffer = null;
@@ -70,7 +61,13 @@
}
/**
+ * {@.ja 当該OpenRTM.InPortCdrのCORBAオブジェクト参照を取得する。}
+ * {@.en Gets CORBA object referense of this OpenRTM.InPortCdr}
*
+ * @return
+ * {@.ja 当該PortのCORBAオブジェクト参照}
+ * {@.en CORBA object referense of this OpenRTM.InPortCdr}
+ *
*/
public OpenRTM.InPortCdr _this() {
@@ -79,7 +76,7 @@
this.m_objref =
OpenRTM.InPortCdrHelper.narrow(POAUtil.getRef(this));
} catch (Exception e) {
- rtcout.println(rtcout.WARN, "The exception was caught.");
+ rtcout.println(Logbuf.WARN, "The exception was caught.");
throw new IllegalStateException(e);
}
}
@@ -87,16 +84,45 @@
return this.m_objref;
}
/**
- * <p> init </p>
- *
- * @param prop
+ * {@.ja 設定初期化}
+ * {@.en Initializing configuration}
+ * <p>
+ * {@.ja InPortCorbaCdrProvider の各種設定を行う。与えられた
+ * Propertiesから必要な情報を取得して各種設定を行う。この init() 関
+ * 数は、InPortProvider生成直後および、接続時にそれぞれ呼ばれる可
+ * 能性がある。したがって、この関数は複数回呼ばれることを想定して記
+ * 述されるべきである。}
+ * {@.en This operation would be called to configure in initialization.
+ * In the concrete class, configuration should be performed
+ * getting appropriate information from the given Properties data.
+ * This function might be called right after instantiation and
+ * connection sequence respectivly. Therefore, this function
+ * should be implemented assuming multiple call.}
+ *
+ * @param prop
+ * {@.ja 設定情報}
+ * {@.en Configuration information}
*/
public void init(Properties prop){
}
/**
- * <p> setBuffer </p>
+ * {@.ja バッファをセットする}
+ * {@.en Setting outside buffer's pointer}
+ * <p>
+ * {@.ja OutPortProvider がデータを取り出すバッファをセットする。
+ * すでにセットされたバッファがある場合、以前のバッファへの
+ * ポインタに対して上書きされる。
+ * OutPortProviderはバッファの所有権を仮定していないので、
+ * バッファの削除はユーザの責任で行わなければならない。}
+ * {@.en A pointer to a buffer from which OutPortProvider retrieve data.
+ * If already buffer is set, previous buffer's pointer will be
+ * overwritten by the given pointer to a buffer. Since
+ * OutPortProvider does not assume ownership of the buffer
+ * pointer, destructor of the buffer should be done by user.}
*
* @param buffer
+ * {@.ja OutPortProviderがデータを取り出すバッファへのポインタ}
+ * {@.en A pointer to a data buffer to be used by OutPortProvider}
*/
public void setBuffer(BufferBase<OutputStream> buffer) {
m_buffer = buffer;
@@ -119,7 +145,7 @@
public OpenRTM.PortStatus put(byte[] data)
throws SystemException {
- rtcout.println(rtcout.PARANOID, "InPortCorbaCdrProvider.put()");
+ rtcout.println(Logbuf.PARANOID, "InPortCorbaCdrProvider.put()");
if (m_buffer == null) {
EncapsOutputStream cdr
@@ -130,7 +156,7 @@
}
- rtcout.println(rtcout.PARANOID, "received data size: "+data.length);
+ rtcout.println(Logbuf.PARANOID, "received data size: "+data.length);
EncapsOutputStream cdr
@@ -138,12 +164,27 @@
cdr.write_octet_array(data, 0, data.length);
int len = cdr.toByteArray().length;
- rtcout.println(rtcout.PARANOID, "converted CDR data size: "+len);
+ rtcout.println(Logbuf.PARANOID, "converted CDR data size: "+len);
onReceived(cdr);
jp.go.aist.rtm.RTC.buffer.ReturnCode ret = m_buffer.write(cdr);
return convertReturn(ret,cdr);
}
+ /**
+ * {@.ja [CORBA interface] バッファにデータを書き込む}
+ * {@.en [CORBA interface] Write data into the buffer}
+ * <p>
+ * {@.ja 設定されたバッファにデータを書き込む。}
+ * {@.en Write data into the specified buffer.}
+ *
+ * @param data
+ * {@.ja 書込対象データ}
+ * {@.en The target data for writing}
+ *
+ * @return
+ * {@.ja ステータス}
+ * {@.en Prot status}
+ */
public OpenRTM.PortStatus put(final OpenRTM.CdrDataHolder data)
throws SystemException {
return put(data.value);
@@ -152,6 +193,13 @@
/**
* {@.ja リターンコード変換}
* {p.en Return codes conversion}
+ *
+ * @param status
+ * {@.ja ReturnCode}
+ * {@.en ReturnCode}
+ * @return
+ * {@.ja PortStatus}
+ * {@.en PortStatus}
*/
protected OpenRTM.PortStatus
convertReturn(jp.go.aist.rtm.RTC.buffer.ReturnCode status,
@@ -194,18 +242,24 @@
private Logbuf rtcout;
/**
- * <p> creator_ </p>
+ * {@.ja InPortCorbaCdrProvider を生成する}
+ * {@.en Creats InPortCorbaCdrProvider}
*
- * @return Object Created instances
+ * @return
+ * {@.ja 生成されたInPortProvider}
+ * {@.en Object Created instances}
*
*/
public InPortProvider creator_() {
return new InPortCorbaCdrProvider();
}
/**
- * <p> destructor_ </p>
+ * {@.ja InPortCorbaCdrProvider を破棄する}
+ * {@.en Destructs InPortCorbaCdrProvider}
*
- * @param obj The target instances for destruction
+ * @param obj
+ * {@.ja 破棄するインタスタンス}
+ * {@.en The target instances for destruction}
*
*/
public void destructor_(Object obj) {
@@ -221,8 +275,12 @@
}
/**
- * <p> InPortCorbaCdrProviderInit </p>
- *
+ * {@.ja モジュール初期化関数}
+ * {@.en Module initialization}
+ * <p>
+ * {@.ja InPortCorbaCdrConsumer のファクトリを登録する初期化関数。}
+ * {@.en This initialization function registers InPortCorbaCdrConsumer's
+ * factory.}
*/
public static void InPortCorbaCdrProviderInit() {
final InPortProviderFactory<InPortProvider,String> factory
@@ -238,6 +296,25 @@
*
* @param properties InterfaceProfile情報を受け取るホルダオブジェクト
*/
+ /**
+ * {@.ja InterfaceProfile情報を公開する}
+ * {@.en Publish InterfaceProfile information}
+ *
+ * <p>
+ * {@.ja InterfaceProfile情報を公開する。
+ * 引数で指定するプロパティ情報内の NameValue オブジェクトの
+ * dataport.interface_type 値を調べ、当該ポートに設定されている
+ * インターフェースタイプと一致する場合のみ情報を取得する。}
+ * {@.en Publish interfaceProfile information.
+ * Check the dataport.interface_type value of the NameValue object
+ * specified by an argument in property information and get information
+ * only when the interface type of the specified port is matched.}
+ *
+ * @param properties
+ * {@.ja InterfaceProfile情報を受け取るホルダオブジェクト}
+ * {@.en Holder object to get InterfaceProfile information}
+ *
+ */
public void publishInterfaceProfile(NVListHolder properties) {
NVUtil.appendStringValue(properties, "dataport.interface_type",
@@ -246,14 +323,31 @@
}
/**
- * <p>Interface情報を公開します。</p>
- *
- * @param properties Interface情報を受け取るホルダオブジェクト
+ * {@.ja Interface情報を公開する}
+ * {@.en Publish interface information}
+ * <p>
+ * {@.ja Interface情報を公開する。引数で指定するプロパティ情報内の
+ * NameValue オブジェクトのdataport.interface_type 値を調べ、当該ポー
+ * トに設定されていなければNameValue に情報を追加する。すでに同一イ
+ * ンターフェースが登録済みの場合は何も行わない。}
+ * {@.en Publish interface information. Check the
+ * dataport.interface_type value of the NameValue object specified
+ * by an argument in the property information, and add the
+ * information to the NameValue if this port is not specified.
+ * This does not do anything if the same interface is already
+ * subscribed.}
+ *
+ * @param properties
+ * {@.ja properties Interface情報を受け取るホルダオブジェクト}
+ * {@.en Holder object to receive interface information}
+ * @return
+ * {@.ja true: 正常終了}
+ * {@.en true: normal return}
*/
public boolean publishInterface(NVListHolder properties) {
- rtcout.println(rtcout.TRACE, "publishInterface()");
- rtcout.println(rtcout.DEBUG, NVUtil.toString(properties));
+ rtcout.println(Logbuf.TRACE, "publishInterface()");
+ rtcout.println(Logbuf.DEBUG, NVUtil.toString(properties));
if (! NVUtil.isStringValue(properties,
@@ -267,54 +361,115 @@
}
+ /**
+ * {@.ja リスナを設定する。}
+ * {@.en Set the listener.}
+ *
+ * <p>
+ * {@.ja InPort はデータ送信処理における各種イベントに対して特定のリスナ
+ * オブジェクトをコールするコールバック機構を提供する。詳細は
+ * ConnectorListener.h の ConnectorDataListener, ConnectorListener
+ * 等を参照のこと。InPortCorbaCdrProvider では、以下のコールバック
+ * が提供される。}
+ * {@.en InPort provides callback functionality that calls specific
+ * listener objects according to the events in the data publishing
+ * process. For details, see documentation of
+ * ConnectorDataListener class and ConnectorListener class in
+ * ConnectorListener.h. In this InPortCorbaCdrProvider provides
+ * the following callbacks.}
+ * <ul>
+ * <li>- ON_BUFFER_WRITE
+ * <li>- ON_BUFFER_FULL
+ * <li>- ON_BUFFER_WRITE_TIMEOUT
+ * <li>- ON_BUFFER_OVERWRITE
+ * <li>- ON_RECEIVED
+ * <li>- ON_RECEIVER_FULL
+ * <li>- ON_RECEIVER_FULL
+ * <li>- ON_RECEIVER_TIMEOUT
+ * <li>- ON_RECEIVER_ERROR </li></ul>
+ *
+ *
+ * @param info
+ * {@.ja 接続情報}
+ * {@.en Connector information}
+ * @param listeners
+ * {@.ja リスナオブジェクト}
+ * {@.en Listener objects}
+ */
public void setListener(ConnectorBase.ConnectorInfo info,
ConnectorListeners listeners) {
m_profile = info;
m_listeners = listeners;
}
/**
- * <p> setConnecotor </p>
- * @param connector
+ * {@.ja Connectorを設定する。}
+ * {@.en set Connector}
+ * <p>
+ * {@.ja InPort は接続確立時に InPortConnector オブジェクトを生成し、生
+ * 成したオブジェクトのポインタと共にこの関数を呼び出す。所有権は
+ * InPort が保持するので InPortProvider は InPortConnector を削
+ * 除してはいけない。}
+ * {@.en InPort creates InPortConnector object when it establishes
+ * connection between InPort and InPort, and it calls this
+ * function with a pointer to the connector object. Since the
+ * InPort has the ownership of this connector, InPortProvider
+ * should not delete it.}
+ *
+ * @param connector
+ * {@.ja InPortConnector}
+ * {@.en InPortConnector}
*/
public void setConnector(InPortConnector connector) {
m_connector = connector;
}
/**
- * <p>データタイプを設定します。</p>
+ * {@.ja インタフェースプロフィールのデータタイプを設定する。}
+ * {@.en Sets DataType of the interface profile}
*
- * @param dataType データタイプ
+ * @param dataType
+ * {@.ja データタイプ}
+ * {@.en dataType}
*/
protected void setDataType(final String dataType) {
this.m_dataType = dataType;
}
/**
- * <p>インタフェースタイプを設定します。</p>
+ * {@.ja インタフェースプロフィールのインタフェースタイプを設定する。}
+ * {@.en Sets interface Type of the interface profile}
*
- * @param interfaceType インタフェースタイプ
+ * @param interfaceType
+ * {@.ja インタフェースタイプ}
+ * {@.en Intereface Type}
*/
protected void setInterfaceType(final String interfaceType) {
- rtcout.println(rtcout.TRACE, "setInterfaceType("+interfaceType+")");
+ rtcout.println(Logbuf.TRACE, "setInterfaceType("+interfaceType+")");
this.m_interfaceType = interfaceType;
}
/**
- * <p>データフロータイプを設定します。</p>
+ * {@.ja インタフェースプロフィールのデータフロータイプを設定する。}
+ * {@.en Sets data flow type of the interface profile}
*
- * @param dataflowType データフロータイプ
+ * @param dataflowType
+ * {@.ja データフロータイプ}
+ * {@.en Data flow type}
*/
protected void setDataFlowType(final String dataflowType) {
- rtcout.println(rtcout.TRACE, "setDataFlowType("+dataflowType+")");
+ rtcout.println(Logbuf.TRACE, "setDataFlowType("+dataflowType+")");
this.m_dataflowType = dataflowType;
}
/**
- * <p>サブスクリプションタイプを設定します。</p>
+ * {@.ja インタフェースプロフィールのサブスクリプションタイプを設定する。}
+ * {@.en Sets subscription type of the interface profile}
*
- * @param subscriptionType サブスクリプションタイプ
+ * @param subscriptionType
+ * {@.ja サブスクリプションタイプ}
+ * {@.en Subscription type}
*/
protected void setSubscriptionType(final String subscriptionType) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"setSubscriptionType("+subscriptionType+")");
this.m_subscriptionType = subscriptionType;
}
@@ -322,18 +477,46 @@
/**
* <p> Connector data listener functions </p>
*/
+ /**
+ * {@.ja ON_BUFFER_WRITE のリスナへ通知する。}
+ * {@.en Notify an ON_BUFFER_WRITE event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onBufferWrite(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_BUFFER_WRITE].notify(m_profile, data);
}
+ /**
+ * {@.ja ON_BUFFER_FULL のリスナへ通知する。}
+ * {@.en Notify an ON_BUFFER_FULL event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onBufferFull(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_BUFFER_FULL].notify(m_profile, data);
}
+ /**
+ * {@.ja ON_BUFFER_WRITE_TIMEOUT のリスナへ通知する。}
+ * {@.en Notify an ON_BUFFER_WRITE_TIMEOUT event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onBufferWriteTimeout(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_BUFFER_WRITE_TIMEOUT].notify(m_profile, data);
}
+ /**
+ * {@.ja ON_BUFFER_WRITE_OVERWRITE のリスナへ通知する。}
+ * {@.en Notify an ON_BUFFER_WRITE_OVERWRITE event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onBufferWriteOverwrite(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_BUFFER_OVERWRITE].notify(m_profile, data);
}
@@ -346,18 +529,46 @@
// m_listeners.connectorData_[ConnectorDataListenerType.ON_SEND].notify(m_profile, data);
// }
+ /**
+ * {@.ja ON_RECEIVED のリスナへ通知する。}
+ * {@.en Notify an ON_RECEIVED event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onReceived(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_RECEIVED].notify(m_profile, data);
}
+ /**
+ * {@.ja ON_RECEIVER_FULL のリスナへ通知する。}
+ * {@.en Notify an ON_RECEIVER_FULL event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onReceiverFull(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_RECEIVER_FULL].notify(m_profile, data);
}
+ /**
+ * {@.ja ON_RECEIVER_TIMEOUT のリスナへ通知する。}
+ * {@.en Notify an ON_RECEIVER_TIMEOUT event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onReceiverTimeout(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_RECEIVER_TIMEOUT].notify(m_profile, data);
}
+ /**
+ * {@.ja ON_RECEIVER_ERRORのリスナへ通知する。}
+ * {@.en Notify an ON_RECEIVER_ERROR event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onReceiverError(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_RECEIVER_ERROR].notify(m_profile, data);
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortProvider.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortProvider.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortProvider.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,13 +1,12 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.portable.InputStream;
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import jp.go.aist.rtm.RTC.util.Properties;
+
import org.omg.CORBA.portable.OutputStream;
import _SDOPackage.NVListHolder;
-import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-
/**
* <p>InPortに対して何を提供しているかを宣言するインタフェースです。</p>
*/
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortPullConnector.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortPullConnector.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortPullConnector.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,25 +1,59 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-import com.sun.corba.se.impl.encoding.EncapsOutputStream;
-
import jp.go.aist.rtm.RTC.BufferFactory;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.buffer.RingBuffer;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
import jp.go.aist.rtm.RTC.util.DataRef;
import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.OutPortConsumerFactory;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+import com.sun.corba.se.impl.encoding.EncapsOutputStream;
+
/**
- * <p> InPortPullConnector </p>
- * <p> InPortPullConnector base class </p>
+ * {@.ja InPortPullConnector クラス}
+ * {@.en InPortPullConnector class}
+ * <p>
+ * {@.ja InPort の pull 型データフローのための Connector クラス。このオブ
+ * ジェクトは、接続時に dataflow_type に pull が指定された場合、
+ * InPort によって生成・所有され、OutPortPullConnector と対になって、
+ * データポートの pull 型のデータフローを実現する。一つの接続に対して、
+ * 一つのデータストリームを提供する唯一の Connector が対応する。
+ * Connector は 接続時に生成される UUID 形式の ID により区別される。
*
- * <p> A connector class for pull type dataflow of InPort </p>
+ * InPortPullConnector は以下の三つのオブジェクトを所有し管理する。
+ * <ul>
+ * <li>- InPortConsumer
+ * <li>- Buffer
+ * </ul>
+ * OutPort に書き込まれたデータは OutPortPullConnector::write() に渡
+ * され Buffer に書き込まれる。InPort::read(),
+ * InPortPullConnector::read() は結果として、OutPortConsumer::get()
+ * を呼び出し、OutPortPullConnector の持つバッファからデータを読み出
+ * し、InPortPullConnector のもつバッファにデータを書き込む。}
+ * {@.en Connector class of InPort for pull type dataflow. When "pull" is
+ * specified as dataflow_type at the time of establishing
+ * connection, this object is generated and owned by the InPort.
+ * This connector and InPortPullConnector make a pair and realize
+ * pull type dataflow of data ports. One connector corresponds to
+ * one connection which provides a data stream. Connector is
+ * distinguished by ID of the UUID that is generated at establishing
+ * connection.
*
- * @since 1.0.0
+ * InPortPullConnector owns and manages the following objects.
+ * <ul>
+ * <li>- InPortConsumer
+ * <li>- Buffer
+ * </ul>
+ * Data written into the OutPort is passed to the
+ * OutPortPullConnector::write(), and is written into the buffer.
+ * Consequently, InPort::read() and InPortPullConnector::read() call
+ * OutPortConsumer::get(), and it reads data from the buffer of
+ * OutPortPullConnector. Finally data would be written into the
+ * InPortPullConnector's buffer.}
*
+ *
*/
public class InPortPullConnector extends InPortConnector {
/**
@@ -83,13 +117,32 @@
onConnect();
}
/**
- * <p> Destructor </p>
+ * {@.ja read 関数}
+ * {@.en Reading data}
+ * <p>
+ * {@.ja OutPortConsumer からデータを取得する。正常に読み出せた場合、戻り
+ * 値は PORT_OK となり、data に読み出されたデータが格納される。それ
+ * 以外の場合には、エラー値として BUFFER_EMPTY, TIMEOUT,
+ * PRECONDITION_NOT_MET, PORT_ERROR が返される。}
+ * {@.en This function get data from OutPortConsumer. If data is read
+ * properly, this function will return PORT_OK return code. Except
+ * normal return, BUFFER_EMPTY, TIMEOUT, PRECONDITION_NOT_MET and
+ * PORT_ERROR will be returned as error codes.}
*
- * <p> The read function to read data from buffer to InPort </p>
- *
+ * @return
+ * {@.ja PORT_OK 正常終了
+ * BUFFER_EMPTY バッファは空である
+ * TIMEOUT タイムアウトした
+ * PRECONDITION_NOT_MET 事前条件を満たさない
+ * PORT_ERROR その他のエラー}
+ * {@.en PORT_OK Normal return
+ * BUFFER_EMPTY Buffer empty
+ * TIMEOUT Timeout
+ * PRECONDITION_NOT_MET Preconditin not met
+ * PORT_ERROR Other error}
*/
public ReturnCode read(DataRef<InputStream> data){
- rtcout.println(rtcout.TRACE, "InPortPullConnector.read()");
+ rtcout.println(Logbuf.TRACE, "InPortPullConnector.read()");
if (m_consumer == null) {
return ReturnCode.PORT_ERROR;
}
@@ -110,11 +163,11 @@
* </p>
*/
public ReturnCode disconnect() {
- rtcout.println(rtcout.TRACE, "disconnect()");
+ rtcout.println(Logbuf.TRACE, "disconnect()");
onDisconnect();
// delete consumer
if (m_consumer != null) {
- rtcout.println(rtcout.DEBUG, "delete consumer");
+ rtcout.println(Logbuf.DEBUG, "delete consumer");
OutPortConsumerFactory<OutPortConsumer,String> cfactory
= OutPortConsumerFactory.instance();
cfactory.deleteObject(m_consumer);
@@ -124,21 +177,37 @@
}
/**
+ * {@.ja アクティブ化}
+ * {@.en Connector activation}
+ * <p>
+ * {@.ja このコネクタをアクティブ化する}
+ * {@.en This operation activates this connector}
*
- * <p> Connector activation </p>
- * <p> This operation activates this connector </p>
- *
*/
public void activate(){}; // do nothing
/**
- * <p> Connector deactivation </p>
- * <p> This operation deactivates this connector </p>
+ * {@.ja 非アクティブ化}
+ * {@.en Connector deactivation}
+ * <p>
+ * {@.ja このコネクタを非アクティブ化する}
+ * {@.en This operation deactivates this connector}
*/
public void deactivate(){}; // do nothing
/**
- * <p> create buffer </p>
+ * {@.ja Bufferの生成}
+ * {@.en create buffer}
+ * <p>
+ * {@.ja 与えられた接続情報に基づきバッファを生成する。}
+ * {@.en This function creates a buffer based on given information.}
+ *
+ * @param profile
+ * {@.ja 接続情報}
+ * {@.en Connector information}
+ * @return
+ * {@.ja バッファへのポインタ}
+ * {@.en The poitner to the buffer}
*/
protected BufferBase<OutputStream> createBuffer(ConnectorInfo profile) {
String buf_type;
@@ -150,7 +219,8 @@
}
/**
- * <p> Invoke callback when connection is established </p>
+ * {@.ja 接続確立時にコールバックを呼ぶ}
+ * {@.en Invoke callback when connection is established}
*/
protected void onConnect() {
m_listeners.connector_[ConnectorListenerType.ON_CONNECT].notify(m_profile);
@@ -165,6 +235,31 @@
m_profile);
}
+ /**
+ * {@.ja リスナを設定する。}
+ * {@.en Set the listener.}
+ *
+ * <p>
+ * {@.ja InPort はデータ送信処理における各種イベントに対して特定のリスナ
+ * オブジェクトをコールするコールバック機構を提供する。詳細は
+ * ConnectorListener.h の ConnectorDataListener, ConnectorListener
+ * 等を参照のこと。InPortCorbaCdrProvider では、以下のコールバック
+ * が提供される。}
+ * {@.en InPort provides callback functionality that calls specific
+ * listener objects according to the events in the data publishing
+ * process. For details, see documentation of
+ * ConnectorDataListener class and ConnectorListener class in
+ * ConnectorListener.h. In this InPortCorbaCdrProvider provides
+ * the following callbacks.}
+ *
+ *
+ * @param profile
+ * {@.ja 接続情報}
+ * {@.en Connector information}
+ * @param listeners
+ * {@.ja リスナオブジェクト}
+ * {@.en Listener objects}
+ */
public void setListener(ConnectorInfo profile,
ConnectorListeners listeners){
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortPushConnector.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortPushConnector.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/InPortPushConnector.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,16 +1,14 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
+import jp.go.aist.rtm.RTC.BufferFactory;
import jp.go.aist.rtm.RTC.InPortProviderFactory;
-import jp.go.aist.rtm.RTC.BufferFactory;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.buffer.RingBuffer;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.DataRef;
-import jp.go.aist.rtm.RTC.log.Logbuf;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
public class InPortPushConnector extends InPortConnector {
/**
* {@.ja コンストラクタ}
@@ -70,10 +68,10 @@
}
if (m_buffer == null || m_provider==null) {
if(m_buffer == null){
- rtcout.println(rtcout.PARANOID, " m_buffer is null.");
+ rtcout.println(Logbuf.PARANOID, " m_buffer is null.");
}
if(m_provider == null){
- rtcout.println(rtcout.PARANOID, " m_provider is null.");
+ rtcout.println(Logbuf.PARANOID, " m_provider is null.");
}
throw new Exception("bad_alloc()");
@@ -121,7 +119,7 @@
*
*/
public ReturnCode read(DataRef<InputStream> data) {
- rtcout.println(rtcout.TRACE, "read()");
+ rtcout.println(Logbuf.TRACE, "read()");
/*
* buffer returns
* BUFFER_OK
@@ -152,7 +150,7 @@
* and the buffer.}
*/
public ReturnCode disconnect() {
- rtcout.println(rtcout.TRACE, "disconnect()");
+ rtcout.println(Logbuf.TRACE, "disconnect()");
onDisconnect();
// delete provider
if (m_provider != null) {
@@ -173,19 +171,36 @@
}
/**
- * <p> Connector activation </p>
- * <p> This operation activates this connector </p>
+ * {@.ja アクティブ化}
+ * {@.en Connector activation}
+ * <p>
+ * {@.ja このコネクタをアクティブ化する}
+ * {@.en This operation activates this connector}
*/
public void activate(){}; // do nothing
/**
- * <p> Connector activation </p>
- * <p> This operation activates this connector </p>
+ * {@.ja 非アクティブ化}
+ * {@.en Connector deactivation}
+ * <p>
+ * {@.ja このコネクタを非アクティブ化する}
+ * {@.en This operation deactivates this connector}
*/
public void deactivate(){}; // do nothing
/**
- * <p> create buffer </p>
+ * {@.ja Bufferの生成}
+ * {@.en create buffer}
+ * <p>
+ * {@.ja 与えられた接続情報に基づきバッファを生成する。}
+ * {@.en This function creates a buffer based on given information.}
+ *
+ * @param profile
+ * {@.ja 接続情報}
+ * {@.en Connector information}
+ * @return
+ * {@.ja バッファへのポインタ}
+ * {@.en The poitner to the buffer}
*/
protected BufferBase<OutputStream> createBuffer(ConnectorInfo profile) {
String buf_type;
@@ -197,7 +212,8 @@
}
/**
- * <p> Invoke callback when connection is established </p>
+ * {@.ja 接続確立時にコールバックを呼ぶ}
+ * {@.en Invoke callback when connection is established}
*/
protected void onConnect() {
m_listeners.connector_[ConnectorListenerType.ON_CONNECT].notify(m_profile);
@@ -213,8 +229,15 @@
}
/**
- * <p> convertReturn </p>
- *
+ * {@.ja buffer.ReturnCodeをport.ReturnCodeに変換する。}
+ * {@.en Converts buffer.ReturnCode into port.ReturnCode.}
+ *
+ * @param status
+ * {@.ja jp.go.aist.rtm.RTC.buffer.ReturnCode}
+ * {@.en jp.go.aist.rtm.RTC.buffer.ReturnCode}
+ * @return
+ * {@.ja jp.go.aist.rtm.RTC.port.ReturnCode}
+ * {@.en jp.go.aist.rtm.RTC.port.ReturnCode}
*/
protected ReturnCode convertReturn(jp.go.aist.rtm.RTC.buffer.ReturnCode status) {
switch (status) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnDisconnect.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnDisconnect.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnDisconnect.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,13 +1,15 @@
-package jp.go.aist.rtm.RTC.port;
-public interface OnDisconnect {
-
- /**
- * <p> run </p>
- * <p> Method of callback. </p>
- * @param id
- */
- void run(final String id);
-
-}
-
-
+package jp.go.aist.rtm.RTC.port;
+public interface OnDisconnect {
+
+ /**
+ * {@.ja コールバックメソッド}
+ * {@.en Callback method}
+ * @param id
+ * {@.ja ID}
+ * {@.ja en}
+ */
+ void run(final String id);
+
+}
+
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnOverflow.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnOverflow.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnOverflow.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,15 +1,21 @@
package jp.go.aist.rtm.RTC.port;
/**
- * <p>InPort/OutPortのバッファにデータが書き込まれる際、バッファオーバフローにより
- * バッファへの書き込みが行えない場合に呼び出されるコールバックメソッドです。</p>
+ * {@.ja InPort/OutPortのバッファにデータが書き込まれる際、
+ * バッファオーバフローによりバッファへの書き込みが行えない場合に
+ * 呼び出されるコールバックメソッド}
+ * {@.en Method of callback called when data cannot be written by buffer
+ * overflow}
*/
public interface OnOverflow<DataType> {
/**
- * <p>コールバックメソッドです。</p>
+ * {@.ja コールバックメソッド}
+ * {@.en Callback method}
*
- * @param value 書き込み値
+ * @param value
+ * {@.ja 書き込み値}
+ * {@.en Value that tried to write}
*/
void run(final DataType value);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnUnderflow.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnUnderflow.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnUnderflow.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,17 +1,25 @@
package jp.go.aist.rtm.RTC.port;
/**
- * <p>InPort/OutPortのバッファからデータが読み出される際、読み出すべきデータがない場合に
- * 呼び出されるコールバックインタフェースです。<br />
- * 本コールバックの戻り値が読み出しの代替データとして
- * 使用されるため、データアンダーフロー時のデフォルト読み出し値を与えるフィルタとして機能します。</p>
+ * {@.ja InPort/OutPortのバッファからデータが読み出される際、
+ * 読み出すべきデータがない場合に
+ * 呼び出されるコールバックインタフェース}
+ * {@.en Callback interface called when there is no data when data is read from
+ * buffer of InPort/OutPort}
+ * <p>
+ * {@.ja 本コールバックの戻り値が読み出しの代替データとして
+ * 使用されるため、データアンダーフロー時のデフォルト読み出し値を与える
+ * フィルタとして機能する。}
*/
public interface OnUnderflow<DataType> {
/**
- * <p>コールバックメソッドです。</p>
+ * {@.ja コールバックメソッド}
+ * {@.en Callbakc method}
*
- * @return 代替となる読み出しデータ
+ * @return
+ * {@.ja 代替となる読み出しデータ}
+ * {@.en Data of substitution}
*/
DataType run();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnWrite.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnWrite.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OnWrite.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,20 @@
package jp.go.aist.rtm.RTC.port;
/**
- * <p>InPort/OutPortのバッファにデータが書き込まれる直前に呼び出されるコールバックインタフェースです。</p>
+ * {@.ja InPort/OutPortのバッファにデータが書き込まれる直前に呼び出される
+ * コールバックインタフェース}
+ * {@.en Callback interface called immediately before data is written in buffer
+ * of InPort/OutPort}
*/
public interface OnWrite<DataType> {
/**
- * <p>コールバックメソッドです。</p>
+ * {@.ja コールバックメソッド}
+ * {@.en Callback method}
*
- * @param value バッファに書き込まれるデータ
+ * @param value
+ * {@.ja バッファに書き込まれるデータ}
+ * {@.en Data written in buffer.}
*/
void run(final DataType value);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPort.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPort.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPort.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,32 +1,29 @@
package jp.go.aist.rtm.RTC.port;
+import java.lang.reflect.Field;
import java.util.Vector;
-import org.omg.CORBA.portable.Streamable;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.ClassNotFoundException;
-import java.lang.NoSuchFieldException;
-import java.lang.NoSuchMethodException;
-import java.lang.reflect.Field;
-
import jp.go.aist.rtm.RTC.buffer.BufferBase;
import jp.go.aist.rtm.RTC.buffer.RingBuffer;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.port.publisher.PublisherBase;
import jp.go.aist.rtm.RTC.util.DataRef;
-import jp.go.aist.rtm.RTC.util.TypeCast;
import jp.go.aist.rtm.RTC.util.ORBUtil;
-import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.port.publisher.PublisherBase;
-import RTC.Time;
+import org.omg.CORBA.portable.OutputStream;
+import org.omg.CORBA.portable.Streamable;
/**
- * <p>出力ポートの実装です。さらに上位の出力ポートのベース実装として利用されます。</p>
+ * {@.ja 出力ポートの実装。}
+ * {@.en Implementation of OutPort}
+ * <p>
+ * {@.ja さらに上位の出力ポートのベース実装として利用される。}
+ * {@.en This class is used as the base Implementation of a high-ranking output
+ * port.}
*
- * @param <DataType> データ型を指定します。
+ * @param <DataType>
+ * {@.ja データ型を指定する。}
+ * {@.en The data type is specified}
*/
public class OutPort<DataType> extends OutPortBase {
@@ -38,17 +35,21 @@
* @return TypeCdoe(String)
*/
private static <DataType> String toTypeCode(DataRef<DataType> value) {
- DataType data = value.v;
String typeName = value.v.getClass().getSimpleName();
return typeName;
}
/**
- * <p> write_stream </p>
- * <p> This function writes data from OutputStream. </p>
+ * {@.ja OutputStreamに整列化する}
+ * {@.en Marshals to ostream the data.}
+ *
*
- * @param data data
- * @param cdr OutputStream
+ * @param data
+ * {@.ja データ}
+ * {@.en data}
+ * @param cdr
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
*/
public void write_stream(DataType data,OutputStream cdr) {
try {
@@ -57,21 +58,48 @@
}
catch(IllegalAccessException e){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(IllegalArgumentException e){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
}
/**
- * <p> set_timestamp </p>
- * <p> This function sets the timestamp. </p>
- *
- * @param data data
+ * {@.ja タイムスタンプを設定する。}
+ * {@.en Sets timestamp.}
+ * <p>
+ * {@.ja データポートのデータに対してタイムスタンプをセットする。
+ * データポートのデータは構造体のメンバーとして
+ * tm.sec, tm.nsec を持つ必要がある。}
+ * {@.en This function sets timestamp to data of data port. This data should
+ * have tm.sec, tm.nsec as members of the structure.}
+ * </p>
+ * @param data
+ * {@.ja タイムスタンプをセットするデータ。実行後実行時のタイムス
+ * タンプがセットされる}
+ * {@.en Data to be set timestamp. After executing this
+ * function, current timestamp is set to the data.}
*/
+ public void setTimestamp(DataType data) {
+ long nanotime = System.nanoTime();
+ RTC.Time tm = new RTC.Time((int)(nanotime/1000000000),
+ (int)(nanotime%1000000000));
+ Class cl = data.getClass();
+ String str = cl.getName();
+ try {
+ cl.getField("tm").set(data,tm);
+ }
+ catch(NoSuchFieldException e){
+ //getField throws
+ }
+ catch(IllegalAccessException e){
+ //set throws
+ }
+
+ }
private void set_timestamp(DataType data) {
long nanotime = System.nanoTime();
RTC.Time tm = new RTC.Time((int)(nanotime/1000000000),
@@ -90,10 +118,12 @@
}
/**
- * <p> set_timestamp </p>
- * <p> This function sets the timestamp. </p>
+ * {@.ja タイムスタンプを取得する。}
+ * {@.en Gets the timestamp. }
*
- * @return RTC.Time
+ * @return
+ * {@.ja 取得したTime}
+ * {@.en RTC.Time gotten}
*/
public static RTC.Time get_timestamp() {
long nanotime = System.nanoTime();
@@ -102,32 +132,61 @@
return tm;
}
/**
- * <p>コンストラクタです。内部的にバッファが生成されて割り当てられます。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * <p>
+ * {@.ja 内部的にバッファが生成されて割り当てられる。}
+ * {@.en Internally creates and allcoates the buffer}
*
- * @param name ポート名
- * @param valueRef 本ポートにバインドするデータ変数を内包するDataRefオブジェクト
+ * @param name
+ * {@.ja ポート名}
+ * {@.en Name of Port}
+ * @param valueRef
+ * {@.ja 本ポートにバインドするデータ変数を内包するDataRefオブジェクト}
+ * {@.en DataRef object}
*/
public OutPort(final String name, DataRef<DataType> valueRef) {
this(new RingBuffer<DataType>(8), name, valueRef);
}
/**
- * <p>コンストラクタです。指定されたデータ長で内部的にバッファが生成されて割り当てられます。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * <p>
+ * {@.ja 指定されたデータ長で内部的にバッファが生成されて割り当てられvyる。}
+ * {@.en Internally creates and allocates the buffer by the specified data
+ * length}
*
- * @param name ポート名
- * @param valueRef 本ポートにバインドするデータ変数を内包するDataRefオブジェクト
- * @param length バッファ長
+ * @param name
+ * {@.ja ポート名}
+ * {@.en the port name}
+ * @param valueRef
+ * {@.ja 本ポートにバインドするデータ変数を内包するDataRefオブジェクト}
+ * {@.en DataRef object}
+ * @param length
+ * {@.ja バッファ長}
+ * {@.en Buffer length}
*/
public OutPort(final String name, DataRef<DataType> valueRef, int length) {
this(new RingBuffer<DataType>(length), name, valueRef);
}
/**
- * <p>コンストラクタです。指定されたバッファを割り当てます。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * <p>
+ * {@.ja 指定されたバッファを割り当てる。}
+ * {@.en Allocates the specified buffer.}
*
- * @param buffer 割り当てるバッファ
- * @param name ポート名
- * @param valueRef 本ポートにバインドするデータ変数を内包するDataRefオブジェクト
+ * @param buffer
+ * {@.ja 割り当てるバッファ}
+ * {@.en buffer}
+ * @param name
+ * {@.ja ポート名}
+ * {@.en Port name}
+ * @param valueRef
+ * {@.ja 本ポートにバインドするデータ変数を内包するDataRefオブジェクト}
+ * {@.en DataRef object}
*/
public OutPort(BufferBase<DataType> buffer,
final String name, DataRef<DataType> valueRef) {
@@ -161,24 +220,24 @@
}
catch(java.lang.InstantiationException e){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(ClassNotFoundException e){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(NoSuchFieldException e){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(IllegalAccessException e){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
catch(IllegalArgumentException e){
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
}
@@ -221,7 +280,7 @@
*
*/
public boolean write(final DataType value) {
- rtcout.println(rtcout.TRACE, "DataType write()");
+ rtcout.println(Logbuf.TRACE, "DataType write()");
if (m_OnWrite != null) {
m_OnWrite.run(value);
@@ -246,13 +305,13 @@
ReturnCode ret;
// data -> (conversion) -> CDR stream
if (m_OnWriteConvert != null) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"m_connectors.OnWriteConvert called");
ret = m_connectors.elementAt(i).write(
m_OnWriteConvert.run(value));
}
else{
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"m_connectors.write called");
ret = m_connectors.elementAt(i).write(value);
}
@@ -267,7 +326,7 @@
RTC.ConnectorProfile prof = findConnProfile(id);
if (ret.equals(ReturnCode.CONNECTION_LOST)) {
- rtcout.println(rtcout.TRACE, "connection_lost id: "+id);
+ rtcout.println(Logbuf.TRACE, "connection_lost id: "+id);
if(m_onConnectionLost != null) {
RTC.ConnectorProfileHolder holder
= new RTC.ConnectorProfileHolder(prof);
@@ -286,9 +345,15 @@
}
/**
- * <p>データを書き込みます。本ポートにバインドされているデータ変数の値が書き込まれます。</p>
+ * {@.ja データを書き込む。}
+ * {@.en Writes the data}
+ * <p>
+ * {@.ja 本ポートにバインドされているデータ変数の値が書き込まれる。}
+ * {@.en Writes the value in the variable to which bind is done. }
*
- * @return データを書き込めた場合はtrueを、さもなくばfalseを返します。
+ * @return
+ * {@.ja データを書き込めた場合はtrueを、さもなくばfalseを返す。}
+ * {@.en "True" is returned when succeeding}
*/
public boolean write() {
return this.write(m_value.v);
@@ -316,40 +381,61 @@
}
/**
- * <p>データ読み出し時における、ブロック/非ブロックモードを指定します。<br />
- * ブロックモードを指定した場合は、読み出せるデータを受信するかタイムアウトになるまで、
- * read()メソッドの呼び出しがブロックされます。</p>
+ * {@.ja データ読み出し時における、ブロック/非ブロックモードを指定する。}
+ * {@.en Specifies the block mode in the data reading.}
+ * <p>
+ * {@.ja ブロックモードを指定した場合は、
+ * 読み出せるデータを受信するかタイムアウトになるまで、
+ * read()メソッドの呼び出しがブロックされる。}
+ * {@.en When the block mode is specified, the read() method is blocked
+ * until data is read or until the time-out.}
*
- * @param block ブロックモードを指定する場合はtrue、さもなくばfalse
+ * @param block
+ * {@.ja ブロックモードを指定する場合はtrue、さもなくばfalse}
+ * {@.en True when block mode is specified}
*/
public void setReadBlock(boolean block) {
this.m_readBlock = block;
}
/**
- * <p>データ書き込み時における、ブロック/非ブロックモードを指定します。<br />
- * ブロックモードを指定した場合は、バッファに書き込む余地ができるかタイムアウトになるまで、
- * write()メソッドの呼び出しがブロックされます。</p>
+ * {@.ja データ書き込み時における、ブロック/非ブロックモードを指定する。}
+ * {@.en Specifies the block mode in the data writing.}
+ * <p>
+ * {@.ja ブロックモードを指定した場合は、
+ * バッファに書き込む余地ができるかタイムアウトになるまで、
+ * write()メソッドの呼び出しがブロックされる。}
+ * {@.en When the block mode is specified, the write() method is blocked.}
*
- * @param block ブロックモードを指定する場合はtrue、さもなくばfalse
+ * @param block
+ * {@.ja ブロックモードを指定する場合はtrue、さもなくばfalse}
+ * {@.en True when block mode is specified}
*/
public void setWriteBlock(boolean block) {
this.m_writeBlock = block;
}
/**
- * <p>読み出しがブロックモード指定されている場合のタイムアウト時間を設定します。</p>
+ * {@.ja 読み出しがブロックモード指定されている場合のタイムアウト時間を
+ * 設定する。}
+ * {@.en Sets the timeout period of the block mode of reading.}
*
- * @param timeout タイムアウト時間 [usec]
+ * @param timeout
+ * {@.ja タイムアウト時間 [usec]}
+ * {@.en Timeout[usec]}
*/
public void setReadTimeout(long timeout) {
this.m_readTimeout = timeout;
}
/**
- * <p>書き込みがブロックモード指定されている場合のタイムアウト時間を設定します。</p>
+ * {@.ja 書き込みがブロックモード指定されている場合のタイムアウト時間を
+ * 設定する。}
+ * {@.en Sets the timeout period of the block mode of writing.}
*
- * @param timeout タイムアウト時間 [usec]
+ * @param timeout
+ * {@.ja タイムアウト時間 [usec]}
+ * {@.en Timeout[usec]}
*/
public void setWriteTimeout(long timeout) {
this.m_writeTimeout = timeout;
@@ -416,60 +502,90 @@
}
/**
- * <p>データ書き込み直前に呼び出されるコールバックインタフェースを設定します。</p>
+ * {@.ja データ書き込み直前に呼び出されるコールバックインタフェースを
+ * 設定する。}
+ * {@.en Sets the callback interface called immediately before writing of
+ * data.}
*
- * @param onWrite OnWriteコールバックインタフェースを持つオブジェクト
+ * @param onWrite
+ * {@.ja OnWriteコールバックインタフェースを持つオブジェクト}
+ * {@.en Object with OnWrite callback interface}
*/
public void setOnWrite(OnWrite<DataType> onWrite) {
this.m_OnWrite = onWrite;
}
/**
- * <p>データ書き込み時に呼び出されるコールバックインタフェースを設定します。</p>
+ * {@.ja データ書き込み時に呼び出されるコールバックインタフェースを
+ * 設定する。}
+ * {@.en sets the callback interface called when data is written.}
*
- * <p>設定されたコールバックの戻り値のデータが書き込まれます。
- * これにより、書き込みデータのフィルタリングを行うことができます。</p>
+ * <p>
+ * {@.ja 設定されたコールバックの戻り値のデータが書き込まれる。
+ * これにより、書き込みデータのフィルタリングを行うことがでる。}
*
- * @param onWriteConvert OutWriteConvertコールバックインタフェースを持つオブジェクト
+ * @param onWriteConvert
+ * {@.ja OutWriteConvertコールバックインタフェースを持つオブジェクト}
+ * {@.en Object with OutWriteConvert callback interface}
*/
public void setOnWriteConvert(OnWriteConvert<DataType> onWriteConvert) {
this.m_OnWriteConvert = onWriteConvert;
}
/**
- * <p>バッファフルによりデータ書き込みできない場合に呼び出されるコールバックインタフェースを設定します。</p>
+ * {@.ja バッファフルにデータ書き込みできない場合に呼び出される
+ * コールバックインタフェースを設定する。}
+ * {@.en sets the callback interface called when data cannot be written in
+ * a full buffer.}
*
- * @param onOverflow OutOverflowコールバックインタフェースを持つオブジェクト
+ * @param onOverflow
+ * {@.ja OutOverflowコールバックインタフェースを持つオブジェクト}
+ * {@.en Object with OutOverflow callback interface}
*/
public void setOnOverflow(OnOverflow<DataType> onOverflow) {
this.m_OnOverflow = onOverflow;
}
/**
- * <p>データ読み出しの直前に呼び出されるコールバックインタフェースを設定します。</p>
+ * {@.ja データ読み出しの直前に呼び出されるコールバックインタフェースを
+ * 設定する。}
+ * {@.en sets the callback interface called immediately before reading of
+ * data.}
*
- * @param onRead OutReadコールバックインタフェースを持つオブジェクト
+ * @param onRead
+ * {@.ja OutReadコールバックインタフェースを持つオブジェクト}
+ * {@.en Object with OutRead callback interface}
*/
public void setOnRead(OnRead<DataType> onRead) {
this.m_OnRead = onRead;
}
/**
- * <p>データ読み出し時に呼び出されるコールバックインタフェースを設定します。</p>
+ * {@.ja データ読み出し時に呼び出されるコールバックインタフェースを
+ * 設定する。}
+ * {@.en sets the callback interface called when data is read.}
*
- * <p>設定されたコールバックの戻りデータ値が読み出されます。
- * これにより、読み出しデータをフィルタリングすることができます。</p>
+ * <p>
+ * {@.ja 設定されたコールバックの戻りデータ値が読み出される。
+ * これにより、読み出しデータをフィルタリングすることができる。}
*
- * @param onReadConvert OutReadConvertコールバックインタフェースを持つオブジェクト
+ * @param onReadConvert
+ * {@.ja OutReadConvertコールバックインタフェースを持つオブジェクト}
+ * {@.en Object with OutReadConvert callback interface}
*/
public void setOnReadConvert(OnReadConvert<DataType> onReadConvert) {
this.m_OnReadConvert = onReadConvert;
}
/**
- * <p>バッファ空により読み取れるデータがない場合に呼び出されるコールバックインタフェースを設定します。</p>
+ * {@.ja バッファ空により読み取れるデータがない場合に呼び出される
+ * コールバックインタフェースを設定する。}
+ * {@.en sets the callback interface called when there is no data that can
+ * be read in an empty buffer more. }
*
- * @param onUnderflow OutUnderflowコールバックインタフェースを持つオブジェクト
+ * @param onUnderflow
+ * {@.ja OutUnderflowコールバックインタフェースを持つオブジェクト}
+ * {@.en Object with OutUnderflow callback interface}
*/
public void setOnUnderflow(OnUnderflow<DataType> onUnderflow) {
this.m_OnUnderflow = onUnderflow;
@@ -494,13 +610,13 @@
*
*/
public void onConnect(final String id, PublisherBase publisher) {
- rtcout.println(rtcout.TRACE, "onConnect(id = "+id+")");
+ rtcout.println(Logbuf.TRACE, "onConnect(id = "+id+")");
}
/**
*
*/
public void onDisconnect(final String id) {
- rtcout.println(rtcout.TRACE, "onDisconnect(id = "+id+")");
+ rtcout.println(Logbuf.TRACE, "onDisconnect(id = "+id+")");
}
/**
@@ -530,7 +646,7 @@
}
catch(NoSuchFieldException e){
//getField throws
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught."+e.toString());
}
return false;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,55 +1,62 @@
package jp.go.aist.rtm.RTC.port;
-import java.util.Vector;
-import java.util.Iterator;
+import java.util.ArrayList;
import java.util.HashSet;
-import java.util.Set;
-import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
+import java.util.Vector;
-import org.omg.CORBA.portable.InputStream;
+import jp.go.aist.rtm.RTC.InPortConsumerFactory;
+import jp.go.aist.rtm.RTC.OutPortProviderFactory;
+import jp.go.aist.rtm.RTC.PublisherBaseFactory;
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.port.publisher.PublisherBase;
+import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.Properties;
+import jp.go.aist.rtm.RTC.util.StringUtil;
+
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.portable.OutputStream;
-import org.omg.CORBA.TCKind;
import _SDOPackage.NVListHolder;
import RTC.ConnectorProfile;
import RTC.ConnectorProfileHolder;
import RTC.ReturnCode_t;
-import jp.go.aist.rtm.RTC.PublisherBaseFactory;
-import jp.go.aist.rtm.RTC.InPortProviderFactory;
-import jp.go.aist.rtm.RTC.OutPortProviderFactory;
-import jp.go.aist.rtm.RTC.InPortConsumerFactory;
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.port.publisher.PublisherBase;
-import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
-
/**
- * <p>出力ポートのベース実装クラスです。
- * Publisherの登録やPublisherへのデータ更新通知などの実装を提供します。</p>
+ * {@.ja 出力ポートのベース実装クラス}
+ * {@.en Base implementation class for OutPort}
+ * <p>
+ * {@.ja Publisherの登録やPublisherへのデータ更新通知などの実装を提供する。}
+ * {@.en The implementation such as the registration of Pubilsher and
+ * notification to Publisher.}
*/
public abstract class OutPortBase extends PortBase {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param name ポート名
- * @param data_type
+ * @param name
+ * {@.ja ポート名称}
+ * {@.en Port name}
+ * @param data_type
+ * {@.ja データタイプ}
+ * {@.en Specify the data type used in the InPort object.}
*/
public OutPortBase(final String name,final String data_type) {
super(name);
m_isLittleEndian = true;
- rtcout.println(rtcout.DEBUG, "Port name: "+name);
- rtcout.println(rtcout.DEBUG, "setting port.port_type: DataOutPort");
+ rtcout.println(Logbuf.DEBUG, "Port name: "+name);
+ rtcout.println(Logbuf.DEBUG, "setting port.port_type: DataOutPort");
addProperty("port.port_type", "DataOutPort", String.class);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"setting dataport.data_type: "+data_type);
addProperty("dataport.data_type", data_type, String.class);
@@ -60,30 +67,34 @@
// blank characters are deleted for RTSE's bug
pubs = pubs.trim();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"available subscription_type: "+pubs);
addProperty("dataport.subscription_type", pubs, String.class);
}
/**
- * <p> Initializing properties </p>
- * <p> This operation initializes outport's properties </p>
- * @param prop Property for setting ports
- *
+ * {@.ja プロパティの初期化}
+ * {@.en Initializing properties}
+ * <p>
+ * {@.ja 指定されたプロパティで初期化する。}
+ * {@.en This operation initializes outport's properties.}
+ * @param prop
+ * {@.ja 設定するプロパティ}
+ * {@.en Property for setting ports}
*/
public void init(Properties prop) {
- rtcout.println(rtcout.TRACE, "init()");
+ rtcout.println(Logbuf.TRACE, "init()");
- rtcout.println(rtcout.PARANOID, "given properties:");
+ rtcout.println(Logbuf.PARANOID, "given properties:");
String str = new String();
prop._dump(str,prop,0);
- rtcout.println(rtcout.DEBUG, str);
+ rtcout.println(Logbuf.DEBUG, str);
m_properties.merge(prop);
- rtcout.println(rtcout.PARANOID, "updated properties:");
+ rtcout.println(Logbuf.PARANOID, "updated properties:");
str = "";
m_properties._dump(str,m_properties,0);
- rtcout.println(rtcout.DEBUG, str);
+ rtcout.println(Logbuf.DEBUG, str);
configure();
@@ -96,7 +107,7 @@
num = Integer.parseInt(limit);
}
catch(Exception ex){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid connection_limit value: "+limit );
}
setConnectionLimit(num);
@@ -119,34 +130,58 @@
public abstract boolean write();
/**
- * <p>プロパティを取得する</p>
+ *
+ * {@.ja プロパティを取得する}
+ * {@.en Get properties}
+ *
+ * <p>
+ * {@.ja ポートのプロパティを取得する。}
+ * {@.en This method gets properties in the port.}
+ * @return
+ * {@.ja プロパティ}
+ * {@.en Properties Properties}
+ *
*/
public Properties properties() {
- rtcout.println(rtcout.TRACE, "properties()");
+ rtcout.println(Logbuf.TRACE, "properties()");
return m_properties;
}
/**
- * <p> Connector list </p>
+ * {@.ja Connector を取得}
+ * {@.en Connector list}
*
- * <p> This operation returns connector list </p>
+ * <p>
+ * {@.ja 現在所有しているコネクタを取得する。}
+ * {@.en This operation returns connector list}
*
- * @return connector list
+ * @return
+ * {@.ja connector のリスト}
+ * {@.en connector list}
+ *
+ *
*/
public final Vector<OutPortConnector> connectors(){
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"connectors(): size = "+m_connectors.size());
return m_connectors;
}
/**
- * <p> ConnectorProfile list </p>
- *
- * <p> This operation returns ConnectorProfile list </p>
+ * {@.ja ConnectorProfile を取得}
+ * {@.en ConnectorProfile list}
*
- * @return connector list
+ * <p>
+ * {@.ja 現在所有しているコネクタのProfileを取得する。}
+ * {@.en This operation returns ConnectorProfile list}
+ *
+ * @return
+ * {@.ja ConnectorProfile のリスト}
+ * {@.en connector list}
+ *
+ *
*/
public Vector<ConnectorBase.ConnectorInfo> getConnectorProfiles(){
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorProfiles(): size = "+m_connectors.size());
Vector<ConnectorBase.ConnectorInfo> profs
= new Vector<ConnectorBase.ConnectorInfo>();
@@ -158,11 +193,17 @@
return profs;
}
/**
- * <p> ConnectorId list </p>
*
- * <p> This operation returns ConnectorId list </p>
+ * {@.ja ConnectorId を取得}
+ * {@.en ConnectorId list}
*
- * @return connector list
+ * <p>
+ * {@.ja 現在所有しているコネクタのIDを取得する。}
+ * {@.en This operation returns ConnectorId list}
+ * @return
+ * {@.ja ConnectorId のリスト}
+ * {@.en connector list}
+ *
*/
public Vector<String> getConnectorIds(){
Vector<String> ids = new Vector<String>();
@@ -171,17 +212,21 @@
ids.add(m_connectors.elementAt(i).id());
}
}
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorIds(): "+ids.toString());
return ids;
}
/**
- * <p> Connector name list </p>
*
- * <p> This operation returns Connector name list </p>
+ * {@.ja Connectorの名前を取得}
+ * {@.en Connector name list}
+ * <p>
+ * {@.ja 現在所有しているコネクタの名前を取得する。}
+ * {@.en This operation returns Connector name list}
+ * @return
+ * {@.en Connector名のリスト}
+ * {@.en connector name list}
*
- * @return connector name list
- *
*/
public Vector<String> getConnectorNames(){
Vector<String> names = new Vector<String>();
@@ -190,19 +235,27 @@
names.add(m_connectors.elementAt(i).name());
}
}
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorNames(): "+names.toString());
return names;
}
- /**
- * <p> Getting ConnectorProfile by ID </p>
- * <p> This operation returns Connector specified by ID. </p>
- * @param id Connector ID
- * @return OutPortConnector connector
+ /**
+ * {@.ja ConnectorProfileをIDで取得}
+ * {@.en Getting ConnectorProfile by ID}
+ *
+ * <p>
+ * {@.ja 現在所有しているコネクタをIDで取得する。}
+ * {@.en This operation returns Connector specified by ID.}
+ * @param id
+ * {@.ja Connector ID}
+ * {@.en Connector ID}
+ * @return
+ * {@.ja コネクタへのポインタ}
+ * {@.en InPortConnector connector}
*/
public OutPortConnector getConnectorById(final String id) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorById(id = "+id+")");
String sid = id;
@@ -213,20 +266,27 @@
}
}
}
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"ConnectorProfile with the id("+id+") not found.");
return null;
}
/**
- * <p> Getting Connector by name </p>
- * <p> This operation returns Connector specified by name. </p>
- * @param name Connector ID
- * @return OutPortConnector connector
+ * {@.ja ConnectorProfileを名前で取得}
+ * {@.en Getting Connector by name}
+ * <p>
+ * {@.ja 現在所有しているコネクタを名前で取得する。}
+ * {@.en This operation returns Connector specified by name.}
+ * @param name
+ * {@.ja Connector name}
+ * {@.en Connector ID}
+ * @return
+ * {@.ja コネクタへのポインタ}
+ * {@.en OutPortConnector connector}
*
*/
OutPortConnector getConnectorByName(final String name) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorByName(name = "+name+")");
String sname = name;
@@ -237,23 +297,30 @@
}
}
}
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"ConnectorProfile with the name("+name+") not found.");
return null;
}
/**
- * <p> Getting ConnectorProfile by name </p>
+ * {@.ja ConnectorProfileをnameで取得}
+ * {@.en Getting ConnectorProfile by name}
+ * <p>
+ * {@.ja 現在所有しているコネクタをIDで取得する。}
+ * {@.en This operation returns ConnectorProfile specified by name}
+ * @param id
+ * {@.ja Connector ID}
+ * {@.en Connector ID}
+ * @param profh
+ * {@.ja ConnectorInfoHolder}
+ * {@.en ConnectorInfoHolder}
+ * @return
+ * {@.ja false 指定したIDがない}
+ * {@.en false specified ID does not exist}
*
- * <p> This operation returns ConnectorProfile specified by name </p>
- *
- * @param id Connector ID
- * @param profh ConnectorProfileHolder
- * @return false specified ID does not exit
- *
*/
public boolean getConnectorProfileById(final String id,
ConnectorBase.ConnectorInfoHolder profh) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorProfileById(id = "+id+")");
OutPortConnector conn = getConnectorById(id);
@@ -265,18 +332,28 @@
}
/**
- * <p> Getting ConnectorProfile by name </p>
*
- * <p> This operation returns ConnectorProfile specified by name </p>
+ * {@.ja ConnectorProfileを名前で取得}
+ * {@.en Getting ConnectorProfile by name}
*
+ * <p>
+ * {@.ja 現在所有しているコネクタを名前で取得する。}
+ * {@.en This operation returns ConnectorProfile specified by name}
+ *
* @param name
- * @param profh ConnectorProfileHodler
- * @return false specified name does not exist
+ * {@.ja Connector name}
+ * {@.en Connector ID}
+ * @param profh
+ * {@.ja ConnectorInfoHolder}
+ * {@.en ConnectorInfoHolder}
+ * @return
+ * {@.ja false 指定した名前がない}
+ * {@.en false specified name does not exist}
*
*/
public boolean getConnectorProfileByName(final String name,
ConnectorBase.ConnectorInfoHolder profh) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"getConnectorProfileByNmae(name = "+name+")");
OutPortConnector conn = getConnectorByName(name);
@@ -314,26 +391,31 @@
}
/**
- * <p> Connect the Port </p>
+ * {@.ja [CORBA interface] Port の接続を行う}
+ * {@.en Connect the Port}
*
- * <p> This operation establishes connection according to the given
+ * <p>
+ * {@.ja 与えられた ConnectoionProfile の情報に基づき、Port間の接続を確立
+ * する。この関数は主にアプリケーションプログラムやツールから呼び出
+ * すことを前提としている。}
+ * {@.en This operation establishes connection according to the given
* ConnectionProfile inforamtion. This function is premised on
- * calling from mainly application program or tools. </p>
+ * calling from mainly application program or tools.
*
- * <p> To establish the connection among Ports of RT-Components,
+ * To establish the connection among Ports of RT-Components,
* application programs must call this operation giving
- * ConnectorProfile with valid values as an argument.</p>
+ * ConnectorProfile with valid values as an argument.
*
- * <p> Out of ConnectorProfile member variables, "name", "ports"
+ * Out of ConnectorProfile member variables, "name", "ports"
* and "properties" members shall be set valid
* data. "connector_id" shall be set as empty string value or
- * valid string UUID value.</p>
+ * valid string UUID value.
*
- * <p> ConnectorProfile::name that is connection identifier shall
- * be any valid CORBA::string.</p>
+ * ConnectorProfile::name that is connection identifier shall
+ * be any valid CORBA::string.
*
*
- * <p> ConnectorProfile::connector_id shall be set unique
+ * ConnectorProfile::connector_id shall be set unique
* identifier (usually UUID is used) for all connections. Since
* UUID string value is usually set in the connect() function,
* caller should just set empty string. If the connect() is called
@@ -341,57 +423,63 @@
* returns PRECONDITION_NOT_MET error. However, in order to update
* the existing connection profile, the "connect()" operation with
* existing connector ID might be used as valid method by future
- * extension</p>
+ * extension
*
- * <p> ConnectorProfile::ports, which is sequence of
+ * ConnectorProfile::ports, which is sequence of
* RTC::PortService references, shall store usually two or more
* ports' references. As exceptions, the "connect()" operation
* might be called with only one reference in ConnectorProfile, in
* case of just getting interfaces information from the port, or
* connecting a special port (i.e. the peer port except
- * RTC::PortService on CORBA).</p>
+ * RTC::PortService on CORBA).
*
- * <p> ConnectorProfile::properties might be used to give certain
+ * ConnectorProfile::properties might be used to give certain
* properties to the service interfaces associated with the port.
* The properties is a sequence variable with a pair of key string
* and Any type value. Although the A variable can store any type
- * of values, it is not recommended except string.</p>
+ * of values, it is not recommended except string.
*
- * <p> The following is the summary of the ConnectorProfile
- * member to be set when this operation is called.</p>
+ * The following is the summary of the ConnectorProfile
+ * member to be set when this operation is called.
*
- * - ConnectorProfile::name: The any name of connection
- * - ConnectorProfile::connector_id: Empty string
- * - ConnectorProfile::ports: One or more port references
- * - ConnectorProfile::properties: Properties for the interfaces
+ * <ul>
+ * <li>- ConnectorProfile::name: The any name of connection</li>
+ * <li>- ConnectorProfile::connector_id: Empty string</li>
+ * <li>- ConnectorProfile::ports: One or more port references</li>
+ * <li>- ConnectorProfile::properties: Properties for the interfaces</li>
+ * </ul>
*
- * <p> connect() operation will call the first port in the
- * sequence of the ConnectorProfile.</p>
+ * connect() operation will call the first port in the
+ * sequence of the ConnectorProfile.
*
- * <p> "noify_connect()"s perform cascaded call to the ports
+ * "noify_connect()"s perform cascaded call to the ports
* stored in the ConnectorProfile::ports by order. Even if errors
* are raised by intermediate notify_connect() operation, as long
* as ports' object references are valid, it is guaranteed that
* this cascaded call is completed in all the ports. If invalid
* or dead ports exist in the port's sequence, the ports are
- * skipped and notify_connect() is called for the next valid port.</p>
+ * skipped and notify_connect() is called for the next valid port.
*
- * <p> connect() function returns RTC_OK if all the
+ * connect() function returns RTC_OK if all the
* notify_connect() return RTC_OK. At this time the connection is
* completed. If notify_connect()s return except RTC_OK,
* connect() calls disconnect() operation with the connector_id to
* destruct the connection, and then it returns error code from
- * notify_connect().</p>
+ * notify_connect().
*
- * <p> The ConnectorProfile argument of the connect() operation
+ * The ConnectorProfile argument of the connect() operation
* returns ConnectorProfile::connector_id and various information
* about service interfaces that is published by
* publishInterfaces() in the halfway ports. The connect() and
* halfway notify_connect() functions never change
- * ConnectorProfile::{name, ports}.</p>
+ * ConnectorProfile::(name, ports)}
*
- * @param connector_profile The ConnectorProfile.
- * @return ReturnCode_t The return code of ReturnCode_t type.
+ * @param connector_profile
+ * {@.ja ConnectorProfile}
+ * {@.en The ConnectorProfile.}
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en The return code of ReturnCode_t type.}
*/
public ReturnCode_t connect(ConnectorProfileHolder connector_profile) {
//
@@ -455,7 +543,7 @@
*/
protected ReturnCode_t
publishInterfaces(ConnectorProfileHolder cprof) {
- rtcout.println(rtcout.TRACE, "publishInterfaces()");
+ rtcout.println(Logbuf.TRACE, "publishInterfaces()");
ReturnCode_t returnvalue = _publishInterfaces();
if(returnvalue!=ReturnCode_t.RTC_OK) {
@@ -477,11 +565,11 @@
*/
prop.merge(conn_prop.getNode("dataport.outport"));
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"ConnectorProfile::properties are as follows.");
String dumpString = new String();
dumpString = prop._dump(dumpString, prop, 0);
- rtcout.println(rtcout.DEBUG, dumpString);
+ rtcout.println(Logbuf.DEBUG, dumpString);
//
NVListHolder holder = new NVListHolder(cprof.value.properties);
try{
@@ -525,12 +613,12 @@
if (dflow_type.equals("push")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type = push .... do nothing");
return ReturnCode_t.RTC_OK;
}
else if (dflow_type.equals("pull")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type = pull .... create PushConnector");
OutPortProvider provider=createProvider(cprof, prop);
if (provider == null) {
@@ -545,12 +633,12 @@
provider.setConnector(connector);
connector.setOutPortBase(this);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"publishInterface() successfully finished.");
return ReturnCode_t.RTC_OK;
}
- rtcout.println(rtcout.ERROR, "unsupported dataflow_type");
+ rtcout.println(Logbuf.ERROR, "unsupported dataflow_type");
return ReturnCode_t.BAD_PARAMETER;
}
@@ -591,7 +679,7 @@
*/
protected ReturnCode_t subscribeInterfaces(
final ConnectorProfileHolder cprof) {
- rtcout.println(rtcout.TRACE, "subscribeInterfaces()");
+ rtcout.println(Logbuf.TRACE, "subscribeInterfaces()");
// prop: [port.outport].
Properties prop = m_properties;
{
@@ -608,11 +696,11 @@
prop.merge(conn_prop.getNode("dataport.outport"));
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"ConnectorProfile::properties are as follows.");
String dumpString = new String();
dumpString = prop._dump(dumpString, prop, 0);
- rtcout.println(rtcout.DEBUG, dumpString);
+ rtcout.println(Logbuf.DEBUG, dumpString);
//
NVListHolder holder = new NVListHolder(cprof.value.properties);
try{
@@ -628,7 +716,7 @@
String[] endian = endian_type.split(",");
String str = endian[0].trim();
if(str.length()==0){
- rtcout.println(rtcout.ERROR, "unsupported endian");
+ rtcout.println(Logbuf.ERROR, "unsupported endian");
return ReturnCode_t.UNSUPPORTED;
}
if(str.equals("little")){
@@ -644,7 +732,7 @@
catch(Exception e){
m_isLittleEndian = true;
}
- rtcout.println(rtcout.TRACE, "Little Endian = "+m_isLittleEndian);
+ rtcout.println(Logbuf.TRACE, "Little Endian = "+m_isLittleEndian);
/*
* Because properties of ConnectorProfileHolder was merged,
* the accesses such as prop["dataflow_type"] and
@@ -653,7 +741,7 @@
String dflow_type = prop.getProperty("dataflow_type");
dflow_type = StringUtil.normalize(dflow_type);
if (dflow_type.equals("push")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type is push.");
//interface
@@ -670,23 +758,23 @@
consumer.setConnector(connector);
connector.setOutPortBase(this);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"publishInterface() successfully finished.");
connector.setEndian(m_isLittleEndian);
return ReturnCode_t.RTC_OK;
}
else if (dflow_type.equals("pull")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type is pull.");
// set endian type
OutPortConnector conn = getConnectorById(cprof.value.connector_id);
if (conn == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"specified connector not found: "+cprof.value.connector_id);
return ReturnCode_t.RTC_ERROR;
}
conn.setEndian(m_isLittleEndian);
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"subscribeInterfaces() successfully finished.");
return ReturnCode_t.RTC_OK;
/* zxc
@@ -701,37 +789,40 @@
return ReturnCode_t.RTC_OK;
}
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"specified connector not found: " + id);
return ReturnCode_t.RTC_ERROR;
}
*/
}
- rtcout.println(rtcout.ERROR, "unsupported dataflow_type:"+dflow_type);
+ rtcout.println(Logbuf.ERROR, "unsupported dataflow_type:"+dflow_type);
return ReturnCode_t.BAD_PARAMETER;
}
- /*
- * <p> Disconnect the interface connection </p>
+ /**
+ * {@.ja Interfaceへの接続を解除する}
+ * {@.en Disconnect the interface connection}
*
- * <p>This operation is pure virutal function that would be called at the
- * end of the notify_disconnect() process sequence.
- * In the notify_disconnect(), the following methods would be called. </p>
- * <p> - disconnectNext() </p>
- * <p> - unsubscribeInterfaces() </p>
- * <p> - eraseConnectorProfile() </p>
+ * <p>
+ * {@.ja Interfaceへの接続を解除する。
+ * 与えられたConnectorProfileに関連するConsumerに設定された全てのObjectを
+ * 解放し接続を解除する。}
+ * {@.en Disconnect the interface connection.
+ * Release all objects set in Consumer associated with
+ * given ConnectorProfile and unscribe the interface.}
*
- * @param connector_profile The profile information associated with
- * the connection
+ * @param connector_profile
+ * {@.ja コネクタ・プロファイル}
+ * {@.en The connector profile}
*
*/
protected void
unsubscribeInterfaces(final ConnectorProfile connector_profile) {
- rtcout.println(rtcout.TRACE, "unsubscribeInterfaces()");
+ rtcout.println(Logbuf.TRACE, "unsubscribeInterfaces()");
String id = connector_profile.connector_id;
- rtcout.println(rtcout.PARANOID, "connector_id: " + id);
+ rtcout.println(Logbuf.PARANOID, "connector_id: " + id);
synchronized (m_connectors){
Iterator it = m_connectors.iterator();
@@ -741,18 +832,23 @@
// Connector's dtor must call disconnect()
connector.disconnect();
it.remove();
- rtcout.println(rtcout.TRACE, "delete connector: " + id);
+ rtcout.println(Logbuf.TRACE, "delete connector: " + id);
return;
}
}
}
- rtcout.println(rtcout.ERROR, "specified connector not found: " + id);
+ rtcout.println(Logbuf.ERROR, "specified connector not found: " + id);
return;
}
/**
- * <p> Activate all Port interfaces </p>
- * <p> This operation activate all interfaces that is registered in the
- * ports.</p>
+ * {@.ja OutPortを activates する}
+ * {@.en Activate all Port interfaces}
+ *
+ * <p>
+ * {@.ja Port に登録されている全てのインターフェースを activate する。}
+ * {@.en This operation activate all interfaces that is registered in the
+ * ports.}
+ *
*/
public void activateInterfaces() {
synchronized (m_connectors){
@@ -763,9 +859,15 @@
}
/**
- * <p> Deactivate all Port interfaces </p>
- * <p> This operation deactivate all interfaces that is registered in the
- * ports. </p>
+ *
+ * {@.ja 全ての Port のインターフェースを deactivates する}
+ * {@.en Deactivate all Port interfaces}
+ *
+ * <p>
+ * {@.ja Port に登録されている全てのインターフェースを deactivate する。}
+ * {@.en This operation deactivate all interfaces that is registered in
+ * the ports.}
+ *
*/
public void deactivateInterfaces() {
synchronized (m_connectors){
@@ -861,17 +963,91 @@
boolean autoclean) {
if (type < ConnectorDataListenerType.CONNECTOR_DATA_LISTENER_NUM) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"addConnectorDataListener("
+ConnectorDataListenerType.toString(type)
+")");
m_listeners.connectorData_[type].addObserver(listener);
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"addConnectorDataListener(): Invalid listener type.");
return;
}
+ /**
+ * {@.ja ConnectorDataListener リスナを追加する}
+ * {@.en Adds ConnectorDataListener type listener}
+ * <p>
+ *
+ * バッファ書き込みまたは読み出しイベントに関連する各種リスナを設定する。
+ *
+ * 設定できるリスナのタイプとコールバックイベントは以下の通り
+ *
+ * <ul>
+ * <li> ON_BUFFER_WRITE: バッファ書き込み時
+ * <li> - ON_BUFFER_FULL: バッファフル時
+ * <li> - ON_BUFFER_WRITE_TIMEOUT: バッファ書き込みタイムアウト時
+ * <li> - ON_BUFFER_OVERWRITE: バッファ上書き時
+ * <li> - ON_BUFFER_READ: バッファ読み出し時
+ * <li> - ON_SEND: InProtへの送信時
+ * <li> - ON_RECEIVED: InProtへの送信完了時
+ * <li> - ON_SEND_ERTIMEOUT: OutPort側タイムアウト時
+ * <li> - ON_SEND_ERERROR: OutPort側エラー時
+ * <li> - ON_RECEIVER_FULL: InProt側バッファフル時
+ * <li> - ON_RECEIVER_TIMEOUT: InProt側バッファタイムアウト時
+ * <li> - ON_RECEIVER_ERROR: InProt側エラー時
+ * </ul>
+ *
+ * リスナは ConnectorDataListener を継承し、以下のシグニチャを持つ
+ * operator() を実装している必要がある。
+ *
+ * <pre><code>
+ * ConnectorDataListener::
+ * operator()(const ConnectorProfile&, const cdrStream&)
+ * </code></pre>
+ *
+ * デフォルトでは、この関数に与えたリスナオブジェクトの所有権は
+ * OutPortに移り、OutPort解体時もしくは、
+ * removeConnectorDataListener() により削除時に自動的に解体される。}
+ * {@.en This operation adds certain listeners related to buffer writing and
+ * reading events.
+ * The following listener types are available.
+ *
+ * <ul>
+ * <li> ON_BUFFER_WRITE: At the time of buffer write
+ * <li> ON_BUFFER_FULL: At the time of buffer full
+ * <li> ON_BUFFER_WRITE_TIMEOUT: At the time of buffer write timeout
+ * <li> ON_BUFFER_OVERWRITE: At the time of buffer overwrite
+ * <li> ON_BUFFER_READ: At the time of buffer read
+ * <li> ON_SEND: At the time of sending to InPort
+ * <li> ON_RECEIVED: At the time of finishing sending to InPort
+ * <li> ON_SENDER_TIMEOUT: At the time of timeout of OutPort
+ * <li> ON_SENDER_ERROR: At the time of error of OutPort
+ * <li> ON_RECEIVER_FULL: At the time of bufferfull of InPort
+ * <li> ON_RECEIVER_TIMEOUT: At the time of timeout of InPort
+ * <li> ON_RECEIVER_ERROR: At the time of error of InPort
+ * </ul>
+ *
+ * Listeners should have the following function operator().
+ *
+ * <pre><code>
+ * ConnectorDataListener::
+ * operator()(const ConnectorProfile&, const cdrStream&)
+ * </code></pre>
+ *
+ * The ownership of the given listener object is transferred to
+ * this OutPort object in default. The given listener object will
+ * be destroied automatically in the OutPort's dtor or if the
+ * listener is deleted by removeConnectorDataListener() function.}
+ * </p>
+ *
+ * @param type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ */
public void addConnectorDataListener(int type,
ConnectorDataListenerT listener) {
this.addConnectorDataListener(type,listener,true);
@@ -896,14 +1072,14 @@
ConnectorDataListenerT listener) {
if (type < ConnectorDataListenerType.CONNECTOR_DATA_LISTENER_NUM) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"removeConnectorDataListener("
+ConnectorDataListenerType.toString(type)
+")");
m_listeners.connectorData_[type].deleteObserver(listener);
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"removeConnectorDataListener(): Invalid listener type.");
return;
}
@@ -971,17 +1147,68 @@
boolean autoclean) {
if (type < ConnectorListenerType.CONNECTOR_LISTENER_NUM) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"addConnectorListener("
+ConnectorListenerType.toString(type)
+")");
m_listeners.connector_[type].addObserver(listener);
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"addConnectorListener(): Invalid listener type.");
return;
}
+ /**
+ * {@.ja ConnectorListener リスナを追加する}
+ * {@.en Adds ConnectorListener type listener}
+ *
+ * <p>
+ *
+ * {@.ja バッファ書き込みまたは読み出しイベントに関連する各種リスナを
+ * 設定する。
+ *
+ * 設定できるリスナのタイプは
+ *
+ * <ul>
+ * <li> ON_BUFFER_EMPTY: バッファが空の場合
+ * <li> ON_BUFFER_READTIMEOUT: バッファが空でタイムアウトした場合
+ * </ul>
+ *
+ * リスナは以下のシグニチャを持つ operator() を実装している必要がある。
+ *
+ * <pre><code>
+ * ConnectorListener::operator()(const ConnectorProfile&)
+ * </code></pre>
+ *
+ * デフォルトでは、この関数に与えたリスナオブジェクトの所有権は
+ * OutPortに移り、OutPort解体時もしくは、
+ * removeConnectorListener() により削除時に自動的に解体される。}
+ *
+ * {@.en This operation adds certain listeners related to buffer writing and
+ * reading events.
+ * The following listener types are available.
+ *
+ * <ul>
+ * <li> ON_BUFFER_EMPTY: At the time of buffer empty
+ * <li> ON_BUFFER_READTIMEOUT: At the time of buffer read timeout
+ * </ul>
+ *
+ * Listeners should have the following function operator().
+ *
+ * ConnectorListener::operator()(const ConnectorProfile&)
+ *
+ * The ownership of the given listener object is transferred to
+ * this OutPort object in default. The given listener object will
+ * be destroied automatically in the OutPort's dtor or if the
+ * listener is deleted by removeConnectorListener() function.}
+ * </p>
+ * @param type
+ * {@.ja リスナタイプ}
+ * {@.en A listener type}
+ * @param listener
+ * {@.ja リスナオブジェクトへのポインタ}
+ * {@.en A pointer to a listener object}
+ */
public void addConnectorListener(int type,ConnectorListener listener) {
this.addConnectorListener(type,listener,true);
}
@@ -1006,14 +1233,14 @@
ConnectorListener listener) {
if (type < ConnectorListenerType.CONNECTOR_LISTENER_NUM) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"removeConnectorListener("
+ConnectorListenerType.toString(type)
+")");
m_listeners.connector_[type].deleteObserver(listener);
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"removeConnectorListener(): Invalid listener type.");
return;
}
@@ -1022,34 +1249,34 @@
/**
- * <p>データ更新通知先として登録されているPublisherオブジェクトのリストです。</p>
- */
- /**
- * <p> Configureing outport </p>
+ * {@.ja OutPortの設定を行う}
+ * {@.en Configureing outport}
+ * <p>
+ * {@.ja propertiesの情報に基づきOutPortの各種設定を行う}
+ * {@.en This operation configures the outport based on the properties.}
*
- * <p> This operation configures the outport based on the properties. </p>
- *
*/
protected void configure(){
}
/**
- * <p> OutPort provider initialization </p>
+ * {@.ja OutPort provider の初期化}
+ * {@.en OutPort provider initialization}
*/
protected void initProviders(){
- rtcout.println(rtcout.TRACE, "initProviders()");
+ rtcout.println(Logbuf.TRACE, "initProviders()");
// create OutPort providers
OutPortProviderFactory<OutPortProvider,String> factory
= OutPortProviderFactory.instance();
Set provider_types = factory.getIdentifiers();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"available providers: " + provider_types.toString());
//#ifndef RTC_NO_DATAPORTIF_ACTIVATION_OPTION
String string_normalize = StringUtil.normalize(m_properties.getProperty("provider_types"));
if (m_properties.hasKey("provider_types")!=null &&
!string_normalize.equals("all")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"allowed providers: "
+ m_properties.getProperty("provider_types"));
@@ -1073,7 +1300,7 @@
// OutPortProvider supports "pull" dataflow type
if (provider_types.size() > 0) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type pull is supported");
appendProperty("dataport.dataflow_type", "pull");
appendProperty("dataport.interface_type",
@@ -1087,23 +1314,24 @@
}
/**
- * <p> InPort consumer initialization </p>
+ * {@.ja InPort consumer の初期化}
+ * {@.en InPort consumer initialization}
*/
protected void initConsumers() {
- rtcout.println(rtcout.TRACE, "initConsumers()");
+ rtcout.println(Logbuf.TRACE, "initConsumers()");
// create InPort consumers
InPortConsumerFactory<InPortConsumer,String> factory
= InPortConsumerFactory.instance();
Set consumer_types = factory.getIdentifiers();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"available InPortConsumer: "+consumer_types.toString());
//#ifndef RTC_NO_DATAPORTIF_ACTIVATION_OPTION
String string_normalize = StringUtil.normalize(m_properties.getProperty("consumer_types"));
if (m_properties.hasKey("consumer_types")!=null &&
!string_normalize.equals("all")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"allowed consumers: "
+ m_properties.getProperty("consumer_types"));
@@ -1127,7 +1355,7 @@
// OutPortConsumer supports "push" dataflow type
if (consumer_types.size() > 0) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataflow_type pull is supported");
appendProperty("dataport.dataflow_type", "push");
appendProperty("dataport.interface_type",
@@ -1141,7 +1369,8 @@
}
/**
- * <p> OutPort provider creation </p>
+ * {@.ja OutPort provider の生成}
+ * {@.en OutPort provider creation}
*/
protected OutPortProvider
createProvider(ConnectorProfileHolder cprof,
@@ -1150,15 +1379,15 @@
!StringUtil.includes(m_providerTypes,
prop.getProperty("interface_type"),
true)) {
- rtcout.println(rtcout.ERROR, "no provider found");
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR, "no provider found");
+ rtcout.println(Logbuf.ERROR,
"interface_type: "+prop.getProperty("interface_type"));
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"interface_types: "+m_providerTypes.toString());
return null;
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"interface_type: "+prop.getProperty("interface_type"));
OutPortProvider provider;
OutPortProviderFactory<OutPortProvider,String> factory
@@ -1166,12 +1395,12 @@
provider = factory.createObject(prop.getProperty("interface_type"));
if (provider != null) {
- rtcout.println(rtcout.DEBUG, "provider created");
+ rtcout.println(Logbuf.DEBUG, "provider created");
provider.init(prop.getNode("provider"));
NVListHolder nvlist = new NVListHolder(cprof.value.properties);
if (!provider.publishInterface(nvlist)) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"publishing interface information error");
factory.deleteObject(provider);
return null;
@@ -1180,12 +1409,13 @@
return provider;
}
- rtcout.println(rtcout.ERROR, "provider creation failed");
+ rtcout.println(Logbuf.ERROR, "provider creation failed");
return null;
}
/**
- * <p> InPort consumer creation </p>
+ * {@.ja InPort consumer の生成}
+ * {@.en InPort consumer creation}
*/
protected InPortConsumer
createConsumer(final ConnectorProfileHolder cprof,
@@ -1194,15 +1424,15 @@
!StringUtil.includes(m_consumerTypes,
prop.getProperty("interface_type"),
true)) {
- rtcout.println(rtcout.ERROR, "no consumer found");
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR, "no consumer found");
+ rtcout.println(Logbuf.ERROR,
"interface_type: "+prop.getProperty("interface_type"));
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"interface_types: "+m_consumerTypes.toString());
return null;
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"interface_type: "+prop.getProperty("interface_type"));
InPortConsumer consumer;
InPortConsumerFactory<InPortConsumer,String> factory
@@ -1210,12 +1440,12 @@
consumer = factory.createObject(prop.getProperty("interface_type"));
if (consumer != null) {
- rtcout.println(rtcout.DEBUG, "consumer created");
+ rtcout.println(Logbuf.DEBUG, "consumer created");
consumer.init(prop.getNode("consumer"));
NVListHolder nvlist = new NVListHolder(cprof.value.properties);
if (!consumer.subscribeInterface(nvlist)) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"interface subscription failed.");
factory.deleteObject(consumer);
return null;
@@ -1224,13 +1454,14 @@
return consumer;
}
- rtcout.println(rtcout.ERROR, "consumer creation failed");
+ rtcout.println(Logbuf.ERROR, "consumer creation failed");
return null;
}
/**
- * <p> OutPortPushConnector creation </p>
+ * {@.ja OutPortPushConnector の生成}
+ * {@.en OutPortPushConnector creation}
*/
protected OutPortConnector
createConnector(final ConnectorProfileHolder cprof,
@@ -1249,26 +1480,27 @@
m_listeners, buffer);
if (connector == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"old compiler? new returned 0;");
return null;
}
- rtcout.println(rtcout.TRACE, "OutPortPushConnector create");
+ rtcout.println(Logbuf.TRACE, "OutPortPushConnector create");
m_connectors.add(connector);
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"connector push backed: "+m_connectors.size());
return connector;
}
catch (Exception e) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"OutPortPushConnector creation failed");
return null;
}
}
}
/**
- * <p> OutPortPullConnector creation </p>
+ * {@.ja OutPortPullConnector の生成}
+ * {@.en OutPortPullConnector creation}
*/
protected OutPortConnector
createConnector(final ConnectorProfileHolder cprof,
@@ -1287,26 +1519,32 @@
m_listeners, buffer);
if (connector == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"old compiler? new returned 0;");
return null;
}
- rtcout.println(rtcout.TRACE, "OutPortPullConnector create");
+ rtcout.println(Logbuf.TRACE, "OutPortPullConnector create");
m_connectors.add(connector);
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"connector push backed: "+m_connectors.size());
return connector;
}
catch (Exception e) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"OutPortPullConnector creation failed");
return null;
}
}
}
/**
- *
+ * {@.ja endian 情報を返す}
+ * {@.en Returns endian information}
+ *
+ * @return
+ * {@.ja littleの場合true、bigの場合false を返す。}
+ * {@.en If endian information is "Little", it is "True."}
+ *
*/
public boolean isLittleEndian(){
return m_isLittleEndian;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortConnector.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortConnector.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortConnector.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,103 +1,146 @@
-package jp.go.aist.rtm.RTC.port;
-
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.log.Logbuf;
-
-
-/**
- * <p> OutPortConnector </p>
- * <p> Out PortConnector base class </p>
- *
- *
- * <p> The base class to derive subclasses for OutPort's Push/Pull Connectors </p>
- */
-public abstract class OutPortConnector extends ConnectorBase {
-
- /**
- * <p> Constructor </p>
- */
- public OutPortConnector(ConnectorBase.ConnectorInfo profile) {
- rtcout = new Logbuf("OutPortConnector");
- m_profile = profile;
- m_isLittleEndian = true;
- }
-
- /**
- * <p> Getting Profile </p>
- * <p> This operation returns Connector Profile </p>
- *
- */
- public final ConnectorInfo profile() {
- rtcout.println(rtcout.TRACE, "profile()");
- return m_profile;
- }
-
- /**
- * <p> Getting Connector ID </p>
- * <p> This operation returns Connector ID </p>
- *
- */
- public final String id() {
- rtcout.println(rtcout.TRACE, "id() = " + profile().id);
- return profile().id;
- }
-
- /**
- * <p> Getting Connector name </p>
- * <p> This operation returns Connector name </p>
- *
- */
- public final String name(){
- rtcout.println(rtcout.TRACE, "name() = " + profile().name);
- return profile().name;
- }
- /**
- *
- * <p> Setting an endian type </p>
- *
- * <p> This operation set this connector's endian type </p>
- *
- */
- public void setEndian(boolean isLittleEndian){
- m_isLittleEndian = isLittleEndian;
- }
- /**
- * <p> This value is true if the architecture is little-endian; false if it is big-endian. </p>
- *
- */
- public boolean isLittleEndian(){
- return m_isLittleEndian;
- }
- /**
- * <p> Disconnect connection </p>
- * <p> This operation disconnect this connection </p>
- *
- */
- public abstract ReturnCode disconnect();
-
- /**
- * <p> Getting Buffer </p>
- * <p> This operation returns this connector's buffer </p>
- *
- */
- public abstract BufferBase<OutputStream> getBuffer();
-
- /**
- * <p> Destructor </p>
- * <p> The write function to write data from OutPort to Buffer </p>
- *
- */
- public abstract <DataType> ReturnCode write(final DataType data);
-
- /**
- */
- public abstract void setOutPortBase(OutPortBase outportbase);
-
- protected Logbuf rtcout;
- protected ConnectorInfo m_profile;
- protected boolean m_isLittleEndian;
-}
-
+package jp.go.aist.rtm.RTC.port;
+
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ *
+ * {@.ja OutPortConnector 基底クラス}
+ * {@.en Out PortConnector base class}
+ * <p>
+ * {@.ja OutPort の Push/Pull 各種 Connector を派生させるための
+ * 基底クラス。}
+ * {@.en The base class to derive subclasses for OutPort's Push/Pull
+ * Connectors}
+ */
+public abstract class OutPortConnector extends ConnectorBase {
+
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * @param profile
+ * {@.ja 接続情報を含む ConnectorInfo オブジェクト}
+ * {@.en ConnectorInfo object which includes connection information}
+ */
+ public OutPortConnector(ConnectorBase.ConnectorInfo profile) {
+ rtcout = new Logbuf("OutPortConnector");
+ m_profile = profile;
+ m_isLittleEndian = true;
+ }
+
+ /**
+ * {@.ja Profile 取得}
+ * {@.en Getting Profile}
+ * <p>
+ * {@.ja Connector Profile を取得する}
+ * {@.en This operation returns Connector Profile}
+ *
+ */
+ public final ConnectorInfo profile() {
+ rtcout.println(Logbuf.TRACE, "profile()");
+ return m_profile;
+ }
+
+ /**
+ * {@.ja Connector ID 取得}
+ * {@.en Getting Connector ID}
+ * <p>
+ * {@.ja Connector ID を取得する}
+ * {@.en This operation returns Connector ID}
+ */
+ public final String id() {
+ rtcout.println(Logbuf.TRACE, "id() = " + profile().id);
+ return profile().id;
+ }
+
+ /**
+ * {@.ja Connector 名取得}
+ * {@.en Getting Connector name}
+ * <p>
+ * {@.ja Connector 名を取得する}
+ * {@.en This operation returns Connector name}
+ */
+ public final String name(){
+ rtcout.println(Logbuf.TRACE, "name() = " + profile().name);
+ return profile().name;
+ }
+ /**
+ * {@.ja endianタイプ設定}
+ * {@.en Setting an endian type}
+ * <p>
+ * {@.ja endianタイプを設定する}
+ * {@.en This operation set this connector's endian type}
+ */
+ public void setEndian(boolean isLittleEndian){
+ m_isLittleEndian = isLittleEndian;
+ }
+ /**
+ * {@.ja endian 設定を返す}
+ * {@.en Returns endian information}
+ * <p>
+ * {@.ja endian 設定のbool値を返す。}
+ * {@.en This value is true if the architecture is little-endian;
+ * false if it is big-endian.}
+ *
+ * @return
+ * {@.ja m_littleEndian がlittleの場合true、bigの場合false を返す。}
+ * {@.en Returns the endian setting.}
+ */
+ public boolean isLittleEndian(){
+ return m_isLittleEndian;
+ }
+ /**
+ * {@.ja 接続解除関数}
+ * {@.en Disconnect connection}
+ * <p>
+ * {@.ja Connector が保持している接続を解除する}
+ * {@.en This operation disconnect this connection}
+ *
+ * @return
+ * {@.ja ReturnCode}
+ * {@.en ReturnCode}
+ */
+ public abstract ReturnCode disconnect();
+
+ /**
+ * {@.ja Buffer を取得する}
+ * {@.en Getting Buffer}
+ * <p>
+ * {@.ja Connector が保持している Buffer を返す}
+ * {@.en This operation returns this connector's buffer}
+ *
+ * @return
+ * {@.ja このコネクタが保持するバッファへのポインタ}
+ * {@.en A pointer to the buffer owned by this connector}
+ *
+ */
+ public abstract BufferBase<OutputStream> getBuffer();
+
+ /**
+ * {@.ja write 関数}
+ * {@.en Writes data}
+ * <p>
+ * {@.ja OutPort からデータを Buffer へ write する関数}
+ * {@.en The write function to write data from OutPort to Buffer}
+ *
+ */
+ public abstract <DataType> ReturnCode write(final DataType data);
+
+ /**
+ * {@.ja OutPortBaseを格納する。}
+ * {@.en Stores OutPortBase.}
+ *
+ * @param outportbase
+ * {@.ja OutPortBase}
+ * {@.en OutPortBase}
+ *
+ */
+ public abstract void setOutPortBase(OutPortBase outportbase);
+
+ protected Logbuf rtcout;
+ protected ConnectorInfo m_profile;
+ protected boolean m_isLittleEndian;
+}
+
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortConsumer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortConsumer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortConsumer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,12 +1,10 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
-import jp.go.aist.rtm.RTC.port.ReturnCode;
import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import org.omg.CORBA.portable.OutputStream;
+
import _SDOPackage.NVListHolder;
/**
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortCorbaCdrConsumer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortCorbaCdrConsumer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortCorbaCdrConsumer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,41 +1,40 @@
package jp.go.aist.rtm.RTC.port;
+import jp.go.aist.rtm.RTC.Manager;
+import jp.go.aist.rtm.RTC.ObjectCreator;
+import jp.go.aist.rtm.RTC.ObjectDestructor;
+import jp.go.aist.rtm.RTC.OutPortConsumerFactory;
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.Properties;
+
+import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.ORB;
-import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.Object;
-import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.portable.OutputStream;
-import org.omg.CORBA.TCKind;
import _SDOPackage.NVListHolder;
-import OpenRTM.CdrDataHolder;
-import OpenRTM.PortStatus;
-
-import jp.go.aist.rtm.RTC.Manager;
-import jp.go.aist.rtm.RTC.OutPortConsumerFactory;
-import jp.go.aist.rtm.RTC.ObjectCreator;
-import jp.go.aist.rtm.RTC.ObjectDestructor;
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
-import jp.go.aist.rtm.RTC.port.ConnectorDataListenerType;
-import jp.go.aist.rtm.RTC.port.ConnectorListenerType;
-import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
/**
- * <p> OutPortCorbaCdrConsumer </p>
+ * {@.ja OutPortCorbaCdrConsumer クラス}
+ * {@.en OutPortCorbaCdrConsumer class}
+ * <p>
+ * {@.ja データ転送に CORBA の OpenRTM::OutPortCdr インターフェースを利用し
+ * た、pull 型データフロー型を実現する OutPort コンシューマクラス。}
+ * {@.en This is an implementation class of the output Consumer
+ * that uses CORBA for means of communication.}
*
- * <p> OutPortCorbaCdrConsumer class </p>
- *
- * <p> This is an implementation class of the output Consumer </p>
- * <p> that uses CORBA for means of communication. </p>
- *
* @param DataType Data type for this port
+ * @param DataType
+ * {@.ja ポートのためのDataType}
+ * {@.en Data type for this port}
*
*/
public class OutPortCorbaCdrConsumer extends CorbaConsumer< OpenRTM.OutPortCdr> implements OutPortConsumer, ObjectCreator<OutPortConsumer>, ObjectDestructor {
- /*!
- * @brief Constructor
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
*/
public OutPortCorbaCdrConsumer() {
@@ -46,44 +45,96 @@
/**
*
*
- * <p> Initializing configuration </p>
+ * {@.ja 設定初期化}
+ * {@.en Initializing configuration}
+ * <p>
+ * {@.ja OutPortConsumerの各種設定を行う。実装クラスでは、与えられた
+ * Propertiesから必要な情報を取得して各種設定を行う。この init() 関
+ * 数は、OutPortProvider生成直後および、接続時にそれぞれ呼ばれる可
+ * 能性がある。したがって、この関数は複数回呼ばれることを想定して記
+ * 述されるべきである。}
+ * {@.en This operation would be called to configure in initialization.
+ * In the concrete class, configuration should be performed
+ * getting appropriate information from the given Properties data.
+ * This function might be called right after instantiation and
+ * connection sequence respectivly. Therefore, this function
+ * should be implemented assuming multiple call.}
*
- * <p> This operation would be called to configure in initialization. </p>
- * <p> In the concrete class, configuration should be performed </p>
- * <p> getting appropriate information from the given Properties data. </p>
- * <p> This function might be called right after instantiation and </p>
- * <p> connection sequence respectivly. Therefore, this function </p>
- * <p> should be implemented assuming multiple call. </p>
+ * @param prop
+ * {@.ja 設定情報}
+ * {@.en Configuration information}
*
- * @param prop Configuration information
- *
*/
public void init(Properties prop) {
- rtcout.println(rtcout.TRACE, "OutPutCorbaCdrConsumer.init()");
+ rtcout.println(Logbuf.TRACE, "OutPutCorbaCdrConsumer.init()");
}
/**
- * <p> Setting outside buffer's pointer </p>
- *
- * <p> A pointer to a buffer from which OutPortProvider retrieve data. </p>
- * <p> If already buffer is set, previous buffer's pointer will be </p>
- * <p> overwritten by the given pointer to a buffer. Since </p>
- * <p> OutPortProvider does not assume ownership of the buffer </p>
- * <p> pointer, destructor of the buffer should be done by user. </p>
+ * {@.ja バッファをセットする}
+ * {@.en Setting outside buffer's pointer}
+ * <p>
+ * {@.ja OutPortConsumerがデータを取り出すバッファをセットする。
+ * すでにセットされたバッファがある場合、以前のバッファへの
+ * ポインタに対して上書きされる。
+ * OutPortProviderはバッファの所有権を仮定していないので、
+ * バッファの削除はユーザの責任で行わなければならない。}
+ * {@.en A pointer to a buffer from which OutPortProvider retrieve data.
+ * If already buffer is set, previous buffer's pointer will be
+ * overwritten by the given pointer to a buffer. Since
+ * OutPortProvider does not assume ownership of the buffer
+ * pointer, destructor of the buffer should be done by user.}
*
- * @param buffer A pointer to a data buffer to be used by OutPortProvider
+ * @param buffer
+ * {@.ja OutPortProviderがデータを取り出すバッファへのポインタ}
+ * {@.en A pointer to a data buffer to be used by OutPortProvider}
*
*/
public void setBuffer(BufferBase<OutputStream> buffer) {
- rtcout.println(rtcout.TRACE, "OutPutCorbaCdrConsumer.setBuffer()");
+ rtcout.println(Logbuf.TRACE, "OutPutCorbaCdrConsumer.setBuffer()");
m_buffer = buffer;
}
/**
- *
+ * {@.ja リスナを設定する。}
+ * {@.en Set the listener.}
+ * <p>
+ * {@.ja InPort はデータ送信処理における各種イベントに対して特定のリスナ
+ * オブジェクトをコールするコールバック機構を提供する。詳細は
+ * ConnectorListener.h の ConnectorDataListener, ConnectorListener
+ * 等を参照のこと。OutPortCorbaCdrProvider では、以下のコールバック
+ * が提供される。
+ * <ol>
+ * <li>- ON_BUFFER_WRITE
+ * <li>- ON_BUFFER_FULL
+ * <li>- ON_RECEIVED
+ * <li>- ON_RECEIVER_FULL
+ * <li>- ON_SENDER_EMPTY
+ * <li>- ON_SENDER_TIMEOUT
+ * <li>- ON_SENDER_ERROR</ol>}
+ * {@.en OutPort provides callback functionality that calls specific
+ * listener objects according to the events in the data publishing
+ * process. For details, see documentation of
+ * ConnectorDataListener class and ConnectorListener class in
+ * ConnectorListener.h. In this OutPortCorbaCdrProvider provides
+ * the following callbacks.
+ * <ol>
+ * <li>- ON_BUFFER_WRITE
+ * <li>- ON_BUFFER_FULL
+ * <li>- ON_RECEIVED
+ * <li>- ON_RECEIVER_FULL
+ * <li>- ON_SENDER_EMPTY
+ * <li>- ON_SENDER_TIMEOUT
+ * <li>- ON_SENDER_ERROR</ol>}
+ *
+ * @param info
+ * {@.ja 接続情報}
+ * {@.en Connector information}
+ * @param listeners
+ * {@.ja リスナオブジェクト}
+ * {@.en Listener objects}
*/
public void setListener(ConnectorBase.ConnectorInfo info,
ConnectorListeners listeners) {
- rtcout.println(rtcout.TRACE, "OutPutCorbaCdrConsumer.setListener()");
+ rtcout.println(Logbuf.TRACE, "OutPutCorbaCdrConsumer.setListener()");
m_listeners = listeners;
m_profile = info;
}
@@ -91,30 +142,38 @@
/**
*
- * <p> Read data </p>
+ * {@.ja データを読み出す}
+ * {@.en Reads data}
+ * <p>
+ * {@.ja 設定されたデータを読み出す。}
+ * {@.en Reads data set}
+ *
+ * @param data
+ * {@.ja 読み出したデータを受け取るオブジェクト}
+ * {@.en Object to receive the read data}
*
- * @param data Object to receive the read data
+ * @return
+ * {@.ja データ読み出し処理結果(読み出し成功:true、読み出し失敗:false)}
+ * {@.en Read result (Successful:true, Failed:false)}
*
- * @return Read result (Successful:true, Failed:false)
- *
*/
public ReturnCode get(OutputStream data) {
- rtcout.println(rtcout.TRACE, "OutPutCorbaCdrConsumer.get()");
+ rtcout.println(Logbuf.TRACE, "OutPutCorbaCdrConsumer.get()");
OpenRTM.CdrDataHolder cdr_data = new OpenRTM.CdrDataHolder();
try {
OpenRTM.PortStatus ret = _ptr().get(cdr_data);
if (ret == OpenRTM.PortStatus.PORT_OK) {
- rtcout.println(rtcout.DEBUG, "get() successful");
+ rtcout.println(Logbuf.DEBUG, "get() successful");
data.write_octet_array(cdr_data.value, 0,
cdr_data.value.length);
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"CDR data length: "+cdr_data.value.length);
onReceived(data);
onBufferWrite(data);
if (m_buffer.full()) {
- rtcout.println(rtcout.INFO,
+ rtcout.println(Logbuf.INFO,
"InPort buffer is full.");
onBufferFull(data);
onReceiverFull(data);
@@ -129,7 +188,7 @@
return convertReturn(ret);
}
catch (Exception e) {
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caought from OutPort.get().");
return ReturnCode.CONNECTION_LOST;
}
@@ -137,32 +196,39 @@
/**
*
- * <p> Subscribe the data receive notification </p>
+ * {@.ja データ受信通知への登録}
+ * {@.en Subscribe the data receive notification}
+ * <p>
+ * {@.ja 指定されたプロパティに基づいて、データ受信通知の受け取りに
+ * 登録する。}
+ * {@.en Subscribe the data receive notification based on specified
+ * property information}
*
- * <p> Subscribe the data receive notification based on specified property </p>
- * <p> information </p>
+ * @param properties
+ * {@.ja 登録情報}
+ * {@.en Subscription information}
*
- * @param properties Subscription information
+ * @return
+ * {@.ja 登録処理結果(登録成功:true、登録失敗:false)}
+ * {@.en Subscription result (Successful:true, Failed:false)}
*
- * @return Subscription result (Successful:true, Failed:false)
- *
*/
public boolean subscribeInterface(final NVListHolder properties) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"OutPortCorbaCdrConsumer.subscribeInterface()");
int index;
index = NVUtil.find_index(properties,
"dataport.corba_cdr.outport_ior");
if (index < 0) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataport.corba_cdr.outport_ior not found.");
return false;
}
if (NVUtil.isString(properties,
"dataport.corba_cdr.outport_ior")) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataport.corba_cdr.outport_ior found.");
final String ior;
try {
@@ -174,24 +240,24 @@
}
}
catch(BAD_OPERATION e) {
- rtcout.println(rtcout.ERROR, "outport_ior has no string");
+ rtcout.println(Logbuf.ERROR, "outport_ior has no string");
return false;
}
ORB orb = Manager.instance().getORB();
Object var = orb.string_to_object(ior);
if (var==null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid IOR string has been passed");
return false;
}
if (!super.setObject(var)) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Invalid object reference.");
return false;
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"CorbaConsumer was set successfully.");
return true;
}
@@ -200,21 +266,25 @@
}
/**
- * <p> Unsubscribe the data receive notification </p>
+ * {@.ja データ受信通知からの登録解除}
+ * {@.en Unsubscribe the data receive notification}
+ * <p>
+ * {@.ja データ受信通知の受け取りから登録を解除する。}
+ * {@.en Unsubscribe the data receive notification.}
*
- * <p> Unsubscribe the data receive notification. </p>
+ * @param properties
+ * {@.ja 登録解除情報}
+ * {@.en Unsubscription information}
*
- * @param properties Unsubscription information
- *
*/
public void unsubscribeInterface(final NVListHolder properties) {
- rtcout.println(rtcout.TRACE,
+ rtcout.println(Logbuf.TRACE,
"OutPortCorbaCdrConsumer.unsubscribeInterface()");
int index;
index = NVUtil.find_index(properties,
"dataport.corba_cdr.outport_ior");
if (index < 0) {
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataport.corba_cdr.outport_ior not found.");
return;
}
@@ -229,26 +299,32 @@
}
}
catch(BAD_OPERATION e) {
- rtcout.println(rtcout.ERROR, "inport_ior has no string");
+ rtcout.println(Logbuf.ERROR, "inport_ior has no string");
return;
}
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"dataport.corba_cdr.outport_ior found.");
ORB orb = Manager.instance().getORB();
Object var = orb.string_to_object(ior);
if (_ptr()._is_equivalent(var)) {
releaseObject();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"CorbaConsumer's reference was released.");
return;
}
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"hmm. Inconsistent object reference.");
}
/**
* {@.ja リターンコード変換 (DataPortStatus -> BufferStatus)}
* {@.en Return codes conversion}
+ * @param status
+ * {@.ja PortStatus}
+ * {@.en PortStatus}
+ * @return
+ * {@.ja ReturnCode}
+ * {@.en ReturnCode}
*/
protected ReturnCode convertReturn(OpenRTM.PortStatus status) {
switch (status.value()) {
@@ -282,18 +358,25 @@
}
}
/**
- * <p> creator_ </p>
+ * {@.ja OutPortCorbaCdrConsumer を生成する}
+ * {@.en Creats OutPortCorbaCdrConsumer}
*
- * @return Object Created instances
+ * @return
+ * {@.ja 生成されたOutPortConsumer}
+ * {@.en Object Created instances}
*
+ *
*/
public OutPortConsumer creator_() {
return new OutPortCorbaCdrConsumer();
}
/**
- * <p> destructor_ </p>
+ * {@.ja Object を破棄する}
+ * {@.en Destructs Object}
*
- * @param obj The target instances for destruction
+ * @param obj
+ * {@.ja 破棄するインタスタンス}
+ * {@.en The target instances for destruction}
*
*/
public void destructor_(java.lang.Object obj) {
@@ -303,6 +386,14 @@
* <p> OutPortCorbaCdrConsumerInit </p>
*
*/
+ /**
+ * {@.ja モジュール初期化関数}
+ * {@.en Module initialization}
+ * <p>
+ * {@.ja OutPortCorbaCdrConsumer のファクトリを登録する初期化関数。}
+ * {@.en This initialization function registers OutPortCorbaCdrConsumer's
+ * factory.}
+ */
public static void OutPortCorbaCdrConsumerInit() {
final OutPortConsumerFactory<OutPortConsumer,String> factory
= OutPortConsumerFactory.instance();
@@ -313,8 +404,12 @@
}
/**
- * <p> setConnecotor </p>
- * @param connector
+ * {@.ja Connectorを設定する。}
+ * {@.en set Connector}
+ *
+ * @param connector
+ * {@.ja InPortConnector}
+ * {@.en InPortConnector}
*/
public void setConnector(InPortConnector connector) {
m_connector = connector;
@@ -323,10 +418,24 @@
/**
* <p> Connector data listener functions </p>
*/
+ /**
+ * {@.ja ON_BUFFER_WRITE のリスナへ通知する。}
+ * {@.en Notify an ON_BUFFER_WRITE event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onBufferWrite(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_BUFFER_WRITE].notify(m_profile, data);
}
+ /**
+ * {@.ja ON_BUFFER_FULL のリスナへ通知する。}
+ * {@.en Notify an ON_BUFFER_FULL event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onBufferFull(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_BUFFER_FULL].notify(m_profile, data);
}
@@ -347,10 +456,24 @@
// m_listeners.connectorData_[ConnectorDataListenerType.ON_SEND].notify(m_profile, data);
// }
+ /**
+ * {@.ja ON_RECEIVED のリスナへ通知する。}
+ * {@.en Notify an ON_RECEIVED event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onReceived(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_RECEIVED].notify(m_profile, data);
}
+ /**
+ * {@.ja ON_RECEIVER_FULL のリスナへ通知する。}
+ * {@.en Notify an ON_RECEIVER_FULL event to listeners}
+ * @param data
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
private void onReceiverFull(final OutputStream data) {
m_listeners.connectorData_[ConnectorDataListenerType.ON_RECEIVER_FULL].notify(m_profile, data);
}
@@ -374,14 +497,26 @@
// m_listeners.connector_[ConnectorDataListenerType.ON_BUFFER_READ_TIMEOUT].notify(m_profile);
// }
+ /**
+ * {@.ja ON_SENDER_EMPTYのリスナへ通知する。}
+ * {@.en Notify an ON_SENDER_EMPTY event to listeners}
+ */
private void onSenderEmpty() {
m_listeners.connector_[ConnectorListenerType.ON_SENDER_EMPTY].notify(m_profile);
}
+ /**
+ * {@.ja ON_SENDER_TIMEOUT のリスナへ通知する。}
+ * {@.en Notify an ON_SENDER_TIMEOUT event to listeners}
+ */
private void onSenderTimeout() {
m_listeners.connector_[ConnectorListenerType.ON_SENDER_TIMEOUT].notify(m_profile);
}
+ /**
+ * {@.ja ON_SENDER_ERRORのリスナへ通知する。}
+ * {@.en Notify an ON_SENDER_ERROR event to listeners}
+ */
private void onSenderError() {
m_listeners.connector_[ConnectorListenerType.ON_SENDER_ERROR].notify(m_profile);
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortCorbaCdrProvider.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortCorbaCdrProvider.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortCorbaCdrProvider.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,50 +1,45 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.ORB;
-import org.omg.CORBA.Any;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
-import java.io.IOException;
-import java.io.ByteArrayOutputStream;
-
-import _SDOPackage.NVListHolder;
-import OpenRTM.CdrDataHelper;
-import OpenRTM.CdrDataHolder;
-import OpenRTM.OutPortCdrPOA;
-import OpenRTM.OutPortCdrOperations;
-import OpenRTM.PortStatus;
-
-import jp.go.aist.rtm.RTC.OutPortProviderFactory;
import jp.go.aist.rtm.RTC.ObjectCreator;
import jp.go.aist.rtm.RTC.ObjectDestructor;
+import jp.go.aist.rtm.RTC.OutPortProviderFactory;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.buffer.ReturnCode;
-import jp.go.aist.rtm.RTC.util.Properties;
+import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.DataRef;
+import jp.go.aist.rtm.RTC.util.NVListHolderFactory;
import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.ORBUtil;
import jp.go.aist.rtm.RTC.util.POAUtil;
-import jp.go.aist.rtm.RTC.util.ORBUtil;
-import jp.go.aist.rtm.RTC.util.DataRef;
-import jp.go.aist.rtm.RTC.util.NVListHolderFactory;
-import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.Properties;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.portable.OutputStream;
+
+import OpenRTM.OutPortCdrPOA;
+import _SDOPackage.NVListHolder;
+
import com.sun.corba.se.impl.encoding.EncapsOutputStream;
/**
- * <p> OutPortCorbaCdrProvider </p>
- * <p> OutPortCorbaCdrProvider class </p>
+ * {@.ja OutPortCorbaCdrProvider クラス}
+ * {@.en OutPortCorbaCdrProvider class}
+ * <p>
+ * {@.ja データ転送に CORBA の OpenRTM::OutPortCdr インターフェースを利用し
+ * た、pull 型データフロー型を実現する OutPort プロバイダクラス。}
+ * {@.en This is an implementation class of OutPort Provider that uses
+ * CORBA for mean of communication.}
*
- * <p> This is an implementation class of OutPort Provider that uses </p>
- * <p> CORBA for mean of communication. </p>
+ * @param DataType
+ * {@.ja プロバイダに割り当てられたバッファによって確保されたDataType}
+ * {@.en Data type held by the buffer that is assigned to this
+ * provider}
*
- * @param DataType Data type held by the buffer that is assigned to this
- * provider
- *
*/
public class OutPortCorbaCdrProvider extends OutPortCdrPOA implements OutPortProvider, ObjectCreator<OutPortProvider>, ObjectDestructor {
/**
- * <p> Constructor </p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
*/
public OutPortCorbaCdrProvider() {
@@ -68,7 +63,13 @@
m_objref, OpenRTM.OutPortCdr.class ));
}
/**
+ * {@.ja 当該OpenRTM.OutPortCdrのCORBAオブジェクト参照を取得する。}
+ * {@.en Gets CORBA object referense of this OpenRTM.OutPortCdr}
*
+ * @return
+ * {@.ja 当該PortのCORBAオブジェクト参照}
+ * {@.en CORBA object referense of this OpenRTM.OutPortCdr}
+ *
*/
public OpenRTM.OutPortCdr _this() {
@@ -87,31 +88,47 @@
/**
*
- * <p> Initializing configuration </p>
+ * {@.ja 設定初期化}
+ * {@.en Initializing configuration}
+ * <p>
+ * {@.ja OutPortCorbaCdrProvider の各種設定を行う。与えられた
+ * Propertiesから必要な情報を取得して各種設定を行う。この init() 関
+ * 数は、OutPortProvider生成直後および、接続時にそれぞれ呼ばれる可
+ * 能性がある。したがって、この関数は複数回呼ばれることを想定して記
+ * 述されるべきである。}
+ * {@.en This operation would be called to configure in initialization.
+ * In the concrete class, configuration should be performed
+ * getting appropriate information from the given Properties data.
+ * This function might be called right after instantiation and
+ * connection sequence respectivly. Therefore, this function
+ * should be implemented assuming multiple call.}
*
- * <p> This operation would be called to configure in initialization. </p>
- * <p> In the concrete class, configuration should be performed </p>
- * <p> getting appropriate information from the given Properties data. </p>
- * <p> This function might be called right after instantiation and </p>
- * <p> connection sequence respectivly. Therefore, this function </p>
- * <p> should be implemented assuming multiple call. </p>
+ * @param prop
+ * {@.ja 設定情報}
+ * {@.en Configuration information}
*
- * @param prop Configuration information
- *
*/
public void init(Properties prop) {
}
/**
- * <p> Setting outside buffer's pointer </p>
- *
- * <p> A pointer to a buffer from which OutPortProvider retrieve data. </p>
- * <p> If already buffer is set, previous buffer's pointer will be </p>
- * <p> overwritten by the given pointer to a buffer. Since </p>
- * <p> OutPortProvider does not assume ownership of the buffer </p>
- * <p> pointer, destructor of the buffer should be done by user. </p>
+ * {@.ja バッファをセットする}
+ * {@.en Setting outside buffer's pointer}
+ * <p>
+ * {@.ja OutPortProvider がデータを取り出すバッファをセットする。
+ * すでにセットされたバッファがある場合、以前のバッファへの
+ * ポインタに対して上書きされる。
+ * OutPortProviderはバッファの所有権を仮定していないので、
+ * バッファの削除はユーザの責任で行わなければならない。}
+ * {@.en A pointer to a buffer from which OutPortProvider retrieve data.
+ * If already buffer is set, previous buffer's pointer will be
+ * overwritten by the given pointer to a buffer. Since
+ * OutPortProvider does not assume ownership of the buffer
+ * pointer, destructor of the buffer should be done by user.}
*
- * @param buffer A pointer to a data buffer to be used by OutPortProvider
+ * @param buffer
+ * {@.ja OutPortProviderがデータを取り出すバッファへのポインタ}
+ * {@.en A pointer to a data buffer to be used by OutPortProvider}
*
*/
public void setBuffer(BufferBase<OutputStream> buffer){
@@ -119,20 +136,28 @@
}
/**
- * <p> [CORBA interface] Get data from the buffer </p>
+ * {@.ja [CORBA interface] バッファからデータを取得する}
+ * {@.en [CORBA interface] Get data from the buffer}
*
- * <p> Get data from the internal buffer. </p>
+ * <p>
+ * {@.ja 設定された内部バッファからデータを取得する。}
+ * {@.en Get data from the internal buffer.}
*
* @param data
- * @return Data got from the buffer.
+ * {@.ja 取得データを格納するバッファ}
+ * {@.en The buffer to get data.}
*
+ * @return
+ * {@.ja ステータス}
+ * {@.en Prot status}
+ *
*/
public OpenRTM.PortStatus get(OpenRTM.CdrDataHolder data) {
- rtcout.println(rtcout.PARANOID, "OutPortCorbaCdrProvider.get()");
+ rtcout.println(Logbuf.PARANOID, "OutPortCorbaCdrProvider.get()");
if (m_buffer == null) {
onSenderError();
- rtcout.println(rtcout.PARANOID, "m_buffer is null.");
+ rtcout.println(Logbuf.PARANOID, "m_buffer is null.");
return OpenRTM.PortStatus.UNKNOWN_ERROR;
}
@@ -151,8 +176,15 @@
return convertReturn(ret);
}
/**
- * <p> convertReturn </p>
- *
+ * {@.ja ReturnCodeをPortStatusに変換する。}
+ * {@.en Converts ReturnCode into PortStatus.}
+ *
+ * @param status
+ * {@.ja ReturnCode}
+ * {@.en ReturnCode}
+ * @return
+ * {@.ja PortStatus}
+ * {@.en PortStatus}
*/
protected OpenRTM.PortStatus
convertReturn(jp.go.aist.rtm.RTC.buffer.ReturnCode status) {
@@ -173,18 +205,24 @@
/**
- * <p> creator_ </p>
+ * {@.ja OutPortCorbaCdrProvider を生成する}
+ * {@.en Creats OutPortCorbaCdrProvider}
*
- * @return Object Created instances
+ * @return
+ * {@.ja 生成されたOutPortProvider}
+ * {@.en Object Created instances}
*
*/
public OutPortProvider creator_() {
return new OutPortCorbaCdrProvider();
}
/**
- * <p> destructor_ </p>
+ * {@.ja OutPortCorbaCdrProvider を破棄する}
+ * {@.en Destructs OutPortCorbaCdrProvider}
*
- * @param obj The target instances for destruction
+ * @param obj
+ * {@.ja 破棄するインタスタンス}
+ * {@.en The target instances for destruction}
*
*/
public void destructor_(Object obj) {
@@ -198,7 +236,12 @@
obj = null;
}
/**
- * <p> OutPortCorbaCdrProviderInit </p>
+ * {@.ja モジュール初期化関数}
+ * {@.en Module initialization}
+ * <p>
+ * {@.ja OutPortCorbaCdrProvider のファクトリを登録する初期化関数。}
+ * {@.en This initialization function registers OutPortCorbaCdrProvider's
+ * factory.}
*
*/
public static void OutPortCorbaCdrProviderInit() {
@@ -212,9 +255,22 @@
}
/**
- * <p> publishInterfaceProfile </p>
+ * {@.ja InterfaceProfile情報を公開する}
+ * {@.en Publish InterfaceProfile information}
+ *
+ * <p>
+ * {@.ja InterfaceProfile情報を公開する。
+ * 引数で指定するプロパティ情報内の NameValue オブジェクトの
+ * dataport.interface_type 値を調べ、当該ポートに設定されている
+ * インターフェースタイプと一致する場合のみ情報を取得する。}
+ * {@.en Publish interfaceProfile information.
+ * Check the dataport.interface_type value of the NameValue object
+ * specified by an argument in property information and get information
+ * only when the interface type of the specified port is matched.}
*
* @param properties
+ * {@.ja InterfaceProfile情報を受け取るプロパティ}
+ * {@.en Properties to get InterfaceProfile information}
*
*/
public void publishInterfaceProfile(NVListHolder properties) {
@@ -229,10 +285,26 @@
this.m_subscriptionType);
}
/**
- * <p> publishInterface </p>
+ * {@.ja Interface情報を公開する}
+ * {@.en Publish interface information}
+ * <p>
+ * {@.ja Interface情報を公開する。引数で指定するプロパティ情報内の
+ * NameValue オブジェクトのdataport.interface_type 値を調べ、当該ポー
+ * トに設定されていなければNameValue に情報を追加する。すでに同一イ
+ * ンターフェースが登録済みの場合は何も行わない。}
+ * {@.en Publish interface information. Check the
+ * dataport.interface_type value of the NameValue object specified
+ * by an argument in the property information, and add the
+ * information to the NameValue if this port is not specified.
+ * This does not do anything if the same interface is already
+ * subscribed.}
*
* @param properties
- * @return boolean
+ * {@.ja Interface情報を受け取るプロパティ}
+ * {@.en Properties to receive interface information}
+ * @return
+ * {@.ja true: 正常終了}
+ * {@.en true: normal return}
*/
public boolean publishInterface(NVListHolder properties) {
@@ -246,16 +318,33 @@
return true;
}
/**
- * <p> setConnecotor </p>
- * @param connector
+ * {@.ja Connectorを設定する。}
+ * {@.en set Connector}
+ * <p>
+ * {@.ja OutPort は接続確立時に OutPortConnector オブジェクトを生成し、生
+ * 成したオブジェクトのポインタと共にこの関数を呼び出す。所有権は
+ * OutPort が保持するので OutPortProvider は OutPortConnector を削
+ * 除してはいけない。}
+ * {@.en OutPort creates OutPortConnector object when it establishes
+ * connection between OutPort and InPort, and it calls this
+ * function with a pointer to the connector object. Since the
+ * OutPort has the ownership of this connector, OutPortProvider
+ * should not delete it.}
+ *
+ * @param connector
+ * {@.ja OutPortConnector}
+ * {@.en OutPortConnector}
*/
public void setConnector(OutPortConnector connector) {
m_connector = connector;
}
/**
- * <p>インタフェースプロフィールのポートタイプを設定します。</p>
+ * {@.ja インタフェースプロフィールのポートタイプを設定する。}
+ * {@.en Sets PortProfile of the interface profile}
*
- * @param portType ポートタイプ
+ * @param portType
+ * {@.ja ポートタイプ}
+ * {@.en port type}
*/
protected void setPortType(final String portType) {
@@ -263,9 +352,12 @@
}
/**
- * <p>インタフェースポロフィールのデータタイプを設定します。</p>
+ * {@.ja インタフェースプロフィールのデータタイプを設定する。}
+ * {@.en Sets DataType of the interface profile}
*
- * @param dataType データタイプ
+ * @param dataType
+ * {@.ja データタイプ}
+ * {@.en dataType}
*/
protected void setDataType(final String dataType) {
@@ -273,9 +365,12 @@
}
/**
- * <p>インタフェースプロフィールのインタフェースタイプを設定します。<//p>
+ * {@.ja インタフェースプロフィールのインタフェースタイプを設定する。}
+ * {@.en Sets interface Type of the interface profile}
*
- * @param interfaceType インタフェースタイプ
+ * @param interfaceType
+ * {@.ja インタフェースタイプ}
+ * {@.en Intereface Type}
*/
protected void setInterfaceType(final String interfaceType) {
@@ -283,9 +378,12 @@
}
/**
- * <p>インタフェースプロフィールのデータフロータイプを設定します。</p>
+ * {@.ja インタフェースプロフィールのデータフロータイプを設定する。}
+ * {@.en Sets data flow type of the interface profile}
*
- * @param dataFlowType データフロータイプ
+ * @param dataFlowType
+ * {@.ja データフロータイプ}
+ * {@.en Data flow type}
*/
protected void setDataFlowType(final String dataFlowType) {
@@ -293,16 +391,56 @@
}
/**
- * <p>インタフェースプロフィールのサブスクリプションタイプを設定します。</p>
+ * {@.ja インタフェースプロフィールのサブスクリプションタイプを設定する。}
+ * {@.en Sets subscription type of the interface profile}
*
- * @param subscriptionType サブスクリプションタイプ
+ * @param subscriptionType
+ * {@.ja サブスクリプションタイプ}
+ * {@.en Subscription type}
*/
protected void setSubscriptionType(final String subscriptionType) {
this.m_subscriptionType = subscriptionType;
}
/**
- * <p> Set the listener. </p>
+ * {@.ja リスナを設定する。}
+ * {@.en Set the listener.}
+ *
+ * <p>
+ * {@.ja OutPort はデータ送信処理における各種イベントに対して特定のリスナ
+ * オブジェクトをコールするコールバック機構を提供する。詳細は
+ * ConnectorListener.h の ConnectorDataListener, ConnectorListener
+ * 等を参照のこと。OutPortCorbaCdrProvider では、以下のコールバック
+ * が提供される。
+ * <ol>
+ * <li>- ON_BUFFER_READ
+ * <li>- ON_SEND
+ * <li>- ON_BUFFER_EMPTY
+ * <li>- ON_BUFFER_READ_TIMEOUT
+ * <li>- ON_SENDER_EMPTY
+ * <li>- ON_SENDER_TIMEOUT
+ * <li>- ON_SENDER_ERROR </ol>}
+ * {@.en OutPort provides callback functionality that calls specific
+ * listener objects according to the events in the data publishing
+ * process. For details, see documentation of
+ * ConnectorDataListener class and ConnectorListener class in
+ * ConnectorListener.h. In this OutPortCorbaCdrProvider provides
+ * the following callbacks.
+ * <ol>
+ * <li>- ON_BUFFER_READ
+ * <li>- ON_SEND
+ * <li>- ON_BUFFER_EMPTY
+ * <li>- ON_BUFFER_READ_TIMEOUT
+ * <li>- ON_SENDER_EMPTY
+ * <li>- ON_SENDER_TIMEOUT
+ * <li>- ON_SENDER_ERROR </ol>}
+ *
+ * @param info
+ * {@.ja 接続情報}
+ * {@.en @param info Connector information}
+ * @param listeners
+ * {@.ja リスナオブジェクト}
+ * {@.en Listener objects}
*/
public void setListener(ConnectorBase.ConnectorInfo info,
ConnectorListeners listeners) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortProvider.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortProvider.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortProvider.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,12 +1,12 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.portable.InputStream;
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import jp.go.aist.rtm.RTC.util.Properties;
+
import org.omg.CORBA.portable.OutputStream;
import _SDOPackage.NVListHolder;
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.util.Properties;
/**
* <p>OutPortに対して何を提供しているかを宣言するインタフェースです。</p>
*/
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortPullConnector.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortPullConnector.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortPullConnector.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,27 +1,92 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.portable.InputStream;
+import jp.go.aist.rtm.RTC.BufferFactory;
+import jp.go.aist.rtm.RTC.OutPortProviderFactory;
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.ORBUtil;
+
import org.omg.CORBA.portable.OutputStream;
import com.sun.corba.se.impl.encoding.EncapsOutputStream;
-import jp.go.aist.rtm.RTC.BufferFactory;
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.util.ORBUtil;
-import jp.go.aist.rtm.RTC.OutPortProviderFactory;
-
+ /**
+ * {@.ja OutPortPullConnector クラス}
+ * {@.en OutPortPullConnector class}
+ * <p>
+ * {@.ja OutPort の pull 型データフローのための Connector クラス。このオブ
+ * ジェクトは、接続時に dataflow_type に pull が指定された場合、
+ * OutPort によって生成・所有され、InPortPullConnector と対になって、
+ * データポートの pull 型のデータフローを実現する。一つの接続に対して、
+ * 一つのデータストリームを提供する唯一の Connector が対応する。
+ * Connector は 接続時に生成される UUID 形式の ID により区別される。
+ *
+ * OutPortPullConnector は以下の三つのオブジェクトを所有し管理する。
+ * <ul>
+ * <li>- InPortConsumer
+ * <li>- Buffer
+ * </ul>
+ * OutPort に書き込まれたデータは OutPortPullConnector::write() に渡
+ * され Buffer に書き込まれる。InPortPullConnector が
+ * OutPortPullConnector からデータを読み出すことで InPort にデータが
+ * 転送される。}
+ * {@.en Connector class of OutPort for pull type dataflow. When "pull" is
+ * specified as dataflow_type at the time of establishing
+ * connection, this object is generated and owned by the OutPort.
+ * This connector and InPortPullConnector make a pair and realize
+ * pull type dataflow of data ports. One connector corresponds to
+ * one connection which provides a data stream. Connector is
+ * distinguished by ID of the UUID that is generated at establishing
+ * connection.
+ *
+ * OutPortPullConnector owns and manages the following objects.
+ * <ul>
+ * <li>- InPortConsumer
+ * <li>- Buffer
+ * </ul>
+ * Data written into the OutPort is passed to
+ * OutPortPullConnector::write(), and it is written into the buffer.
+ * By reading data from OutPortPullConnector to InPortPullConnector,
+ * data transfer is realized.}
+ */
public class OutPortPullConnector extends OutPortConnector {
/**
- * <p> Constructor </p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * <p> OutPortPullConnector assume ownership of InPortConsumer.
- * <p> Therefore, OutPortProvider will be deleted when OutPortPushConnector
- * <p> is destructed.
+ * <p>
+ * {@.ja OutPortPullConnector のコンストラクタはオブジェクト生成時に下記
+ * を引数にとる。ConnectorInfo は接続情報を含み、この情報に従いバッ
+ * ファ等を生成する。OutPort インターフェースのプロバイダオブジェク
+ * トへのポインタを取り、所有権を持つので、OutPortPullConnector は
+ * OutPortProvider の解体責任を持つ。各種イベントに対するコールバッ
+ * ク機構を提供する ConnectorListeners を持ち、適切なタイミングでコー
+ * ルバックを呼び出す。データバッファがもし OutPortBase から提供さ
+ * れる場合はそのポインタを取る。}
+ * {@.en OutPortPullConnector's constructor is given the following
+ * arguments. According to ConnectorInfo which includes
+ * connection information, a buffer is created. It is also given
+ * a pointer to the provider object for the OutPort interface.
+ * The owner-ship of the pointer is owned by this
+ * OutPortPullConnector, it has responsibility to destruct the
+ * OutPortProvider. OutPortPullConnector also has
+ * ConnectorListeners to provide event callback mechanisms, and
+ * they would be called at the proper timing. If data buffer is
+ * given by OutPortBase, the pointer to the buffer is also given
+ * as arguments.}
*
- * @param profile pointer to a ConnectorProfile
- * @param provider pointer to an OutPortProvider
- * @param buffer pointer to a buffer
- *
+ * @param profile
+ * {@.ja ConnectorInfo}
+ * {@.en ConnectorInfo}
+ * @param provider
+ * {@.ja OutPortProvider}
+ * {@.en OutPortProvider}
+ * @param listeners
+ * {@.ja ConnectorListeners 型のリスナオブジェクトリスト}
+ * {@.en ConnectorListeners type lsitener object list}
+ * @param buffer
+ * {@.ja CdrBufferBase 型のバッファ}
+ * {@.en CdrBufferBase type buffer}
*/
public OutPortPullConnector(ConnectorInfo profile,
OutPortProvider provider,
@@ -30,6 +95,38 @@
super(profile);
_constructor(profile, provider, listeners, buffer);
}
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * <p>
+ * {@.ja OutPortPullConnector のコンストラクタはオブジェクト生成時に下記
+ * を引数にとる。ConnectorInfo は接続情報を含み、この情報に従いバッ
+ * ファ等を生成する。OutPort インターフェースのプロバイダオブジェク
+ * トへのポインタを取り、所有権を持つので、OutPortPullConnector は
+ * OutPortProvider の解体責任を持つ。各種イベントに対するコールバッ
+ * ク機構を提供する ConnectorListeners を持ち、適切なタイミングでコー
+ * ルバックを呼び出す。}
+ * {@.en OutPortPullConnector's constructor is given the following
+ * arguments. According to ConnectorInfo which includes
+ * connection information, a buffer is created. It is also given
+ * a pointer to the provider object for the OutPort interface.
+ * The owner-ship of the pointer is owned by this
+ * OutPortPullConnector, it has responsibility to destruct the
+ * OutPortProvider. OutPortPullConnector also has
+ * ConnectorListeners to provide event callback mechanisms, and
+ * they would be called at the proper timing.}
+ *
+ * @param profile
+ * {@.ja ConnectorInfo}
+ * {@.en ConnectorInfo}
+ * @param provider
+ * {@.ja OutPortProvider}
+ * {@.en OutPortProvider}
+ * @param listeners
+ * {@.ja ConnectorListeners 型のリスナオブジェクトリスト}
+ * {@.en ConnectorListeners type lsitener object list}
+ */
public OutPortPullConnector(ConnectorInfo profile,
OutPortProvider provider,
ConnectorListeners listeners) throws Exception {
@@ -69,16 +166,17 @@
}
/**
- * <p> Writing data </p>
- * <p> This operation writes data into publisher and then the data </p>
- * <p> will be transferred to correspondent InPort. </p>
+ * {@.ja データの書き込み}
+ * {@.en Writing data}
+ * <p>
+ * {@.ja Publisherに対してデータを書き込み、これにより対応するInPortへ
+ * データが転送される。}
+ * {@.en This operation writes data into publisher and then the data
+ * will be transferred to correspondent InPort.}
*
- * @param data
- * @return ReturnCode
- *
*/
public <DataType> ReturnCode write(final DataType data) {
- rtcout.println(rtcout.TRACE, "write()");
+ rtcout.println(Logbuf.TRACE, "write()");
OutPort out = (OutPort)m_outport;
OutputStream cdr
= new EncapsOutputStream(m_spi_orb,m_isLittleEndian);
@@ -118,16 +216,28 @@
}
/**
- * <p> Getting Buffer </p>
- * <p> This operation returns this connector's buffer </p>
- *
+ * {@.ja Buffer を取得する}
+ * {@.en Getting Buffer}
+ * <p>
+ * {@.ja Connector が保持している Buffer を返す}
+ * {@.en This operation returns this connector's buffer}
+ * @return
+ * {@.ja Buffer を返す}
+ * {@.en This connector's buffer}
*/
public BufferBase<OutputStream> getBuffer() {
return m_buffer;
}
/**
- * <p> create buffer </p>
+ * {@.ja Bufferの生成}
+ * {@.en create buffer}
+ * @param profile
+ * {@.ja バッファ種類を指定}
+ * {@.en specify the buffer kind}
+ * @return
+ * {@.ja 生成されたバッファ}
+ * {@.en Buffer created}
*/
protected BufferBase<OutputStream> createBuffer(ConnectorInfo profile) {
String buf_type;
@@ -139,7 +249,8 @@
}
/**
- * <p> Invoke callback when connection is established </p>
+ * {@.ja 接続確立時にコールバックを呼ぶ}
+ * {@.en Invoke callback when connection is established}
*/
protected void onConnect() {
m_listeners.connector_[ConnectorListenerType.ON_CONNECT].notify(m_profile);
@@ -154,22 +265,33 @@
m_profile);
}
/**
- * <p> Connector activation </p>
- * <p> This operation activates this connector </p>
- *
+ * {@.ja アクティブ化}
+ * {@.en Connector activation}
+ * <p>
+ * {@.ja このコネクタをアクティブ化する}
+ * {@.en This operation activates this connector}
*/
public void activate(){
} // do nothing
/**
- * <p> Connector deactivation </p>
- * <p> This operation deactivates this connector </p>
- *
+ * {@.ja 非アクティブ化}
+ * {@.en Connector deactivation}
+ * <p>
+ * {@.ja このコネクタを非アクティブ化する}
+ * {@.en This operation deactivates this connector}
*/
public void deactivate(){
} // do nothing
/**
+ * {@.ja OutPortBaseを格納する。}
+ * {@.en Stores OutPortBase.}
+ *
+ * @param outportbase
+ * {@.ja OutPortBase}
+ * {@.en OutPortBase}
+ *
*/
public void setOutPortBase(OutPortBase outportbase) {
m_outport = outportbase;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortPushConnector.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortPushConnector.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/OutPortPushConnector.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,26 +1,21 @@
package jp.go.aist.rtm.RTC.port;
-import org.omg.CORBA.portable.Streamable;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
-import java.io.IOException;
import java.lang.reflect.Field;
-import com.sun.corba.se.impl.encoding.EncapsOutputStream;
-
+import jp.go.aist.rtm.RTC.BufferFactory;
+import jp.go.aist.rtm.RTC.InPortConsumerFactory;
import jp.go.aist.rtm.RTC.PublisherBaseFactory;
-import jp.go.aist.rtm.RTC.InPortConsumerFactory;
-import jp.go.aist.rtm.RTC.BufferFactory;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.buffer.RingBuffer;
import jp.go.aist.rtm.RTC.log.Logbuf;
import jp.go.aist.rtm.RTC.port.publisher.PublisherBase;
-import jp.go.aist.rtm.RTC.port.publisher.PublisherFactory;
-import jp.go.aist.rtm.RTC.util.Properties;
+import jp.go.aist.rtm.RTC.util.ORBUtil;
import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.util.ORBUtil;
+import org.omg.CORBA.portable.OutputStream;
+import org.omg.CORBA.portable.Streamable;
+
+import com.sun.corba.se.impl.encoding.EncapsOutputStream;
+
public class OutPortPushConnector extends OutPortConnector {
/**
* {@.ja コンストラクタ}
@@ -74,6 +69,39 @@
}
}
+ /**
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * <p>
+ * {@.ja OutPortPushConnector のコンストラクタはオブジェクト生成時に下記
+ * を引数にとる。ConnectorInfo は接続情報を含み、この情報に従いパブ
+ * リッシャやバッファ等を生成する。InPort インターフェースに対する
+ * コンシューマオブジェクトへのポインタを取り、所有権を持つので、
+ * OutPortPushConnector は InPortConsumer の解体責任を持つ。各種イ
+ * ベントに対するコールバック機構を提供する ConnectorListeners を持
+ * ち、適切なタイミングでコールバックを呼び出す。}
+ * {@.en OutPortPushConnector's constructor is given the following
+ * arguments. According to ConnectorInfo which includes
+ * connection information, a publisher and a buffer are created.
+ * It is also given a pointer to the consumer object for the
+ * InPort interface. The owner-ship of the pointer is owned by
+ * this OutPortPushConnector, it has responsibility to destruct
+ * the InPortConsumer. OutPortPushConnector also has
+ * ConnectorListeners to provide event callback mechanisms, and
+ * they would be called at the proper timing. }
+ * </p>
+ *
+ * @param profile
+ * {@.ja ConnectorInfo}
+ * {@.en ConnectorInfo}
+ * @param consumer
+ * {@.ja InPortConsumer}
+ * {@.en InPortConsumer}
+ * @param listeners
+ * {@.ja ConnectorListeners 型のリスナオブジェクトリスト}
+ * {@.en ConnectorListeners type lsitener object list}
+ */
public OutPortPushConnector(ConnectorInfo profile,
ConnectorListeners listeners,
InPortConsumer consumer ) throws Exception {
@@ -103,13 +131,13 @@
}
if (m_publisher == null || m_buffer == null || m_consumer == null) {
if (m_publisher == null) {
- rtcout.println(rtcout.PARANOID, "m_publisher is null");
+ rtcout.println(Logbuf.PARANOID, "m_publisher is null");
}
if (m_buffer == null) {
- rtcout.println(rtcout.PARANOID, "m_buffer is null");
+ rtcout.println(Logbuf.PARANOID, "m_buffer is null");
}
if (m_consumer == null) {
- rtcout.println(rtcout.PARANOID, "m_consumer is null");
+ rtcout.println(Logbuf.PARANOID, "m_consumer is null");
}
throw new Exception("bad_alloc()");
}
@@ -131,17 +159,44 @@
}
/**
- * <p> Writing data </p>
+ * {@.ja データの書き込み}
+ * {@.en Writing data}
*
- * <p> This operation writes data into publisher and then the data
- * will be transferred to correspondent InPort. </p>
+ * <p>
+ * {@.ja Publisherに対してデータを書き込み、これにより対応するInPortへデー
+ * タが転送される。正常終了した場合 PORT_OK が返される。それ以外の
+ * 場合、エラー値として、CONNECTION_LOST, BUFFER_FULL,
+ * BUFFER_ERROR, PORT_ERROR, BUFFER_TIMEOUT, PRECONDITION_NO_MET が
+ * 返される。}
+ * {@.en This operation writes data into publisher and then the data
+ * will be transferred to correspondent InPort. If data is written
+ * properly, this function will return PORT_OK return code. Except
+ * normal return, CONNECTION_LOST, BUFFER_FULL, BUFFER_ERROR,
+ * PORT_ERROR, BUFFER_TIMEOUT and PRECONDITION_NO_MET will be
+ * returned as error codes.}
*
* @param data
+ * {@.ja データ}
+ * {@.en Data}
* @return ReturnCode
+ * {@.ja PORT_OK 正常終了
+ * CONNECTION_LOST 接続がロストした
+ * BUFFER_FULL バッファが一杯である
+ * BUFFER_ERROR バッファエラー
+ * BUFFER_TIMEOUT バッファへの書き込みがタイムアウトした
+ * PRECONDITION_NOT_MET 事前条件を満たさない
+ * PORT_ERROR その他のエラー}
+ * {@.en PORT_OK Normal return
+ * CONNECTION_LOST Connectin lost
+ * BUFFER_FULL Buffer full
+ * BUFFER_ERROR Buffer error
+ * BUFFER_TIMEOUT Timeout
+ * PRECONDITION_NOT_MET Precondition not met
+ * PORT_ERROR Other error}
*
*/
public <DataType> ReturnCode write(final DataType data) {
- rtcout.println(rtcout.TRACE, "write()");
+ rtcout.println(Logbuf.TRACE, "write()");
OutPort out = (OutPort)m_outport;
OutputStream cdr
= new EncapsOutputStream(m_spi_orb,m_isLittleEndian);
@@ -159,11 +214,11 @@
* and the buffer.}
*/
public ReturnCode disconnect() {
- rtcout.println(rtcout.TRACE, "disconnect()");
+ rtcout.println(Logbuf.TRACE, "disconnect()");
onDisconnect();
// delete publisher
if (m_publisher != null) {
- rtcout.println(rtcout.DEBUG, "delete publisher");
+ rtcout.println(Logbuf.DEBUG, "delete publisher");
PublisherBaseFactory<PublisherBase,String> pfactory
= PublisherBaseFactory.instance();
pfactory.deleteObject(m_publisher.getName(),m_publisher);
@@ -172,7 +227,7 @@
// delete consumer
if (m_consumer != null) {
- rtcout.println(rtcout.DEBUG, "delete consumer");
+ rtcout.println(Logbuf.DEBUG, "delete consumer");
InPortConsumerFactory<InPortConsumer,String> cfactory
= InPortConsumerFactory.instance();
cfactory.deleteObject(m_consumer);
@@ -181,36 +236,52 @@
// delete buffer
if (m_buffer != null) {
- rtcout.println(rtcout.DEBUG, "delete buffer");
+ rtcout.println(Logbuf.DEBUG, "delete buffer");
BufferFactory<BufferBase<OutputStream>,String> bfactory
= BufferFactory.instance();
bfactory.deleteObject(m_buffer);
}
m_buffer = null;
- rtcout.println(rtcout.TRACE, "disconnect() done");
+ rtcout.println(Logbuf.TRACE, "disconnect() done");
return ReturnCode.PORT_OK;
}
/**
*
- * <p> Connector activation </p>
+ * {@.ja アクティブ化}
+ * {@.en Connector activation}
*
- * <p> This operation activates this connector </p>
+ * <p>
+ * {@.ja このコネクタをアクティブ化する}
+ * {@.en This operation activates this connector}
*
*/
public void activate() {
m_publisher.activate();
}
/**
- * <p> Getting Buffer </p>
+ * {@.ja Buffer を取得する}
+ * {@.en Getting Buffer}
*
- * <p> This operation returns this connector's buffer </p>
+ * <p>
+ * {@.ja Connector が保持している Buffer を返す}
+ * {@.en This operation returns this connector's buffer}
*
+ * @return
+ * {@.ja Connector が保持している Buffer}
+ * {@.en Connector's buffer}
*/
public BufferBase<OutputStream> getBuffer() {
return m_buffer;
}
/**
+ * {@.ja OutPortBaseを格納する。}
+ * {@.en Stores OutPortBase.}
+ *
+ * @param outportbase
+ * {@.ja OutPortBase}
+ * {@.en OutPortBase}
+ *
*/
public void setOutPortBase(OutPortBase outportbase) {
m_outport = outportbase;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/PortAdmin.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/PortAdmin.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/PortAdmin.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -266,7 +266,7 @@
*/
public void registerPort(PortService port) {
if(!addPort(port)){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"registerPort(PortService_ptr) failed.");
}
}
@@ -370,7 +370,7 @@
public void deletePort(PortBase port) {
if (!removePort(port)) {
- rtcout.println(rtcout.ERROR, "deletePort(PortBase&) failed.");
+ rtcout.println(Logbuf.ERROR, "deletePort(PortBase&) failed.");
}
}
@@ -393,7 +393,7 @@
public void deletePort(PortService port) {
if (!removePort(port)) {
- rtcout.println(rtcout.ERROR, "deletePort(PortService) failed.");
+ rtcout.println(Logbuf.ERROR, "deletePort(PortService) failed.");
}
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/PortBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/PortBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/PortBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,39 +1,37 @@
package jp.go.aist.rtm.RTC.port;
+import java.util.Iterator;
import java.util.UUID;
-import java.util.Iterator;
import java.util.Vector;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
+import jp.go.aist.rtm.RTC.util.ConnectorProfileFactory;
+import jp.go.aist.rtm.RTC.util.NVUtil;
+import jp.go.aist.rtm.RTC.util.POAUtil;
+import jp.go.aist.rtm.RTC.util.PortProfileFactory;
+import jp.go.aist.rtm.RTC.util.equalFunctor;
+import jp.go.aist.rtm.RTC.util.operatorFunc;
+
import org.omg.CORBA.SystemException;
-import _SDOPackage.NVListHolder;
-import _SDOPackage.NameValue;
-
import RTC.ConnectorProfile;
import RTC.ConnectorProfileHolder;
import RTC.ConnectorProfileListHolder;
-import RTC.PortService;
-import RTC.PortServiceHelper;
import RTC.PortInterfacePolarity;
import RTC.PortInterfaceProfile;
import RTC.PortInterfaceProfileListHolder;
+import RTC.PortProfile;
+import RTC.PortService;
+import RTC.PortServiceHelper;
import RTC.PortServiceListHolder;
import RTC.PortServicePOA;
-import RTC.PortProfile;
import RTC.RTObject;
import RTC.ReturnCode_t;
+import _SDOPackage.NVListHolder;
+import _SDOPackage.NameValue;
-import jp.go.aist.rtm.RTC.util.CORBA_SeqUtil;
-import jp.go.aist.rtm.RTC.util.ConnectorProfileFactory;
-import jp.go.aist.rtm.RTC.util.NVUtil;
-import jp.go.aist.rtm.RTC.util.POAUtil;
-import jp.go.aist.rtm.RTC.util.PortProfileFactory;
-import jp.go.aist.rtm.RTC.util.equalFunctor;
-import jp.go.aist.rtm.RTC.util.operatorFunc;
-import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.log.Logbuf;
-
/**
* {@.ja Port の基底クラス}
* {@.en Port base class}
@@ -160,9 +158,12 @@
}
/**
- * <p>当該PortのCORBAオブジェクト参照を取得します。</p>
+ * {@.ja 当該PortのCORBAオブジェクト参照を取得する。}
+ * {@.en Gets CORBA object referense of this PortService}
*
- * @return 当該PortのCORBAオブジェクト参照
+ * @return
+ * {@.ja 当該PortのCORBAオブジェクト参照}
+ * {@.en CORBA object referense of this OpenRTM.OutPortCdr}
*/
public PortService _this() {
if (this.m_objref == null) {
@@ -178,28 +179,63 @@
}
/**
- * <p>デフォルトコンストラクタです。ポート名には空文字列が割り当てられます。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
+ * <p>
+ * {@.ja ポート名には空文字列が割り当てらる。}
+ * {@.en Empty string is assigned port name.}
*/
public PortBase() {
this("");
}
/**
- * <p>PortProfileを取得します。なお、PortProfileは次のメンバを持っています。
+ * {@.ja [CORBA interface] PortProfileを取得する}
+ * {@.en [CORBA interface] Get the PortProfile of the Port}
+ * <p>
+ * {@.ja Portが保持するPortProfileを返す。この関数は CORBA オペレーション
+ * であり、CORBA のメモリ管理規則に従い、呼び出し側は返される
+ * PortProfile オブジェクトを解体する責任がある。PortProfile 構造体
+ * は以下のメンバーを持つ。
* <ul>
- * <li>name [String型] Port名</li>
- * <li>interfaces [PortInterfaceProfile配列型] Port が保持するPortInterfaceProfileのシーケンス</li>
- * <li>port_ref [Port型] Port自身のCORBAオブジェクト参照</li>
- * <li>connector_profile [ConnectorProfile配列型] Portが現在保持するConnectorProfileのシーケンス</li>
- * <li>owner [RTObject型] このPortを所有するRTObjectのCORBAオブジェクト参照</li>
- * <li>properties [NameValue配列型] その他のプロパティ</li>
+ * <li>- name [string 型] Port の名前。
+ * <li>- interfaces [PortInterfaceProfileList 型] Port が保持する
+ * PortInterfaceProfile のシーケンス
+ * <li>- port_ref [Port Object 型] Port 自身のオブジェクトリファレンス
+ * <li>- connector_profile [ConnectorProfileList 型] Port が現在保持する
+ * ConnectorProfile のシーケンス
+ * <li>- owner [RTObject Object 型] この Port を所有する
+ * RTObjectのリファレンス
+ * <li>- properties [NVList 型] その他のプロパティ。
* </ul>
- * </p>
- *
- * @return 本ポートに関するPortProfileオブジェクト
+ * 事後条件:この関数を呼び出すことにより内部状態が変更されることはない。}
+ * {@.en This operation returns the PortProfile of the Port. Since this
+ * function is CORBA operation, callers have responsibility to
+ * destruction of the returned PortProfile object according to the
+ * CORBA memory management rules.
+ *
+ * PortProfile struct has the following members:
+ * <ul>
+ * <li>- name [string type] The name of the Port.
+ * <li>- interfaces [PortInterfaceProfileList type] The sequence of
+ * PortInterfaceProfile owned by the Port
+ * <li>- port_ref [Port Object type] The object reference of the Port.
+ * <li>- connector_profile [ConnectorProfileList type] The sequence of
+ * ConnectorProfile owned by the Port.
+ * <li>- owner [RTObject Object type] The object reference of
+ * RTObject that is owner of the Port.
+ * <li>- properties [NVList type] The other properties.
+ * </ul>
+ * post:This function never changes the state of the object.}
+ *
+ *
+ * @return
+ * {@.ja PortProfile}
+ * {@.en PortProfile of the Port}
+ *
*/
public PortProfile get_port_profile() {
- rtcout.println(rtcout.TRACE, "get_port_profile()");
+ rtcout.println(Logbuf.TRACE, "get_port_profile()");
updateConnectors();
synchronized (this.m_profile) {
@@ -208,32 +244,72 @@
}
/**
- * <p>[Local interface] PortProfileを取得します。</p>
- *
- * @return 本ポートに関するPortProfile
+ * {@.ja PortProfile を取得する。}
+ * {@.en Get the PortProfile of the Port}
+ * <p>
+ * {@.ja この関数は、オブジェクト内部に保持されている PortProfile の
+ * const 参照を返す const 関数である。
+ *
+ * 事後条件:この関数を呼び出すことにより内部状態が変更されることはない。}
+ * {@.en This function is a const function that returns a const
+ * reference of the PortProfile stored in this Port.
+ *
+ * post:This function never changes the state of the object.}
+ *
+ * @return
+ * {@.ja PortProfile}
+ * {@.en PortProfile}
*/
public final PortProfile getPortProfile() {
return m_profile;
}
/**
- * <p>ConnectorProfileリストを取得します。
- * ConnectorProfileはポート間の接続プロファイル情報を保持するクラスであり、
- * 接続時にポート間で情報交換を行い、関連するすべてのポートで同一の値が保持されます。</p>
- *
- * <p>ConnectorProfileは以下のメンバを保持しています。
+ * {@.ja [CORBA interface] ConnectorProfileListを取得する}
+ * {@.en [CORBA interface] Get the ConnectorProfileList of the Port}
+ * <p>
+ * {@.ja Portが保持する ConnectorProfile の sequence を返す。この関数は
+ * CORBA オペレーションであり、CORBA のメモリ管理規則に従い、呼び出
+ * し側は返される ConnectorProfileList オブジェクトを解体する責任が
+ * ある。
+ *
+ * ConnectorProfile は Port 間の接続プロファイル情報を保持する構造体であり、
+ * 接続時にPort間で情報交換を行い、関連するすべての Port で同一の値が
+ * 保持される。
+ * ConnectorProfile は以下のメンバーを保持している。
* <ul>
- * <li>name [String型] コネクタ名</li>
- * <li>connector_id [String型] ユニークなコネクタID</li>
- * <li>ports [Port配列型] このコネクタに関連するPortのCORBAオブジェクト参照のシーケンス
- * <li>properties [NameValue配列型] その他のプロパティ</li>
+ * <li>- name [string 型] このコネクタの名前。
+ * <li>- connector_id [string 型] ユニークなID
+ * <li>- ports [Port sequnce] このコネクタに関連する Port のオブジェクト
+ * リファレンスのシーケンス。
+ * <li>- properties [NVList 型] その他のプロパティ。
* </ul>
- * </p>
+ * 事後条件:この関数を呼び出すことにより内部状態が変更されることはない。}
+ * {@.en This operation returns a list of the ConnectorProfiles of the
+ * Port. Since this function is CORBA operation, callers have
+ * responsibility to destruction of the returned ConnectorProfileList
+ * object according to the CORBA memory management rules.
*
- * @return このポートに関連するConnectorProfileオブジェクトの配列
+ * ConnectorProfile includes the connection information that
+ * describes relation between (among) Ports, and Ports exchange
+ * the ConnectionProfile on connection process and hold the same
+ * information in every Port. ConnectionProfile has the following
+ * members:
+ * <ul>
+ * <li>- name [string type] The name of the connection.
+ * <li>- connector_id [string type] Unique identifier.
+ * <li>- ports [Port sequnce] The sequence of Port's object reference
+ * that are related the connection.
+ * <li>- properties [NVList type] The other properties.
+ * </ul>
+ * post:This function never changes the state of the object.}
+ *
+ * @return
+ * {@.ja この Port が保持する ConnectorProfile}
+ * {@.en ConnectorProfileList of the Port}
*/
public RTC.ConnectorProfile[] get_connector_profiles() {
- rtcout.println(rtcout.TRACE, "get_connector_profiles()");
+ rtcout.println(Logbuf.TRACE, "get_connector_profiles()");
updateConnectors();
synchronized (this.m_profile) {
@@ -250,14 +326,41 @@
}
/**
- * <p>指定されたコネクタIDに対応する接続プロファイルを取得します。</p>
- *
- * @param connector_id コネクタID
- * @return 指定されたコネクタIDに対応する接続プロファイル
+ * {@.ja [CORBA interface] ConnectorProfile を取得する}
+ * {@.en [CORBA interface] Get the ConnectorProfile}
+ * <p>
+ * {@.ja connector_id で指定された ConnectorProfile を返す。この関数は
+ * CORBA オペレーションであり、CORBA のメモリ管理規則に従い、呼び出
+ * し側は返される ConnectorProfile オブジェクトを解体する責任がある。
+ *
+ * 事前条件:引数に与える connector_id は有効な文字列でなければならない。
+ * 空文字を指定した場合、または指定した connector_id を持つ
+ * ConnectorProfile が見つからない場合は、空の ConnectorProfile を
+ * 返す。
+ *
+ * 事後条件:この関数を呼び出すことにより内部状態が変更されることはない。}
+ * {@.en This operation returns the ConnectorProfiles specified
+ * connector_id. Since this function is CORBA operation, callers
+ * have responsibility to destruction of the returned
+ * ConnectorProfile object according to the CORBA memory
+ * management rules.
+ *
+ * If ConnectorProfile with specified connector_id is not included,
+ * empty ConnectorProfile is returned.
+ *
+ * post:This function never changes the state of the object.}
+ *
+ *
+ * @param connector_id
+ * {@.ja ConnectorProfile の ID}
+ * {@.en ID of the ConnectorProfile}
+ * @return
+ * {@.ja connector_id で指定された ConnectorProfile}
+ * {@.en the ConnectorProfile identified by the connector_id}
*/
public ConnectorProfile get_connector_profile(final String connector_id) {
- rtcout.println(rtcout.TRACE, "get_connector_profile("+connector_id+")");
+ rtcout.println(Logbuf.TRACE, "get_connector_profile("+connector_id+")");
updateConnectors();
synchronized (m_profile_mutex) {
@@ -300,9 +403,171 @@
* @param connector_profile 接続プロファイル
* @return ReturnCode_t型による戻り値
*/
+ /**
+ * {@.ja [CORBA interface] Port の接続を行う}
+ * {@.en [CORBA interface] Connect the Port}
+ * <p>
+ * {@.ja 与えられた ConnectoionProfile の情報に基づき、Port間の接続を確立
+ * する。この関数は主にアプリケーションプログラムやツールから呼び出
+ * すことを前提としている。
+ * <b>事前条件:</b>
+ * <ul>
+ * <li> アプリケーションプログラムは、コンポーネント間の複数の
+ * Port を接続するために、適切な値をセットした ConnectorProfile を
+ * connect() の引数として与えて呼び出さなければならない。</li>
+ *
+ * <li> connect() に与える ConnectorProfile のメンバーのうち、
+ * name, ports, properties メンバーに対してデータをセットしなければ
+ * ならない。connector_id には通常空文字を設定するか、適当なUUIDを
+ * 文字列で設定する必要がある。</li>
+ *
+ * <li> ConnectorProfile::name は接続につける名前で CORBA::string
+ * 型に格納できる任意の文字列である必要がある。</li>
+ *
+ * <li> ConnectorProfile::connector_id はすべての接続に対して一意な
+ * ID (通常はUUID) が格納される。UUIDの設定は connect() 関数内で行
+ * われるので、呼び出し側は空文字を設定する。既存の接続と同じUUIDを
+ * 設定し connect() を呼び出した場合には PRECONDITION_NOT_MET エラー
+ * を返す。ただし、将来の拡張で既存の接続プロファイルを更新するため
+ * に既存の UUID を設定して呼び出す使用法が用いられる可能性がある。</li>
+ *
+ * <li> ConnectorProfile::ports は RTC::PortService のシーケンスで、
+ * 接続を構成する通常2つ以上のポートのオブジェクト参照を代入する必
+ * 要がある。例外として、ポートのオブジェクト参照を1つだけ格納して
+ * connect()を呼び出すことで、ポートのインターフェース情報を取得し
+ * たり、特殊なポート(CORBAのRTC::PortService以外の相手)に対して接
+ * 続を行う場合もある。</li>
+ *
+ * <li> ConnectorProfile::properties はポートに関連付けられたインター
+ * フェースに対するプロパティを与えるために使用する。プロパティは、
+ * string 型をキー、Any 型を値としてもつペアのシーケンスであり、値
+ * には任意のCORBAデータ型を格納できるが、可能な限り string 型とし
+ * て格納されることが推奨される。</li>
+ *
+ * <li> 以上 connect() 呼び出し時に設定する ConnectorProfile のメン
+ * バをまとめると以下のようになる。
+ * <ul>
+ * <li>- ConnectorProfile::name: 任意の接続名
+ * <li>- ConnectorProfile::connector_id: 空文字
+ * <li>- ConnectorProfile::ports: 1つ以上のポート
+ * <li>- ConnectorProfile::properties: インターフェースに対するプロパティ
+ * </ul>
+ * </li>
+ * </ul>
+ * <b>事後条件:</b>
+ * <ul>
+ * <li> connect() 関数は、ConnectorProfile::portsに格納されたポー
+ * トシーケンスの先頭のポートに対して notify_connect() を呼ぶ。</li>
+ *
+ * <li> notify_connect() は ConnectorProfile::ports に格納されたポー
+ * ト順に notify_connect() をカスケード呼び出しする。このカスケード
+ * 呼び出しは、途中のnotify_connect() でエラーが出てもポートのオブ
+ * ジェクト参照が有効である限り、必ずすべてのポートに対して行われる
+ * ことが保証される。有効でないオブジェクト参照がシーケンス中に存在
+ * する場合、そのポートをスキップして、次のポートに対して
+ * notify_connect() を呼び出す。</li>
+ *
+ * <li> connect() 関数は、notify_connect()の戻り値がRTC_OKであれば、
+ * RTC_OK を返す。この時点で接続は完了する。RTC_OK以外
+ * の場合は、この接続IDに対してdisconnect()を呼び出し接続を解除し、
+ * notify_connect() が返したエラーリターンコードをそのまま返す。</li>
+ *
+ * <li> connect() の引数として渡した ConnectorProfile には、
+ * ConnectorProfile::connector_id および、途中のポートが
+ * publishInterfaces() で公開したポートインターフェースの各種情報が
+ * 格納されている。connect() および途中の notify_connect() が
+ * ConnectorProfile::{name, ports} を変更することはない。</li></ul>}
+ *
+ * {@.en This operation establishes connection according to the given
+ * ConnectionProfile inforamtion. This function is premised on
+ * calling from mainly application program or tools.
+ *
+ * <b>Preconditioin:</b>
+ * <ul>
+ * <li>To establish the connection among Ports of RT-Components,
+ * application programs must call this operation giving
+ * ConnectorProfile with valid values as an argument.</li>
+ *
+ * <li>Out of ConnectorProfile member variables, "name", "ports"
+ * and "properties" members shall be set valid
+ * data. "connector_id" shall be set as empty string value or
+ * valid string UUID value.</li>
+ *
+ * <li>ConnectorProfile::name that is connection identifier shall
+ * be any valid CORBA::string.</li>
+ *
+ *
+ * <li>ConnectorProfile::connector_id shall be set unique
+ * identifier (usually UUID is used) for all connections. Since
+ * UUID string value is usually set in the connect() function,
+ * caller should just set empty string. If the connect() is called
+ * with the same UUID as existing connection, this function
+ * returns PRECONDITION_NOT_MET error. However, in order to update
+ * the existing connection profile, the "connect()" operation with
+ * existing connector ID might be used as valid method by future
+ * extension</li>
+ *
+ * <li>ConnectorProfile::ports, which is sequence of
+ * RTC::PortService references, shall store usually two or more
+ * ports' references. As exceptions, the "connect()" operation
+ * might be called with only one reference in ConnectorProfile, in
+ * case of just getting interfaces information from the port, or
+ * connecting a special port (i.e. the peer port except
+ * RTC::PortService on CORBA).</li>
+ *
+ * <li>ConnectorProfile::properties might be used to give certain
+ * properties to the service interfaces associated with the port.
+ * The properties is a sequence variable with a pair of key string
+ * and Any type value. Although the A variable can store any type
+ * of values, it is not recommended except string.</li>
+ *
+ * <li>The following is the summary of the ConnectorProfile
+ * member to be set when this operation is called.
+ * <ul>
+ * <li>- ConnectorProfile::name: The any name of connection</li>
+ * <li>- ConnectorProfile::connector_id: Empty string</li>
+ * <li>- ConnectorProfile::ports: One or more port references</li>
+ * <li>- ConnectorProfile::properties: Properties for the interfaces</li>
+ * </li>
+ * </ul>
+ * <b>Postcondition:</b>
+ * <ul>
+ * <li> connect() operation will call the first port in the
+ * sequence of the ConnectorProfile.</li>
+ *
+ * <li> "noify_connect()"s perform cascaded call to the ports
+ * stored in the ConnectorProfile::ports by order. Even if errors
+ * are raised by intermediate notify_connect() operation, as long
+ * as ports' object references are valid, it is guaranteed that
+ * this cascaded call is completed in all the ports. If invalid
+ * or dead ports exist in the port's sequence, the ports are
+ * skipped and notify_connect() is called for the next valid port.</li>
+ *
+ * <li> connect() function returns RTC_OK if all the
+ * notify_connect() return RTC_OK. At this time the connection is
+ * completed. If notify_connect()s return except RTC_OK,
+ * connect() calls disconnect() operation with the connector_id to
+ * destruct the connection, and then it returns error code from
+ * notify_connect().</li>
+ *
+ * <li> The ConnectorProfile argument of the connect() operation
+ * returns ConnectorProfile::connector_id and various information
+ * about service interfaces that is published by
+ * publishInterfaces() in the halfway ports. The connect() and
+ * halfway notify_connect() functions never change
+ * ConnectorProfile::{name, ports}. </li></ul>}
+ *
+ * @param connector_profile
+ * {@.ja ConnectorProfile}
+ * {@.en The ConnectorProfile.}
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en ReturnCode_t The return code of ReturnCode_t type.}
+ *
+ */
public ReturnCode_t connect(ConnectorProfileHolder connector_profile) {
- rtcout.println(rtcout.TRACE, "connect()");
+ rtcout.println(Logbuf.TRACE, "connect()");
if (isEmptyId(connector_profile.value)) {
synchronized (m_profile_mutex) {
@@ -315,7 +580,7 @@
else {
synchronized (m_profile_mutex) {
if (isExistingConnId(connector_profile.value.connector_id)) {
- rtcout.println(rtcout.ERROR, "Connection already exists.");
+ rtcout.println(Logbuf.ERROR, "Connection already exists.");
return ReturnCode_t.PRECONDITION_NOT_MET;
}
}
@@ -325,7 +590,7 @@
ReturnCode_t ret
= connector_profile.value.ports[0].notify_connect(connector_profile);
if (!ret.equals(ReturnCode_t.RTC_OK)) {
- rtcout.println(rtcout.ERROR, "Connection failed. cleanup.");
+ rtcout.println(Logbuf.ERROR, "Connection failed. cleanup.");
disconnect(connector_profile.value.connector_id);
}
return ret;
@@ -455,7 +720,7 @@
public ReturnCode_t
notify_connect(ConnectorProfileHolder connector_profile) {
- rtcout.println(rtcout.TRACE, "notify_connect()");
+ rtcout.println(Logbuf.TRACE, "notify_connect()");
synchronized (m_connectorsMutex){
ReturnCode_t[] retval = {ReturnCode_t.RTC_OK, ReturnCode_t.RTC_OK,
@@ -464,7 +729,7 @@
// publish owned interface information to the ConnectorProfile
retval[0] = publishInterfaces(connector_profile);
if (! ReturnCode_t.RTC_OK.equals(retval[0])) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"publishInterfaces() in notify_connect() failed.");
}
if (m_onPublishInterfaces != null) {
@@ -475,7 +740,7 @@
// call notify_connect() of the next Port
retval[1] = connectNext(connector_profile);
if (! ReturnCode_t.RTC_OK.equals(retval[1])) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"connectNext() in notify_connect() failed.");
}
@@ -486,11 +751,11 @@
retval[2] = subscribeInterfaces(connector_profile);
if (! ReturnCode_t.RTC_OK.equals(retval[2])) {
// cleanup this connection for downstream ports
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"subscribeInterfaces() in notify_connect() failed.");
}
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
m_profile.connector_profiles.length
+" connectors are existing.");
@@ -504,13 +769,13 @@
this.m_profile.connector_profiles);
CORBA_SeqUtil.push_back(holder, connector_profile.value);
this.m_profile.connector_profiles = holder.value;
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"New connector_id. Push backed.");
} else {
this.m_profile.connector_profiles[index] =
connector_profile.value;
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"Existing connector_id. Updated.");
}
}
@@ -536,13 +801,75 @@
* @param connector_id コネクタID
* @return ReturnCode_t型の戻り値
*/
+ /**
+ * {@.ja [CORBA interface] Port の接続を解除する}
+ * {@.en [CORBA interface] Disconnect the Port}
+ * <p>
+ * {@.ja このオペレーションは与えられた connector_id に対応する接続を解除
+ * する。connector_id は通常、システム全体において一意な UUID の文
+ * 字列であり、事前に connect()/notify_connect() の呼び出しにより確
+ * 立された接続プロファイル ConnectorProfile::connector_id に対応す
+ * る。
+ * <b>事前条件:</b>
+ * <ul>
+ * <li> connector_id は Port が保持する ConnectorProfile の少なくと
+ * も一つの ID に一致する文字列でなければならない。当該 Port が持つ
+ * ConnectorProfile のリスト内に connector_id と同一の ID を持つ
+ * ConnectorProfile が存在しなければこの関数は BAD_PARAMETER エラー
+ * を返す。</li>
+ *
+ * <li> connector_id と同じ ID を持つ ConnectorProfile::ports には
+ * 有効な Port の参照が含まれていなければならない。</li>
+ *
+ * <li> disconnect() 関数は、ConnectorProfile::ports の Port の参
+ * 照リストの先頭に対して、notify_disconnect() を呼び出す。参照が無
+ * 効であるなど、notify_disconnect() の呼び出しに失敗した場合には、
+ * 参照リストの先頭から順番に成功するまで notify_disconnect() の呼
+ * び出しを試す。notify_disconnect() の呼び出しに一つでも成功すれば、
+ * notify_disconnect() の返却値をそのまま返し、一つも成功しなかった
+ * 場合には RTC_ERROR エラーを返す。</li></ul>}
+ *
+ * {@.en This operation destroys connection between this port and the
+ * peer port according to given connector_id. Usually connector_id
+ * should be a UUID string that is unique in the system. And the
+ * connection, which is established by connect()/notify_connect()
+ * functions, is identified by the ConnectorProfile::connector_id.
+ * <b>Precondition</b>
+ * <ul>
+ * <li> connector_id shall be a character string which is same
+ * with ID of at least one of the ConnectorProfiles stored in this
+ * port. If ConnectorProfile that has same ID with the given
+ * connector_id does not exist in the list of ConnectorProfile,
+ * this operation returns BAD_PARAMTER error.</li>
+ *
+ * <li> ConnectorProfile::ports that is same ID with given
+ * connector_id shall store the valid ports' references.</li>
+ *
+ * <li> disconnect() function invokes the notify_disconnect() for
+ * the port that is stored in the first of the
+ * ConnectorProfile::ports. If notify_disconnect() call fails for
+ * the first port, It tries on calling "notify_disconnect()" in
+ * order for ports stored in ConnectorProfile::ports until the
+ * operation call is succeeded. If notify_disconnect() succeeded
+ * for at least one port, it returns return code from
+ * notify_disconnect(). If none of notify_connect() call
+ * succeeded, it returns RTC_ERROR error.</li></ul>}
+ *
+ * @param connector_id
+ * {@.ja ConnectorProfile の ID}
+ * {@.en The ID of the ConnectorProfile.}
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en ReturnCode_t The return code of ReturnCode_t type.}
+ *
+ */
public ReturnCode_t disconnect(final String connector_id) {
- rtcout.println(rtcout.TRACE, "disconnect("+connector_id+")");
+ rtcout.println(Logbuf.TRACE, "disconnect("+connector_id+")");
// find connector_profile
int index = findConnProfileIndex(connector_id);
if (index < 0) {
- rtcout.println(rtcout.ERROR, "Invalid connector id: "+connector_id);
+ rtcout.println(Logbuf.ERROR, "Invalid connector id: "+connector_id);
return ReturnCode_t.BAD_PARAMETER;
}
@@ -553,7 +880,7 @@
}
if (prof.ports.length < 1) {
- rtcout.println(rtcout.FATAL, "ConnectorProfile has empty port list.");
+ rtcout.println(Logbuf.FATAL, "ConnectorProfile has empty port list.");
return ReturnCode_t.PRECONDITION_NOT_MET;
}
@@ -563,15 +890,15 @@
return p.notify_disconnect(connector_id);
}
catch (SystemException e) {
- rtcout.println(rtcout.WARN, "Exception caught: minor code("+e.minor+")."+e.toString());
+ rtcout.println(Logbuf.WARN, "Exception caught: minor code("+e.minor+")."+e.toString());
continue;
}
catch (Exception e) {
- rtcout.println(rtcout.WARN, "Unknown exception caught.");
+ rtcout.println(Logbuf.WARN, "Unknown exception caught.");
continue;
}
}
- rtcout.println(rtcout.ERROR, "notify_disconnect() for all ports failed.");
+ rtcout.println(Logbuf.ERROR, "notify_disconnect() for all ports failed.");
return ReturnCode_t.RTC_ERROR;
}
@@ -669,7 +996,7 @@
*/
public ReturnCode_t notify_disconnect(final String connector_id) {
- rtcout.println(rtcout.TRACE, "notify_disconnect("+connector_id+")");
+ rtcout.println(Logbuf.TRACE, "notify_disconnect("+connector_id+")");
// The Port of which the reference is stored in the beginning of
// ConnectorProfile's PortList is master Port.
@@ -682,7 +1009,7 @@
// find connector_profile
int index = findConnProfileIndex(connector_id);
if (index < 0) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Invalid connector id: "+connector_id);
return ReturnCode_t.BAD_PARAMETER;
}
@@ -718,13 +1045,21 @@
}
/**
- * <p>当該ポートに関連したすべての接続を解除します。</p>
- *
- * @return ReturnCode_t型の戻り値
+ * {@.ja [CORBA interface] Port の全接続を解除する}
+ * {@.en [CORBA interface] Disconnect the All Ports}
+ *
+ * <p>
+ * {@.ja このオペレーションはこの Port に関連した全ての接続を解除する。}
+ * {@.en This operation destroys all connections associated with this Port.}
+ *
+ * @return
+ * {@.ja ReturnCode_t 型のリターンコード}
+ * {@.en ReturnCode_t The return code of ReturnCode_t type.}
+ *
*/
public ReturnCode_t disconnect_all() {
- rtcout.println(rtcout.TRACE, "disconnect_all()");
+ rtcout.println(Logbuf.TRACE, "disconnect_all()");
ConnectorProfileListHolder plist = null;
synchronized (m_profile_mutex) {
plist =
@@ -732,7 +1067,7 @@
}
ReturnCode_t retcode = ReturnCode_t.RTC_OK;
int len = plist.value.length;
- rtcout.println(rtcout.DEBUG, "disconnecting "+len+" connections.");
+ rtcout.println(Logbuf.DEBUG, "disconnecting "+len+" connections.");
for (int i=0; i < len; ++i) {
ReturnCode_t tmpret;
tmpret = this.disconnect(plist.value[i].connector_id);
@@ -746,25 +1081,37 @@
}
/**
- * <p> Activate all Port interfaces </p>
+ * {@.ja Port の全てのインターフェースを activates する}
+ * {@.en Activate all Port interfaces}
*
- * <p> This operation activate all interfaces that is registered in the
- * ports. </p>
+ * <p>
+ * {@.ja Port に登録されている全てのインターフェースを activate する。}
+ * {@.en This operation activate all interfaces that is registered in the
+ * ports.}
*/
public abstract void activateInterfaces();
/**
- * <p> Deactivate all Port interfaces </p>
- *
- * <p> This operation deactivate all interfaces that is registered in the
- * ports. </p>
- *
+ * {@.ja 全ての Port のインターフェースを deactivates する}
+ * {@.en Deactivate all Port interfaces}
+ * <p>
+ * {@.ja Port に登録されている全てのインターフェースを deactivate する。}
+ * {@.en This operation deactivate all interfaces that is registered in the
+ * ports.}
*/
public abstract void deactivateInterfaces();
/**
- * <p>ポート名を設定します。指定されたポート名は、PortProfileのnameメンバに設定されます。</p>
- *
- * @param name ポート名
+ * {@.ja Port の名前を設定する}
+ * {@.en Set the name of this Port}
+ * <p>
+ * {@.ja Port の名前を設定する。この名前は Port が保持する PortProfile.name
+ * に反映される。}
+ * {@.en This operation sets the name of this Port. The given Port's name is
+ * applied to Port's PortProfile.name.}
+ *
+ * @param name
+ * {@.ja Port の名前}
+ * {@.en The name of this Port.}
*/
public void setName(final String name) {
synchronized (this.m_profile) {
@@ -773,19 +1120,31 @@
}
/**
- * <p> Get the name of this Port </p>
- * <p> This operation returns the name of this Port. </p>
- * @return The name of this Port.
+ * {@.ja Port の名前を取得する}
+ * {@.en Get the name of this Port}
+ * <p>
+ * {@.ja Port の名前を取得する。}
+ * {@.en This operation returns the name of this Port.}
+ *
+ * @return
+ * {@.ja Port の名前}
+ * {@.en The name of this Port.}
*/
- String getName() {
- rtcout.println(rtcout.TRACE, "getName() = "+m_profile.name);
+ public final String getName() {
+ rtcout.println(Logbuf.TRACE, "getName() = "+m_profile.name);
return m_profile.name;
}
/**
- * <p>当該ポートが保持しているPortProfileオブジェクトを取得します。</p>
- *
- * @return 当該ポートが保持しているPortProfileオブジェクト
+ * {@.ja PortProfileを取得する}
+ * {@.en Get the PortProfile of the Port}
+ * <p>
+ * {@.ja Portが保持する PortProfile の const 参照を返す。}
+ * {@.en This operation returns const reference of the PortProfile.}
+ *
+ * @return
+ * {@.ja この Port の PortProfile}
+ * {@.en PortProfile of the Port}
*/
public final PortProfile getProfile() {
synchronized (this.m_profile) {
@@ -794,11 +1153,17 @@
}
/**
- * <p>指定されたポートCORBAオブジェクト参照を設定します。</p>
- * <p>本メソッドは、当該ポート自身のCORBAオブジェクト参照を設定するために用います。
- * 当該ポートのCORBAオブジェクト参照以外は設定しないでください。</p>
- *
- * @param port_ref 当該ポートのCORBAオブジェクト参照
+ * {@.ja Port のオブジェクト参照を設定する}
+ * {@.en Set the object reference of this Port}
+ * <p>
+ * {@.ja このオペレーションは Port の PortProfile にこの Port 自身の
+ * オブジェクト参照を設定する。}
+ * {@.en This operation sets the object reference itself
+ * to the Port's PortProfile.}
+ *
+ * @param port_ref
+ * {@.ja この Port のオブジェクト参照}
+ * {@.en port_ref The object reference of this Port.}
*/
public void setPortRef(PortService port_ref) {
synchronized (this.m_profile) {
@@ -807,9 +1172,17 @@
}
/**
- * <p>当該ポートのPortProfileが保持している、当該ポート自身のCORBAオブジェクト参照を取得します。</p>
- *
- * @return 当該ポートのCORBAオブジェクト参照
+ * {@.ja Port のオブジェクト参照を取得する}
+ * {@.en Get the object reference of this Port}
+ * <p>
+ * {@.ja このオペレーションは Port の PortProfile が保持している
+ * この Port 自身のオブジェクト参照を取得する。}
+ * {@.en This operation returns the object reference
+ * that is stored in the Port's PortProfile.}
+ *
+ * @return
+ * {@.ja この Port のオブジェクト参照}
+ * {`.en The object reference of this Port.}
*/
public PortService getPortRef() {
synchronized (this.m_profile) {
@@ -835,7 +1208,7 @@
RTC.ComponentProfile prof = owner.get_component_profile();
m_ownerInstanceName = prof.instance_name;
- rtcout.println(rtcout.TRACE, "setOwner("+m_ownerInstanceName+")");
+ rtcout.println(Logbuf.TRACE, "setOwner("+m_ownerInstanceName+")");
synchronized (this.m_profile) {
String portname = m_profile.name;
String[] port = portname.split("\\.");
@@ -1090,12 +1463,12 @@
return p.notify_disconnect(connector_profile.connector_id);
}
catch (SystemException e) {
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Exception caught: minor code."+e.minor);
continue;
}
catch (Exception e) {
- rtcout.println(rtcout.WARN,
+ rtcout.println(Logbuf.WARN,
"Unknown exception caught.");
continue;
}
@@ -1638,7 +2011,7 @@
if (!checkPorts(clist[i].ports)) {
String id = clist[i].connector_id;
connector_ids.add(id);
- rtcout.println(rtcout.WARN,"Dead connection:"+id);
+ rtcout.println(Logbuf.WARN,"Dead connection:"+id);
}
}
}
@@ -1657,7 +2030,7 @@
for (int i=0, len=ports.length; i < len; ++i) {
try {
if (ports[i]._non_existent()) {
- rtcout.println(rtcout.WARN,"Dead Port reference detected.");
+ rtcout.println(Logbuf.WARN,"Dead Port reference detected.");
return false;
}
}
@@ -1678,11 +2051,11 @@
protected ReturnCode_t _publishInterfaces() {
if(!(m_connectionLimit < 0)) {
if(m_connectionLimit<=m_profile.connector_profiles.length) {
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"Connected number has reached the limitation.");
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
"Can connect the port up to "+m_connectionLimit+" ports.");
- rtcout.println(rtcout.PARANOID,
+ rtcout.println(Logbuf.PARANOID,
m_profile.connector_profiles.length+" connectors are existing");
return ReturnCode_t.RTC_ERROR;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,15 +1,14 @@
package jp.go.aist.rtm.RTC.port.publisher;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
-import jp.go.aist.rtm.RTC.port.ReturnCode;
+import jp.go.aist.rtm.RTC.buffer.BufferBase;
import jp.go.aist.rtm.RTC.port.ConnectorBase;
import jp.go.aist.rtm.RTC.port.ConnectorListeners;
-import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.port.InPortConsumer;
+import jp.go.aist.rtm.RTC.port.ReturnCode;
+import jp.go.aist.rtm.RTC.util.Properties;
+import org.omg.CORBA.portable.OutputStream;
+
/**
* <p>データ送出タイミングを管理して送出を駆動するPublisherのベース実装クラスです。</p>
*/
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherFlush.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherFlush.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherFlush.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,21 +1,19 @@
package jp.go.aist.rtm.RTC.port.publisher;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-
+import jp.go.aist.rtm.RTC.ObjectCreator;
+import jp.go.aist.rtm.RTC.ObjectDestructor;
+import jp.go.aist.rtm.RTC.PublisherBaseFactory;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
-import jp.go.aist.rtm.RTC.port.InPortConsumer;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.port.ConnectorBase;
import jp.go.aist.rtm.RTC.port.ConnectorDataListenerType;
-import jp.go.aist.rtm.RTC.port.ConnectorListenerType;
import jp.go.aist.rtm.RTC.port.ConnectorListeners;
-import jp.go.aist.rtm.RTC.port.ConnectorBase;
+import jp.go.aist.rtm.RTC.port.InPortConsumer;
+import jp.go.aist.rtm.RTC.port.ReturnCode;
import jp.go.aist.rtm.RTC.util.Properties;
-import jp.go.aist.rtm.RTC.PublisherBaseFactory;
-import jp.go.aist.rtm.RTC.ObjectCreator;
-import jp.go.aist.rtm.RTC.ObjectDestructor;
-import jp.go.aist.rtm.RTC.log.Logbuf;
+import org.omg.CORBA.portable.OutputStream;
+
/**
* <p>データ送出を待つコンシューマを、送出する側と同じスレッドで動作させる場合に使用します。</p>
*/
@@ -93,10 +91,10 @@
*/
public ReturnCode setListener(ConnectorBase.ConnectorInfo info,
ConnectorListeners listeners) {
- rtcout.println(rtcout.TRACE, "setListeners()" );
+ rtcout.println(Logbuf.TRACE, "setListeners()" );
if (listeners == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"setListeners(listeners == 0): invalid argument" );
return ReturnCode.INVALID_ARGS;
}
@@ -175,7 +173,7 @@
return ReturnCode.PRECONDITION_NOT_MET;
}
if (m_retcode.equals(ReturnCode.CONNECTION_LOST)) {
- rtcout.println(rtcout.DEBUG, "write(): connection lost." );
+ rtcout.println(Logbuf.DEBUG, "write(): connection lost." );
return m_retcode;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherNew.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherNew.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherNew.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,28 +1,25 @@
package jp.go.aist.rtm.RTC.port.publisher;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-import java.util.Vector;
import java.util.Set;
-import java.lang.Thread;
-import jp.go.aist.rtm.RTC.PeriodicTaskFactory;
-import jp.go.aist.rtm.RTC.PublisherBaseFactory;
import jp.go.aist.rtm.RTC.ObjectCreator;
import jp.go.aist.rtm.RTC.ObjectDestructor;
import jp.go.aist.rtm.RTC.PeriodicTaskBase;
-import jp.go.aist.rtm.RTC.TaskFuncBase;
+import jp.go.aist.rtm.RTC.PeriodicTaskFactory;
+import jp.go.aist.rtm.RTC.PublisherBaseFactory;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.port.InPortConsumer;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
-import jp.go.aist.rtm.RTC.port.ConnectorListeners;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.port.ConnectorBase;
import jp.go.aist.rtm.RTC.port.ConnectorDataListenerType;
import jp.go.aist.rtm.RTC.port.ConnectorListenerType;
-import jp.go.aist.rtm.RTC.port.ConnectorBase;
+import jp.go.aist.rtm.RTC.port.ConnectorListeners;
+import jp.go.aist.rtm.RTC.port.InPortConsumer;
+import jp.go.aist.rtm.RTC.port.ReturnCode;
import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
+import org.omg.CORBA.portable.OutputStream;
+
/**
* <p>データ送出タイミングを待つコンシューマを、送出する側とは異なるスレッドで動作させる場合に使用します。</p>
*
@@ -102,7 +99,7 @@
* @return ReturnCode
*/
protected ReturnCode pushAll() {
- rtcout.println(rtcout.TRACE, "pushAll()");
+ rtcout.println(Logbuf.TRACE, "pushAll()");
try {
while (m_buffer.readable() > 0) {
OutputStream cdr = m_buffer.get();
@@ -112,7 +109,7 @@
ReturnCode ret = m_consumer.put(cdr);
if (!ret.equals(ReturnCode.PORT_OK)) {
- rtcout.println(rtcout.DEBUG, ret + " = consumer.put()");
+ rtcout.println(Logbuf.DEBUG, ret + " = consumer.put()");
return invokeListener(ret, cdr);
}
onReceived(cdr);
@@ -132,7 +129,7 @@
* @return ReturnCode
*/
protected ReturnCode pushFifo() {
- rtcout.println(rtcout.TRACE, "pushFifo()");
+ rtcout.println(Logbuf.TRACE, "pushFifo()");
try {
OutputStream cdr = m_buffer.get();
onBufferRead(cdr);
@@ -141,7 +138,7 @@
ReturnCode ret = m_consumer.put(cdr);
if (!ret.equals(ReturnCode.PORT_OK)) {
- rtcout.println(rtcout.DEBUG, ret + " = consumer.put()");
+ rtcout.println(Logbuf.DEBUG, ret + " = consumer.put()");
return invokeListener(ret, cdr);
}
onReceived(cdr);
@@ -161,7 +158,7 @@
* @return ReturnCode
*/
protected ReturnCode pushSkip() {
- rtcout.println(rtcout.TRACE, "pushSkip()");
+ rtcout.println(Logbuf.TRACE, "pushSkip()");
try {
ReturnCode ret = ReturnCode.PORT_OK;
int preskip = (m_buffer.readable() + m_leftskip);
@@ -177,7 +174,7 @@
ret = m_consumer.put(cdr);
if (!ret.equals(ReturnCode.PORT_OK)) {
m_buffer.advanceRptr(-postskip);
- rtcout.println(rtcout.DEBUG, ret + " = consumer.put()");
+ rtcout.println(Logbuf.DEBUG, ret + " = consumer.put()");
return invokeListener(ret, cdr);
}
onReceived(cdr);
@@ -208,7 +205,7 @@
* @return ReturnCode
*/
protected ReturnCode pushNew() {
- rtcout.println(rtcout.TRACE, "pushNew()");
+ rtcout.println(Logbuf.TRACE, "pushNew()");
try {
m_buffer.advanceRptr(m_buffer.readable() - 1);
@@ -219,7 +216,7 @@
ReturnCode ret = m_consumer.put(cdr);
if (!ret.equals(ReturnCode.PORT_OK)) {
- rtcout.println(rtcout.DEBUG, ret + " = consumer.put()");
+ rtcout.println(Logbuf.DEBUG, ret + " = consumer.put()");
return invokeListener(ret, cdr);
}
onReceived(cdr);
@@ -287,10 +284,10 @@
* @return ReturnCode
*/
public ReturnCode init(Properties prop) {
- rtcout.println(rtcout.TRACE, "init()");
+ rtcout.println(Logbuf.TRACE, "init()");
String str = new String();
prop._dump(str,prop,0);
- rtcout.println(rtcout.DEBUG, str);
+ rtcout.println(Logbuf.DEBUG, str);
setPushPolicy(prop);
if (!createTask(prop)) {
@@ -305,7 +302,7 @@
protected void setPushPolicy(final Properties prop) {
// push_policy default: NEW
String push_policy = prop.getProperty("publisher.push_policy", "new");
- rtcout.println(rtcout.DEBUG, "push_policy: " + push_policy );
+ rtcout.println(Logbuf.DEBUG, "push_policy: " + push_policy );
push_policy = StringUtil.normalize(push_policy);
if (push_policy.equals("all")) {
@@ -321,25 +318,25 @@
m_pushPolicy = Policy.NEW;
}
else {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid push_policy value: " + push_policy );
m_pushPolicy = Policy.NEW; // default push policy
}
// skip_count default: 0
String skip_count = prop.getProperty("publisher.skip_count", "0");
- rtcout.println(rtcout.DEBUG, "skip_count: " + skip_count );
+ rtcout.println(Logbuf.DEBUG, "skip_count: " + skip_count );
try {
m_skipn = Integer.parseInt(skip_count);
}
catch(NumberFormatException e){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid skip_count value: " + skip_count );
m_skipn = 0; // default skip count
}
if (m_skipn < 0) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid skip_count value: " + m_skipn );
m_skipn = 0; // default skip count
}
@@ -356,18 +353,18 @@
= PeriodicTaskFactory.instance();
Set hs = factory.getIdentifiers();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"available task types: " + hs.toString());
m_task = factory.createObject(prop.getProperty(
"thread_type", "default"));
if (m_task == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Task creation failed: "
+ prop.getProperty("thread_type", "default"));
return false;
}
- rtcout.println(rtcout.PARANOID, "Task creation succeeded." );
+ rtcout.println(Logbuf.PARANOID, "Task creation succeeded." );
Properties mprop = prop.getNode("measurement");
@@ -412,10 +409,10 @@
* @return ReturnCode
*/
public ReturnCode setConsumer(InPortConsumer consumer) {
- rtcout.println(rtcout.TRACE, "setConsumer()" );
+ rtcout.println(Logbuf.TRACE, "setConsumer()" );
if (consumer == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"setConsumer(consumer = null): invalid argument." );
return ReturnCode.INVALID_ARGS;
}
@@ -430,11 +427,11 @@
* @return ReturnCode
*/
public ReturnCode setBuffer(BufferBase<OutputStream> buffer) {
- rtcout.println(rtcout.TRACE, "setBuffer()" );
+ rtcout.println(Logbuf.TRACE, "setBuffer()" );
if (buffer == null)
{
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"setBuffer(buffer = null): invalid argument." );
return ReturnCode.INVALID_ARGS;
}
@@ -446,10 +443,10 @@
*/
public ReturnCode setListener(ConnectorBase.ConnectorInfo info,
ConnectorListeners listeners) {
- rtcout.println(rtcout.TRACE, "setListeners()" );
+ rtcout.println(Logbuf.TRACE, "setListeners()" );
if (listeners == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"setListeners(listeners == 0): invalid argument." );
return ReturnCode.INVALID_ARGS;
}
@@ -544,17 +541,17 @@
*
*/
public ReturnCode write(final OutputStream data, int sec, int usec) {
- rtcout.println(rtcout.PARANOID, "write()" );
+ rtcout.println(Logbuf.PARANOID, "write()" );
if (m_consumer == null) { return ReturnCode.PRECONDITION_NOT_MET; }
if (m_buffer == null) { return ReturnCode.PRECONDITION_NOT_MET; }
if (m_listeners == null) { return ReturnCode.PRECONDITION_NOT_MET; }
if (m_retcode.equals(ReturnCode.CONNECTION_LOST)) {
- rtcout.println(rtcout.DEBUG, "write(): connection lost." );
+ rtcout.println(Logbuf.DEBUG, "write(): connection lost." );
return m_retcode;
}
if (m_retcode.equals(ReturnCode.SEND_FULL)) {
- rtcout.println(rtcout.DEBUG, "write(): InPort buffer is full." );
+ rtcout.println(Logbuf.DEBUG, "write(): InPort buffer is full." );
jp.go.aist.rtm.RTC.buffer.ReturnCode ret;
ret = m_buffer.write(data, sec, usec);
m_task.signal();
@@ -568,7 +565,7 @@
ret = m_buffer.write(data, sec, usec);
m_task.signal();
- rtcout.println(rtcout.DEBUG, ret.name() +" = write()" );
+ rtcout.println(Logbuf.DEBUG, ret.name() +" = write()" );
return convertReturn(ret,data);
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherPeriodic.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherPeriodic.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/port/publisher/PublisherPeriodic.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,26 +1,24 @@
package jp.go.aist.rtm.RTC.port.publisher;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.OutputStream;
-import java.util.Vector;
import java.util.Set;
-import jp.go.aist.rtm.RTC.PeriodicTaskFactory;
-import jp.go.aist.rtm.RTC.PublisherBaseFactory;
import jp.go.aist.rtm.RTC.ObjectCreator;
import jp.go.aist.rtm.RTC.ObjectDestructor;
import jp.go.aist.rtm.RTC.PeriodicTaskBase;
-import jp.go.aist.rtm.RTC.TaskFuncBase;
+import jp.go.aist.rtm.RTC.PeriodicTaskFactory;
+import jp.go.aist.rtm.RTC.PublisherBaseFactory;
import jp.go.aist.rtm.RTC.buffer.BufferBase;
-import jp.go.aist.rtm.RTC.port.InPortConsumer;
-import jp.go.aist.rtm.RTC.port.ReturnCode;
-import jp.go.aist.rtm.RTC.port.ConnectorListenerType;
+import jp.go.aist.rtm.RTC.log.Logbuf;
+import jp.go.aist.rtm.RTC.port.ConnectorBase;
import jp.go.aist.rtm.RTC.port.ConnectorDataListenerType;
+import jp.go.aist.rtm.RTC.port.ConnectorListenerType;
import jp.go.aist.rtm.RTC.port.ConnectorListeners;
-import jp.go.aist.rtm.RTC.port.ConnectorBase;
+import jp.go.aist.rtm.RTC.port.InPortConsumer;
+import jp.go.aist.rtm.RTC.port.ReturnCode;
import jp.go.aist.rtm.RTC.util.Properties;
import jp.go.aist.rtm.RTC.util.StringUtil;
-import jp.go.aist.rtm.RTC.log.Logbuf;
+
+import org.omg.CORBA.portable.OutputStream;
/**
* <p>一定時間おきにコンシューマの送出処理を呼び出すPublisherです。</p>
*/
@@ -82,7 +80,7 @@
* @return ReturnCode
*/
protected ReturnCode pushAll() {
- rtcout.println(rtcout.TRACE, "pushAll()");
+ rtcout.println(Logbuf.TRACE, "pushAll()");
while (m_buffer.readable() > 0) {
final OutputStream cdr = m_buffer.get();
@@ -92,7 +90,7 @@
ReturnCode ret = m_consumer.put(cdr);
if (!ret.equals(ReturnCode.PORT_OK)) {
- rtcout.println(rtcout.DEBUG, ret + " = consumer.put()");
+ rtcout.println(Logbuf.DEBUG, ret + " = consumer.put()");
return invokeListener(ret, cdr);
}
onReceived(cdr);
@@ -107,10 +105,10 @@
* @return ReturnCode
*/
protected ReturnCode pushFifo() {
- rtcout.println(rtcout.TRACE, "pushFifo()");
+ rtcout.println(Logbuf.TRACE, "pushFifo()");
if (m_buffer.empty() && !m_readback) {
- rtcout.println(rtcout.DEBUG, "buffer empty");
+ rtcout.println(Logbuf.DEBUG, "buffer empty");
return ReturnCode.BUFFER_EMPTY;
}
final OutputStream cdr = m_buffer.get();
@@ -119,7 +117,7 @@
onSend(cdr);
ReturnCode ret = m_consumer.put(cdr);
if (!ret.equals(ReturnCode.PORT_OK)) {
- rtcout.println(rtcout.DEBUG, ret + " = consumer.put()");
+ rtcout.println(Logbuf.DEBUG, ret + " = consumer.put()");
return invokeListener(ret, cdr);
}
onReceived(cdr);
@@ -135,9 +133,9 @@
* @return ReturnCode
*/
protected ReturnCode pushSkip() {
- rtcout.println(rtcout.TRACE, "pushSkip()");
+ rtcout.println(Logbuf.TRACE, "pushSkip()");
if (m_buffer.empty() && !m_readback) {
- rtcout.println(rtcout.DEBUG, "buffer empty");
+ rtcout.println(Logbuf.DEBUG, "buffer empty");
return ReturnCode.BUFFER_EMPTY;
}
@@ -154,7 +152,7 @@
ret = m_consumer.put(cdr);
if (!ret.equals(ReturnCode.PORT_OK)) {
m_buffer.advanceRptr(-postskip);
- rtcout.println(rtcout.DEBUG, ret + " = consumer.put()");
+ rtcout.println(Logbuf.DEBUG, ret + " = consumer.put()");
return invokeListener(ret, cdr);
}
onReceived(cdr);
@@ -172,10 +170,10 @@
* @return ReturnCode
*/
protected ReturnCode pushNew() {
- rtcout.println(rtcout.TRACE, "pushNew()");
+ rtcout.println(Logbuf.TRACE, "pushNew()");
if (m_buffer.empty() && !m_readback) {
- rtcout.println(rtcout.DEBUG, "buffer empty");
+ rtcout.println(Logbuf.DEBUG, "buffer empty");
return ReturnCode.BUFFER_EMPTY;
}
@@ -188,7 +186,7 @@
onSend(cdr);
ReturnCode ret = m_consumer.put(cdr);
if (!ret.equals(ReturnCode.PORT_OK)) {
- rtcout.println(rtcout.DEBUG, ret + " = consumer.put()");
+ rtcout.println(Logbuf.DEBUG, ret + " = consumer.put()");
return invokeListener(ret, cdr);
}
@@ -296,10 +294,10 @@
*
*/
public ReturnCode init(Properties prop) {
- rtcout.println(rtcout.TRACE, "init()");
+ rtcout.println(Logbuf.TRACE, "init()");
String str = new String();
prop._dump(str,prop,0);
- rtcout.println(rtcout.PARANOID, str);
+ rtcout.println(Logbuf.PARANOID, str);
setPushPolicy(prop);
if (!createTask(prop)) {
@@ -314,7 +312,7 @@
protected void setPushPolicy(final Properties prop) {
// push_policy default: NEW
String push_policy = prop.getProperty("publisher.push_policy", "new");
- rtcout.println(rtcout.DEBUG, "push_policy: " + push_policy );
+ rtcout.println(Logbuf.DEBUG, "push_policy: " + push_policy );
push_policy = StringUtil.normalize(push_policy);
if (push_policy.equals("all")) {
@@ -330,25 +328,25 @@
m_pushPolicy = Policy.NEW;
}
else {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid push_policy value: " + push_policy );
m_pushPolicy = Policy.NEW; // default push policy
}
// skip_count default: 0
String skip_count = prop.getProperty("publisher.skip_count", "0");
- rtcout.println(rtcout.DEBUG, "skip_count: " + skip_count );
+ rtcout.println(Logbuf.DEBUG, "skip_count: " + skip_count );
try {
m_skipn = Integer.parseInt(skip_count);
}
catch(NumberFormatException e){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid skip_count value: " + skip_count );
m_skipn = 0; // default skip count
}
if (m_skipn < 0) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid skip_count value: " + m_skipn );
m_skipn = 0; // default skip count
}
@@ -363,18 +361,18 @@
= PeriodicTaskFactory.instance();
Set hs = factory.getIdentifiers();
- rtcout.println(rtcout.DEBUG,
+ rtcout.println(Logbuf.DEBUG,
"available task types: " + hs.toString());
m_task = factory.createObject(prop.getProperty(
"thread_type", "default"));
if (m_task == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"Task creation failed: "
+ prop.getProperty("thread_type", "default"));
return false;
}
- rtcout.println(rtcout.PARANOID, "Task creation succeeded." );
+ rtcout.println(Logbuf.PARANOID, "Task creation succeeded." );
// setting task function
m_task.setTask(this);
@@ -384,7 +382,7 @@
if(rate.equals("")){
rate = prop.getProperty("push_rate");
if(rate.equals("")){
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"publisher.push_rate/push_rate were not found." );
return false;
}
@@ -392,7 +390,7 @@
double hz;
hz = Double.valueOf(rate).doubleValue();
if (hz <= 0) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"invalid period: "+hz+"[s]" );
return false;
}
@@ -439,10 +437,10 @@
* @return ReturnCode
*/
public ReturnCode setConsumer(InPortConsumer consumer) {
- rtcout.println(rtcout.TRACE, "setConsumer()" );
+ rtcout.println(Logbuf.TRACE, "setConsumer()" );
if (consumer == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"setConsumer(consumer = null): invalid argument." );
return ReturnCode.INVALID_ARGS;
}
@@ -457,11 +455,11 @@
* @return ReturnCode
*/
public ReturnCode setBuffer(BufferBase<OutputStream> buffer) {
- rtcout.println(rtcout.TRACE, "setBuffer()" );
+ rtcout.println(Logbuf.TRACE, "setBuffer()" );
if (buffer == null)
{
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"setBuffer(buffer = null): invalid argument." );
return ReturnCode.INVALID_ARGS;
}
@@ -473,10 +471,10 @@
*/
public ReturnCode setListener(ConnectorBase.ConnectorInfo info,
ConnectorListeners listeners) {
- rtcout.println(rtcout.TRACE, "setListeners()" );
+ rtcout.println(Logbuf.TRACE, "setListeners()" );
if (listeners == null) {
- rtcout.println(rtcout.ERROR,
+ rtcout.println(Logbuf.ERROR,
"setListeners(listeners == 0): invalid argument" );
return ReturnCode.INVALID_ARGS;
}
@@ -561,17 +559,17 @@
* TIMEOUT Timeout occurred when writing to the buffer.}
*/
public ReturnCode write(final OutputStream data, int sec, int usec) {
- rtcout.println(rtcout.PARANOID, "write()" );
+ rtcout.println(Logbuf.PARANOID, "write()" );
if (m_consumer == null) { return ReturnCode.PRECONDITION_NOT_MET; }
if (m_buffer == null) { return ReturnCode.PRECONDITION_NOT_MET; }
if (m_listeners == null) { return ReturnCode.PRECONDITION_NOT_MET; }
if (m_retcode.equals(ReturnCode.CONNECTION_LOST)) {
- rtcout.println(rtcout.DEBUG, "write(): connection lost." );
+ rtcout.println(Logbuf.DEBUG, "write(): connection lost." );
return m_retcode;
}
if (m_retcode.equals(ReturnCode.SEND_FULL)) {
- rtcout.println(rtcout.DEBUG, "write(): InPort buffer is full." );
+ rtcout.println(Logbuf.DEBUG, "write(): InPort buffer is full." );
m_buffer.write(data, sec, usec);
return ReturnCode.BUFFER_FULL;
}
@@ -579,7 +577,7 @@
onBufferWrite(data);
jp.go.aist.rtm.RTC.buffer.ReturnCode ret;
ret = m_buffer.write(data, sec, usec);
- rtcout.println(rtcout.DEBUG, ret.name() +" = write()" );
+ rtcout.println(Logbuf.DEBUG, ret.name() +" = write()" );
m_task._resume();
return convertReturn(ret,data);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ByteHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ByteHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ByteHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,71 +3,109 @@
import java.io.Serializable;
/**
-* <p>byte型データ格納用クラスです。</p>
+* {@.ja byte型データ格納用クラス}
+* {@.en Class for int type data storage}
*/
public class ByteHolder implements ValueHolder, Serializable {
+ private static final long serialVersionUID = 1259117692223412202L;
/**
- * <p>byte型データ設定値</p>
+ * {@.ja byte型データ設定値}
+ * {@.en byte type data setting value}
*/
public Byte value = null;
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public ByteHolder() {
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public ByteHolder(byte initialValue) {
value = new Byte(initialValue);
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public ByteHolder(Byte initialValue) {
value = initialValue;
}
/**
- * <p>渡された文字列をbyte型に変換して設定します。</p>
+ * {@.ja 文字列からbyte型に変換して設定する}
+ * {@.en Converts from String into byte type and sets it.}
*
- * @param def_val 設定値文字列表現
+ * @param def_val
+ * {@.ja 設定値文字列表現}
+ * {@.en String}
*
- * @exception Exception 渡された文字列が構文解析可能な byte 値を含まない。
+ * @exception Exception
+ * {@.ja 渡された文字列が構文解析可能な byte 値を含まない。}
+ * {@.en The character string of the argument is not good at parsing.}
+ *
*/
public void stringFrom(String def_val) throws Exception {
value = new Byte(def_val);
}
/**
- * <p>設定値を取得します。</p>
+ * {@.ja 設定値を取得する}
+ * {@.en Gets a set value.}
*
- * @return 設定値
+ * @return
+ * {@.ja 設定値}
+ * {@.en Set value}
*/
public byte getValue(){
return value.byteValue();
}
/**
- * <p>設定値を文字列に変換して取得します。</p>
+ * {@.ja 設定値を文字列に変換して取得する}
+ * {@.en Converts a set value into the character string and gets it. }
*
- * @return 設定値文字列表現
+ * @return
+ * {@.ja 設定値文字列表現}
+ * {@.en Converted character string}
*/
public String toString(){
return String.valueOf(value);
}
+ /**
+ * {@.ja InputStreamのデータを読み込む}
+ * {@.en Reads data from InputStream.}
+ *
+ * @param i
+ * {@.ja InputStream}
+ * {@.en InputStream}
+ */
public void _read (org.omg.CORBA.portable.InputStream i)
{
byte data = i.read_octet();
value = new Byte(data);
}
+ /**
+ * {@.ja OutputStreamへデータを書き込む}
+ * {@.en Writes data in OutputStream}
+ *
+ * @param o
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
public void _write (org.omg.CORBA.portable.OutputStream o)
{
o.write_octet(value.byteValue());
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/CORBA_SeqUtil.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/CORBA_SeqUtil.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/CORBA_SeqUtil.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,48 +1,66 @@
package jp.go.aist.rtm.RTC.util;
-import org.omg.CORBA.ORB;
import java.util.Vector;
-import _SDOPackage.NVListHolder;
-import _SDOPackage.NameValue;
-import _SDOPackage.Organization;
-import _SDOPackage.OrganizationListHolder;
-import _SDOPackage.SDO;
-import _SDOPackage.SDOListHolder;
-import _SDOPackage.ServiceProfile;
-import _SDOPackage.ServiceProfileListHolder;
+import org.omg.CORBA.ORB;
+
import RTC.ComponentProfile;
import RTC.ComponentProfileListHolder;
import RTC.ConnectorProfile;
import RTC.ConnectorProfileListHolder;
import RTC.ExecutionContext;
-import RTC.ExecutionContextHelper;
import RTC.ExecutionContextListHolder;
import RTC.ExecutionContextService;
import RTC.ExecutionContextServiceListHolder;
import RTC.PortService;
import RTC.PortInterfaceProfile;
import RTC.PortInterfaceProfileListHolder;
-import RTC.PortServiceListHolder;
import RTC.PortProfile;
import RTC.PortProfileListHolder;
+import RTC.PortServiceListHolder;
+import RTC.RTCListHolder;
import RTC.RTObject;
-import RTC.RTCListHolder;
+import _SDOPackage.NVListHolder;
+import _SDOPackage.NameValue;
+import _SDOPackage.Organization;
+import _SDOPackage.OrganizationListHolder;
+import _SDOPackage.SDO;
+import _SDOPackage.SDOListHolder;
+import _SDOPackage.ServiceProfile;
+import _SDOPackage.ServiceProfileListHolder;
-import jp.go.aist.rtm.RTC.Manager;
-
/**
- * <p>CORBAシーケンスに対するユーティリティクラスです。各メソッドはスレッドセーフではないため、
- * 必要に応じて呼び出し側で適切に排他処理を行ってください。</p>
+ * {@.ja CORBAシーケンスに対するユーティリティクラス。}
+ * {@.en Utility class to CORBA sequence.}
+ * <p>
+ * {@.ja 各メソッドはスレッドセーフではないため、
+ * 必要に応じて呼び出し側で適切に排他処理を行ってください。}
+ * {@.en Each method is not thread-safe.
+ * Please do the exclusive operation appropriately if necessary
+ * on the call side.}
*/
public class CORBA_SeqUtil {
/**
- * <p>指定されたシーケンス内の各NameValueオブジェクト対して、順次、指定された操作を行います。</p>
+ * {@.ja CORBA sequence に対して functor を適用する。}
+ * {@.en Apply the functor to all CORBA sequence elements}
+ *
+ * <p>
+ * {@.ja 指定されたシーケンス内の各NameValueオブジェクト対して、順次、
+ * 指定された操作を行う。}
+ * {@.en Apply the given functor to the given CORBA sequence.}
*
- * @param seq NameValueオブジェクトシーケンスを内部に保持するNVListHolderオブジェクト
- * @param func 各NameValueオブジェクトに適用するoperatorFuncオブジェクト
- * @return 引数で指定されたoperatorFuncオブジェクト
+ * @param seq
+ * {@.ja NameValueオブジェクトシーケンスを
+ * 内部に保持するNVListHolderオブジェクト}
+ * {@.en NVListHolder object that hold NameValue object sequence
+ * internally.}
+ * @param func
+ * {@.ja 各NameValueオブジェクトに適用するoperatorFuncオブジェクト}
+ * {@.en OperatorFunc object applied to each NameValue object}
+ * @return
+ * {@.ja 引数で指定されたoperatorFuncオブジェクト}
+ * {@.en OperatorFunc object specified by argument}
*/
public static operatorFunc for_each(NVListHolder seq, operatorFunc func) {
if( seq.value == null ) return null;
@@ -54,11 +72,25 @@
}
/**
- * <p>指定されたシーケンス内の各ConnectorProfileオブジェクトに対して、順次、指定された操作を行います。</p>
+ * {@.ja CORBA sequence に対して functor を適用する。}
+ * {@.en Apply the functor to all CORBA sequence elements}
+ *
+ * <p>
+ * {@.ja 指定されたシーケンス内の各ConnectorProfileオブジェクト対して、
+ * 順次、指定された操作を行う。}
+ * {@.en Apply the given functor to the given CORBA sequence.}
*
- * @param seq ConnectorProfileオブジェクトシーケンスを内部に保持するConnectorProfileListHolderオブジェクト
- * @param func 各ConnectorProfileオブジェクトに適用するoperatorFuncオブジェクト
- * @return 引数で指定されたoperatorFuncオブジェクト
+ * @param seq
+ * {@.ja ConnectorProfileオブジェクトシーケンスを
+ * 内部に保持するConnectorProfileListHolderオブジェクト}
+ * {@.en ConnectorProfileHolder object that hold ConnectorProfile
+ * object sequence internally.}
+ * @param func
+ * {@.ja 各ConnectorProfileオブジェクトに適用するoperatorFuncオブジェクト}
+ * {@.en OperatorFunc object applied to each ConnectorProfile object}
+ * @return
+ * {@.ja 引数で指定されたoperatorFuncオブジェクト}
+ * {@.en OperatorFunc object specified by argument}
*/
public static operatorFunc for_each(ConnectorProfileListHolder seq, operatorFunc func) {
if( seq.value == null ) return null;
@@ -71,11 +103,28 @@
/**
- * <p>指定されたシーケンス内の各ExecutionContextServiceオブジェクトに対して、順次、指定された操作を行います。</p>
+ * {@.ja CORBA sequence に対して functor を適用する。}
+ * {@.en Apply the functor to all CORBA sequence elements}
+ *
+ * <p>
+ * {@.ja 指定されたシーケンス内の各ExecutionContextServiceオブジェクトに
+ * 対して、順次、指定された操作を行う。}
+ * {@.en Apply the given functor to the given CORBA sequence.}
*
- * @param seq ExecutionContextServiceオブジェクトシーケンスを内部に保持するExecutionContextServiceListHolderオブジェクト
- * @param func 各ExecutionContextServiceオブジェクトに適用するoperatorFuncオブジェクト
- * @return 引数で指定されたoperatorFuncオブジェクト
+ * @param seq
+ * {@.ja ExecutionContextServiceオブジェクトシーケンスを
+ * 内部に保持するExecutionContextServiceListHolderオブジェクト}
+ * {@.en ExecutionContextServiceListHolder object that hold
+ * ExecutionContextService object sequence internally.}
+ *
+ * @param func
+ * {@.ja 各ExecutionContextServiceオブジェクトに適用する
+ * operatorFuncオブジェクト}
+ * {@.en OperatorFunc object applied to each ExecutionContextService
+ * object}
+ * @return
+ * {@.ja 引数で指定されたoperatorFuncオブジェクト}
+ * {@.en OperatorFunc object specified by argument}
*/
public static operatorFunc for_each(ExecutionContextServiceListHolder seq, operatorFunc func) {
if( seq.value == null ) return null;
@@ -87,12 +136,30 @@
}
/**
- * <p>指定されたシーケンス内の各PortServiceListHolderオブジェクトに対して、順次、指定された操作を行います。</p>
+ * {@.ja CORBA sequence に対して functor を適用する。}
+ * {@.en Apply the functor to all CORBA sequence elements}
+ *
+ * <p>
+ * {@.ja 指定されたシーケンス内の各PortServiceListHolderオブジェクトに
+ * 対して、順次、指定された操作を行う。}
+ * {@.en Apply the given functor to the given CORBA sequence.}
*
- * @param seq PortServiceListHolderオブジェクトシーケンスを内部に保持するPortServiceListHolderオブジェクト
- * @param func 各PortServiceListHolderオブジェクトに適用するoperatorFuncオブジェクト
- * @return 引数で指定されたoperatorFuncオブジェクト
+ * @param seq
+ * {@.ja PortServiceListHolderオブジェクトシーケンスを
+ * 内部に保持するPortServiceListHolderオブジェクト}
+ * {@.en PortServiceListHolder object that hold
+ * PortServiceListHolder object sequence internally.}
*
+ * @param func
+ * {@.ja 各PortServiceListHolderオブジェクトに適用する
+ * operatorFuncオブジェクト}
+ * {@.en OperatorFunc object applied to each PortServiceListHolder
+ * object}
+ *
+ * @return
+ * {@.ja 引数で指定されたoperatorFuncオブジェクト}
+ * {@.en OperatorFunc object specified by argument}
+ *
*/
public static operatorFunc for_each(PortServiceListHolder seq, operatorFunc func) {
if( seq.value == null ) return null;
@@ -104,12 +171,25 @@
}
/**
- * <p>指定されたシーケンス内の指定条件に合致するNameValueオブジェクトのインデクスを取得します。</p>
+ * {@.ja 指定されたシーケンス内の指定条件に合致するNameValueオブジェクトの
+ * インデクスを取得する。}
+ * {@.en Return the index of CORBA sequence element that functor matches}
*
- * @param seq NameValueオブジェクトシーケンスを保持するNVListHolderオブジェクト
- * @param func 合致判定を行うequalFunctorオブジェクト
- * @return 合致するNameValueオブジェクトが存在する場合は、そのオブジェクトのシーケンス内でのインデクスを返します。<br />
- * 合致するNameValueオブジェクトが存在しない場合は、-1を返します。
+ * @param seq
+ * {@.ja NameValueオブジェクトシーケンスを保持する
+ * NVListHolderオブジェクト}
+ * {@.en NVListHolderHolder object that hold
+ * NameValue object sequence internally.}
+ * @param func
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en equalFunctor object that does agreement judgment}
+ * @return
+ * {@.ja 合致するNameValueオブジェクトが存在する場合は、
+ * そのオブジェクトのシーケンス内でのインデクスを返す。
+ * 合致するNameValueオブジェクトが存在しない場合は、-1を返す。}
+ * {@.en When the agreeing NameValue object exists,
+ * the index in the sequence of the object is returned.
+ * When the agreeing NameValue object doesn't exist, -1 is returned.}
*/
public static int find(final NVListHolder seq, equalFunctor func) {
if( seq.value == null ) return -1;
@@ -123,12 +203,25 @@
}
/**
- * <p>指定されたシーケンス内の指定条件に合致するPortオブジェクトのインデクスを取得します。</p>
+ * {@.ja 指定されたシーケンス内の指定条件に合致するPortオブジェクトの
+ * インデクスを取得する。}
+ * {@.en Return the index of CORBA sequence element that functor matches}
*
- * @param seq Portオブジェクトシーケンスを保持するPortServiceListHolderオブジェクト
- * @param func 合致判定を行うequalFunctorオブジェクト
- * @return 合致するPortオブジェクトが存在する場合は、そのオブジェクトのシーケンス内でのインデクスを返します。<br />
- * 合致するPortオブジェクトが存在しない場合は、-1を返します。
+ * @param seq
+ * {@.ja Portオブジェクトシーケンスを保持する
+ * PortServiceListHolderオブジェクト}
+ * {@.en PortServiceListHolder object that hold
+ * Port object sequence internally.}
+ * @param func
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en equalFunctor object that does agreement judgment}
+ * @return
+ * {@.ja 合致するPortオブジェクトが存在する場合は、
+ * そのオブジェクトのシーケンス内でのインデクスを返す。
+ * 合致するPortオブジェクトが存在しない場合は、-1を返す。}
+ * {@.en When the agreeing Port object exists,
+ * the index in the sequence of the object is returned.
+ * When the agreeing Port object doesn't exist, -1 is returned.}
*/
public static int find(final PortServiceListHolder seq, equalFunctor func) {
if( seq.value == null ) return -1;
@@ -142,12 +235,26 @@
}
/**
- * <p>指定されたシーケンス内の指定条件に合致するPortInterfaceProfileオブジェクトのインデクスを取得します。</p>
+ * {@.ja 指定されたシーケンス内の指定条件に合致する
+ * PortInterfaceProfileオブジェクトのインデクスを取得する。}
+ * {@.en Return the index of CORBA sequence element that functor matches}
*
- * @param seq PortInterfaceProfileオブジェクトシーケンスを保持するPortInterfaceProfileListHolderオブジェクト
- * @param func 合致判定を行うequalFunctorオブジェクト
- * @return 合致するPortInterfaceProfileオブジェクトが存在する場合は、そのオブジェクトのシーケンス内でのインデクスを返します。<br />
- * 合致するPortInterfaceProfileオブジェクトが存在しない場合は、-1を返します。
+ * @param seq
+ * {@.ja PortInterfaceProfileオブジェクトシーケンスを保持する
+ * PortInterfaceProfileListHolderオブジェクト}
+ * {@.en PortInterfaceProfileListHolder object that hold
+ * PortInterfaceProfile object sequence internally.}
+ * @param func
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en equalFunctor object that does agreement judgment}
+ * @return
+ * {@.ja 合致するPortInterfaceProfileオブジェクトが存在する場合は、
+ * そのオブジェクトのシーケンス内でのインデクスを返す。
+ * 合致するPortInterfaceProfileオブジェクトが存在しない場合は、-1を返す。}
+ * {@.en When the agreeing PortInterfaceProfile object exists,
+ * the index in the sequence of the object is returned.
+ * When the agreeing PortInterfaceProfile object doesn't exist,
+ * -1 is returned.}
*/
public static int find(final PortInterfaceProfileListHolder seq, equalFunctor func) {
if( seq.value == null ) return -1;
@@ -161,12 +268,26 @@
}
/**
- * <p>指定されたシーケンス内の指定条件に合致するConnectorProfileオブジェクトのインデクスを取得します。</p>
+ * {@.ja 指定されたシーケンス内の指定条件に合致する
+ * ConnectorProfileオブジェクトのインデクスを取得する。}
+ * {@.en Return the index of CORBA sequence element that functor matches}
*
- * @param seq ConnectorProfileオブジェクトシーケンスを保持するConnectorProfileListHolderオブジェクト
- * @param f 合致判定を行うequalFunctorオブジェクト
- * @return 合致するConnectorProfileオブジェクトが存在する場合は、そのオブジェクトのシーケンス内でのインデクスを返します。<br />
- * 合致するConnectorProfileオブジェクトが存在しない場合は、-1を返します。
+ * @param seq
+ * {@.ja ConnectorProfileオブジェクトシーケンスを保持する
+ * ConnectorProfileListHolderオブジェクト}
+ * {@.en ConnectorProfileListHolder object that hold
+ * ConnectorProfile object sequence internally.}
+ * @param f
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en equalFunctor object that does agreement judgment}
+ * @return
+ * {@.ja 合致するConnectorProfileオブジェクトが存在する場合は、
+ * そのオブジェクトのシーケンス内でのインデクスを返す。
+ * 合致するConnectorProfileオブジェクトが存在しない場合は、-1を返す。}
+ * {@.en When the agreeing ConnectorProfile object exists,
+ * the index in the sequence of the object is returned.
+ * When the agreeing ConnectorProfile object doesn't exist,
+ * -1 is returned.}
*/
public static int find(final ConnectorProfileListHolder seq, equalFunctor f) {
if( seq.value == null ) return -1;
@@ -180,12 +301,27 @@
}
/**
- * <p>指定されたシーケンス内の指定条件に合致するExecutionContextServiceオブジェクトのインデクスを取得します。</p>
+ * {@.ja 指定されたシーケンス内の指定条件に合致する
+ * ExecutionContextServiceオブジェクトのインデクスを取得する。}
+ * {@.en Return the index of CORBA sequence element that functor matches}
*
- * @param seq ExecutionContextServiceオブジェクトシーケンスを保持するExecutionContextServiceListHolderオブジェクト
- * @param f 合致判定を行うequalFunctorオブジェクト
- * @return 合致するExecutionContextServiceオブジェクトが存在する場合は、そのオブジェクトのシーケンス内でのインデクスを返します。<br />
- * 合致するConnectorProfileオブジェクトが存在しない場合は、-1を返します。
+ * @param seq
+ * {@.ja ExecutionContextServiceオブジェクトシーケンスを保持する
+ * ExecutionContextServiceListHolderオブジェクト}
+ * {@.en ExecutionContextServiceListHolder object that hold
+ * ExecutionContextService object sequence internally.}
+ * @param f
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en equalFunctor object that does agreement judgment}
+ * @return
+ * {@.ja 合致するExecutionContextServiceオブジェクトが存在する場合は、
+ * そのオブジェクトのシーケンス内でのインデクスを返す。
+ * 合致するExecutionContextServiceオブジェクトが存在しない場合は、
+ * -1を返す。}
+ * {@.en When the agreeing ExecutionContextService object exists,
+ * the index in the sequence of the object is returned.
+ * When the agreeing ExecutionContextService object doesn't exist,
+ * -1 is returned.}
*/
public static int find(final ExecutionContextServiceListHolder seq, equalFunctor f) {
if( seq.value == null ) return -1;
@@ -199,7 +335,27 @@
}
/**
+ * {@.ja 指定されたシーケンス内の指定条件に合致する
+ * RTM.Managerオブジェクトのインデクスを取得する。}
+ * {@.en Return the index of CORBA sequence element that functor matches}
*
+ * @param seq
+ * {@.ja RTM.Managerオブジェクトシーケンスを保持する
+ * RTM.ManagerListHolderオブジェクト}
+ * {@.en RTM.ManagerListHolder object that hold
+ * RTM.Manager object sequence internally.}
+ * @param f
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en equalFunctor object that does agreement judgment}
+ * @return
+ * {@.ja 合致するRTM.Managerオブジェクトが存在する場合は、
+ * そのオブジェクトのシーケンス内でのインデクスを返す。
+ * 合致するRTM.Managerオブジェクトが存在しない場合は、
+ * -1を返す。}
+ * {@.en When the agreeing RTM.Manager object exists,
+ * the index in the sequence of the object is returned.
+ * When the agreeing RTM.Manager object doesn't exist,
+ * -1 is returned.}
*/
public static int find(final RTM.ManagerListHolder seq, equalFunctor f) {
if( seq.value == null ) return -1;
@@ -213,7 +369,27 @@
}
/**
+ * {@.ja 指定されたシーケンス内の指定条件に合致する
+ * RTC.RTCオブジェクトのインデクスを取得する。}
+ * {@.en Return the index of CORBA sequence element that functor matches}
*
+ * @param seq
+ * {@.ja RTC.RTCオブジェクトシーケンスを保持する
+ * RTC.RTCListHolderオブジェクト}
+ * {@.en RTC.RTCListHolder object that hold
+ * RTC.RTC object sequence internally.}
+ * @param f
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en equalFunctor object that does agreement judgment}
+ * @return
+ * {@.ja 合致するRTC.RTCオブジェクトが存在する場合は、
+ * そのオブジェクトのシーケンス内でのインデクスを返す。
+ * 合致するRTC.RTCオブジェクトが存在しない場合は、
+ * -1を返す。}
+ * {@.en When the agreeing RTC.RTC object exists,
+ * the index in the sequence of the object is returned.
+ * When the agreeing RTC.RTC object doesn't exist,
+ * -1 is returned.}
*/
public static int find(final RTC.RTCListHolder seq, equalFunctor f) {
if( seq.value == null ) return -1;
@@ -225,11 +401,18 @@
return -1;
}
+
/**
- * <p>シーケンスの末尾にNameValueオブジェクトを追加します。</p>
- *
- * @param seq 追加先NameValueオブジェクトシーケンスを保持するNVListHolderオブジェクト
- * @param elem 追加するNameValueオブジェクト
+ * {@.ja シーケンスの末尾にNameValueオブジェクトを追加する。}
+ * {@.en Adds NameValue at the end of CORBA sequence.}
+ *
+ * @param seq
+ * {@.ja NameValueオブジェクトを追加するNVListHolderオブジェクト}
+ * {@.en NVListHolder object that adds NameValue object.}
+ * @param elem
+ * {@.ja 追加するNameValueオブジェクト}
+ * {@.en NameValue to be added to the CORBA sequence.}
+ *
*/
public static void push_back(NVListHolder seq, NameValue elem) {
int len;
@@ -247,10 +430,17 @@
}
/**
- * <p>シーケンスの末尾にServiceProfileオブジェクトを追加します。</p>
- *
- * @param seq 追加先ServiceProfileオブジェクトシーケンスを保持するServiceProfileListHolderオブジェクト
- * @param elem 追加するServiceProfileオブジェクト
+ * {@.ja シーケンスの末尾にServiceProfileオブジェクトを追加する。}
+ * {@.en Adds ServiceProfile at the end of CORBA sequence.}
+ *
+ * @param seq
+ * {@.ja ServiceProfileオブジェクトを追加する
+ * ServiceProfileListHolderオブジェクト}
+ * {@.en ServiceProfileListHolder object that adds ServiceProfile object.}
+ * @param elem
+ * {@.ja 追加するServiceProfileオブジェクト}
+ * {@.en ServiceProfile to be added to the CORBA sequence.}
+ *
*/
public static void push_back(ServiceProfileListHolder seq, ServiceProfile elem) {
int len;
@@ -268,10 +458,17 @@
}
/**
- * <p>シーケンスの末尾にOrganizationオブジェクトを追加します。</p>
- *
- * @param seq 追加先Organizationオブジェクトシーケンスを保持するOrganizationListHolderオブジェクト
- * @param elem 追加するOrganizationオブジェクト
+ * {@.ja シーケンスの末尾にOrganizationオブジェクトを追加する。}
+ * {@.en Adds Organization at the end of CORBA sequence.}
+ *
+ * @param seq
+ * {@.ja Organizationオブジェクトを追加する
+ * OrganizationListHolderオブジェクト}
+ * {@.en OrganizationListHolder object that adds Organization object.}
+ * @param elem
+ * {@.ja 追加するOrganizationオブジェクト}
+ * {@.en Organization to be added to the CORBA sequence.}
+ *
*/
public static void push_back(OrganizationListHolder seq, Organization elem) {
int len;
@@ -289,10 +486,18 @@
}
/**
- * <p>シーケンスの末尾にExecutionContextServiceオブジェクトを追加します。</p>
- *
- * @param seq 追加先ExecutionContextServiceオブジェクトシーケンスを保持するExecutionContextServiceListHolderオブジェクト
- * @param elem 追加するExecutionContextServiceオブジェクト
+ * {@.ja シーケンスの末尾にExecutionContextServiceオブジェクトを追加する。}
+ * {@.en Adds ExecutionContextService at the end of CORBA sequence.}
+ *
+ * @param seq
+ * {@.ja ExecutionContextServiceオブジェクトを追加する
+ * ExecutionContextServiceListHolderオブジェクト}
+ * {@.en ExecutionContextServiceListHolder object that adds
+ * ExecutionContextService object.}
+ * @param elem
+ * {@.ja 追加するExecutionContextServiceオブジェクト}
+ * {@.en ExecutionContextService to be added to the CORBA sequence.}
+ *
*/
public static void push_back(ExecutionContextServiceListHolder seq, ExecutionContextService elem) {
int len;
@@ -310,10 +515,18 @@
}
/**
- * <p>シーケンスの末尾にPortServiceオブジェクトを追加します。</p>
- *
- * @param seq 追加先PortServiceオブジェクトシーケンスを保持するPortServiceListHolderオブジェクト
- * @param elem 追加するPortServiceオブジェクト
+ * {@.ja シーケンスの末尾にPortServiceオブジェクトを追加する。}
+ * {@.en Adds PortService at the end of CORBA sequence.}
+ *
+ * @param seq
+ * {@.ja PortServiceオブジェクトを追加する
+ * PortServiceListHolderオブジェクト}
+ * {@.en PortServiceListHolder object that adds
+ * PortService object.}
+ * @param elem
+ * {@.ja 追加するPortServiceオブジェクト}
+ * {@.en PortService to be added to the CORBA sequence.}
+ *
*/
public static void push_back(PortServiceListHolder seq, PortService elem) {
int len;
@@ -331,10 +544,18 @@
}
/**
- * <p>シーケンスの末尾にConnectorProfileオブジェクトを追加します。</p>
- *
- * @param seq 追加先ConnectorProfileオブジェクトシーケンスを保持するConnectorProfileListHolderオブジェクト
- * @param elem 追加するConnectorProfileオブジェクト
+ * {@.ja シーケンスの末尾にConnectorProfileオブジェクトを追加する。}
+ * {@.en Adds ConnectorProfile at the end of CORBA sequence.}
+ *
+ * @param seq
+ * {@.ja ConnectorProfileオブジェクトを追加する
+ * ConnectorProfileListHolderオブジェクト}
+ * {@.en ConnectorProfileListHolder object that adds
+ * ConnectorProfile object.}
+ * @param elem
+ * {@.ja 追加するConnectorProfileオブジェクト}
+ * {@.en ConnectorProfile to be added to the CORBA sequence.}
+ *
*/
public static void push_back(ConnectorProfileListHolder seq, ConnectorProfile elem) {
int len;
@@ -352,10 +573,18 @@
}
/**
- * <p>シーケンスの末尾にPortInterfaceProfileオブジェクトを追加します。</p>
- *
- * @param seq 追加先PortInterfaceProfileオブジェクトシーケンスを保持するPortInterfaceProfileListHolderオブジェクト
- * @param elem 追加するPortInterfaceProfileオブジェクト
+ * {@.ja シーケンスの末尾にPortInterfaceProfileオブジェクトを追加する。}
+ * {@.en Adds PortInterfaceProfile at the end of CORBA sequence.}
+ *
+ * @param seq
+ * {@.ja PortInterfaceProfileオブジェクトを追加する
+ * PortInterfaceProfileListHolderオブジェクト}
+ * {@.en PortInterfaceProfileListHolder object that adds
+ * PortInterfaceProfile object.}
+ * @param elem
+ * {@.ja 追加するPortInterfaceProfileオブジェクト}
+ * {@.en PortInterfaceProfile to be added to the CORBA sequence.}
+ *
*/
public static void push_back(PortInterfaceProfileListHolder seq, PortInterfaceProfile elem) {
int len;
@@ -373,10 +602,18 @@
}
/**
- * <p>シーケンスの末尾にPortProfileオブジェクトを追加します。</p>
- *
- * @param seq 追加先PortProfileオブジェクトシーケンスを保持するPortProfileListHolderオブジェクト
- * @param elem 追加するPortProfileオブジェクト
+ * {@.ja シーケンスの末尾にPortProfileオブジェクトを追加する。}
+ * {@.en Adds PortInterfaceProfile at the end of CORBA sequence.}
+ *
+ * @param seq
+ * {@.ja PortProfileオブジェクトを追加する
+ * PortProfileListHolderオブジェクト}
+ * {@.en PortProfileListHolder object that adds
+ * PortProfile object.}
+ * @param elem
+ * {@.ja 追加するPortProfileオブジェクト}
+ * {@.en PortProfile to be added to the CORBA sequence.}
+ *
*/
public static void push_back(PortProfileListHolder seq, PortProfile elem) {
int len;
@@ -394,11 +631,18 @@
}
/**
- * <p>シーケンスの末尾にExecutionContextオブジェクトを追加します。</p>
- *
- * @param seq 追加先ExecutionContextオブジェクトシーケンスを保持するExecutionContextListHolderオブジェクト
- * @param elem 追加するExecutionContextオブジェクト
+ * {@.ja シーケンスの末尾にExecutionContextオブジェクトを追加する。}
+ * {@.en Adds ExecutionContext at the end of CORBA sequence.}
*
+ * @param seq
+ * {@.ja ExecutionContextオブジェクトを追加する
+ * ExecutionContextListHolderオブジェクト}
+ * {@.en ExecutionContextListHolder object that adds
+ * ExecutionContext object.}
+ * @param elem
+ * {@.ja 追加するExecutionContextオブジェクト}
+ * {@.en ExecutionContext to be added to the CORBA sequence.}
+ *
*/
public static void push_back(ExecutionContextListHolder seq, ExecutionContext elem) {
int len;
@@ -416,11 +660,18 @@
}
/**
- * <p>シーケンスの末尾にSDOオブジェクトを追加します。</p>
- *
- * @param seq 追加先SDOオブジェクトシーケンスを保持するSDOListHolderオブジェクト
- * @param elem 追加するSDOオブジェクト
+ * {@.ja シーケンスの末尾にSDOオブジェクトを追加する。}
+ * {@.en Adds SDO at the end of CORBA sequence.}
*
+ * @param seq
+ * {@.ja SDOオブジェクトを追加する
+ * SDOListHolderオブジェクト}
+ * {@.en SDOListHolder object that adds
+ * SDO object.}
+ * @param elem
+ * {@.ja 追加するSDOオブジェクト}
+ * {@.en SDO to be added to the CORBA sequence.}
+ *
*/
public static void push_back(SDOListHolder seq, SDO elem) {
int len;
@@ -438,11 +689,18 @@
}
/**
- * <p>シーケンスの末尾にComponentProfileオブジェクトを追加します。</p>
- *
- * @param seq 追加先ComponentProfileオブジェクトシーケンスを保持するComponentProfileListHolderオブジェクト
- * @param elem 追加するComponentProfileオブジェクト
+ * {@.ja シーケンスの末尾にComponentProfileオブジェクトを追加する。}
+ * {@.en Adds ComponentProfile at the end of CORBA sequence.}
*
+ * @param seq
+ * {@.ja ComponentProfileオブジェクトを追加する
+ * ComponentProfileListHolderオブジェクト}
+ * {@.en ComponentProfileListHolder object that adds
+ * ComponentProfile object.}
+ * @param elem
+ * {@.ja 追加するComponentProfileオブジェクト}
+ * {@.en ComponentProfile to be added to the CORBA sequence.}
+ *
*/
public static void push_back(ComponentProfileListHolder seq, ComponentProfile elem) {
int len;
@@ -460,11 +718,18 @@
}
/**
- * <p>シーケンスの末尾にRTObjectオブジェクトを追加します。</p>
- *
- * @param seq 追加先RTObjectオブジェクトシーケンスを保持するRTCListHolderオブジェクト
- * @param elem 追加するRTObjectオブジェクト
+ * {@.ja シーケンスの末尾にRTObjectオブジェクトを追加する。}
+ * {@.en Adds RTObject at the end of CORBA sequence.}
*
+ * @param seq
+ * {@.ja RTObjectオブジェクトを追加する
+ * RTCListHolderオブジェクト}
+ * {@.en RTCListHolder object that adds
+ * RTObject object.}
+ * @param elem
+ * {@.ja 追加するRTObjectオブジェクト}
+ * {@.en RTObject to be added to the CORBA sequence.}
+ *
*/
public static void push_back(RTCListHolder seq, RTObject elem) {
int len;
@@ -482,7 +747,18 @@
}
/**
+ * {@.ja シーケンスの末尾にRTM.Managerオブジェクトを追加する。}
+ * {@.en Adds RTM.Manager at the end of CORBA sequence.}
*
+ * @param seq
+ * {@.ja RTM.Managerオブジェクトを追加する
+ * RTM.ManagerListHolderオブジェクト}
+ * {@.en RTM.ManagerListHolder object that adds
+ * RTM.Manager object.}
+ * @param elem
+ * {@.ja 追加するRTM.Managerオブジェクト}
+ * {@.en RTM.Manager to be added to the CORBA sequence.}
+ *
*/
public static void push_back(RTM.ManagerListHolder seq, RTM.Manager elem) {
int len;
@@ -500,10 +776,19 @@
}
/**
- * <p>シーケンスの末尾に、別のNameValueオブジェクトシーケンスを追加します。</p>
- *
- * @param seq1 追加先のNameValueオブジェクトシーケンスを保持するNVListHolderオブジェクト
- * @param seq2 追加するNameValueオブジェクトシーケンスを保持するNVListHolderオブジェクト
+ * {@.ja シーケンスの末尾に別のNameValueオブジェクトシーケンスを追加する。}
+ * {@.en Adds another NameValue object sequence
+ * to the end of the sequence.}
+ *
+ * @param seq1
+ * {@.ja 追加先のNameValueオブジェクトシーケンスを保持する
+ * NVListHolderオブジェクト}
+ * {@.en It is added to this NVListHolder object.}
+ * @param seq2
+ * {@.ja 追加するNameValueオブジェクトシーケンスを保持する
+ * NVListHolderオブジェクト}
+ * {@.en This NVListHolder object is added.}
+ *
*/
public static void push_back_list(NVListHolder seq1, NVListHolder seq2) {
int len1, len2;
@@ -529,10 +814,20 @@
}
/**
- * <p>シーケンスの末尾に、別の_SDOPackage.SDOオブジェクトシーケンスを追加します。</p>
- *
- * @param seq1 追加先の_SDOPackage.SDOオブジェクトシーケンスを保持するSDOListHolderオブジェクト
- * @param seq2 追加する_SDOPackage.SDOオブジェクトシーケンスを保持するSDOListHolderオブジェクト
+ * {@.ja シーケンスの末尾に別の_SDOPackage.SDOオブジェクトシーケンスを
+ * 追加する。}
+ * {@.en Adds another _SDOPackage.SDO object sequence
+ * to the end of the sequence.}
+ *
+ * @param seq1
+ * {@.ja 追加先の_SDOPackage.SDOオブジェクトシーケンスを保持する
+ * SDOListHolderオブジェクト}
+ * {@.en It is added to this SDOListHolder object.}
+ * @param seq2
+ * {@.ja 追加する_SDOPackage.SDOオブジェクトシーケンスを保持する
+ * SDOListHolderオブジェクト}
+ * {@.en This SDOListHolder object is added.}
+ *
*/
public static void push_back_list(SDOListHolder seq1, SDOListHolder seq2) {
int len1, len2;
@@ -558,8 +853,20 @@
}
/**
- *
+ * {@.ja シーケンスの末尾に別のRTM.ModuleProfileオブジェクトシーケンスを
+ * 追加する。}
+ * {@.en Adds another RTM.ModuleProfile object sequence
+ * to the end of the sequence.}
*
+ * @param seq1
+ * {@.ja 追加先のRTM.ModuleProfileオブジェクトシーケンスを保持する
+ * RTM.ModuleProfileListHolderオブジェクト}
+ * {@.en It is added to this RTM.ModuleProfileListHolder object.}
+ * @param seq2
+ * {@.ja 追加するRTM.ModuleProfileオブジェクトシーケンスを保持する
+ * RTM.ModuleProfileListHolderオブジェクト}
+ * {@.en This RTM.ModuleProfileListHolder object is added.}
+ *
*/
public static void push_back_list(RTM.ModuleProfileListHolder seq1,
RTM.ModuleProfileListHolder seq2) {
@@ -587,8 +894,20 @@
/**
- *
+ * {@.ja シーケンスの末尾に別のRTC.RTObjectオブジェクトシーケンスを
+ * 追加する。}
+ * {@.en Adds another RTC.RTObject object sequence
+ * to the end of the sequence.}
*
+ * @param seq1
+ * {@.ja 追加先のRTC.RTObjectオブジェクトシーケンスを保持する
+ * RTC.RTCListHolderオブジェクト}
+ * {@.en It is added to this RTC.RTCListHolder object.}
+ * @param seq2
+ * {@.ja 追加するRTC.RTObjectオブジェクトシーケンスを保持する
+ * RTC.RTCListHolderオブジェクト}
+ * {@.en This RTC.RTCListHolder object is added.}
+ *
*/
public static void push_back_list(RTC.RTCListHolder seq1,
RTC.RTCListHolder seq2) {
@@ -615,8 +934,20 @@
}
/**
- *
+ * {@.ja シーケンスの末尾に別のRTC.ComponentProfileオブジェクトシーケンスを
+ * 追加する。}
+ * {@.en Adds another RTC.ComponentProfile object sequence
+ * to the end of the sequence.}
*
+ * @param seq1
+ * {@.ja 追加先のRTC.ComponentProfileオブジェクトシーケンスを保持する
+ * RTC.ComponentProfileListHolderオブジェクト}
+ * {@.en It is added to this RTC.ComponentProfileListHolder object.}
+ * @param seq2
+ * {@.ja 追加するRTC.ComponentProfileオブジェクトシーケンスを保持する
+ * RTC.ComponentProfileListHolderオブジェクト}
+ * {@.en This RTC.ComponentProfileListHolder object is added.}
+ *
*/
public static void push_back_list(RTC.ComponentProfileListHolder seq1,
RTC.ComponentProfileListHolder seq2) {
@@ -643,11 +974,21 @@
}
/**
- * <p>シーケンス内の指定された位置にNameValueオブジェクトを挿入します。</p>
- *
- * @param seq 挿入先のNameValueオブジェクトシーケンスを保持するNVListHolderオブジェクト
- * @param elem 挿入するNameValueオブジェクト
- * @param index 挿入先を指すインデクス
+ * {@.ja シーケンス内の指定された位置にNameValueオブジェクトを挿入する。}
+ * {@.en Inserts the NameValue object in the specified position
+ * in the sequence.}
+ *
+ * @param seq
+ * {@.ja 挿入先のNameValueオブジェクトシーケンスを保持する
+ * NVListHolderオブジェクト}
+ * {@.en NVListHolder object.}
+ * @param elem
+ * {@.ja 挿入するNameValueオブジェクト}
+ * {@.en NameValue object}
+ * @param index
+ * {@.ja 挿入先を指すインデクス}
+ * {@.en Index that indicates insertion destination}
+ *
*/
public static void insert(NVListHolder seq, NameValue elem, int index) {
int len;
@@ -672,28 +1013,48 @@
}
/**
- * <p>シーケンス内の先頭NameValueオブジェクトを取得します。</p>
+ * {@.ja シーケンス内の先頭NameValueオブジェクトを取得する}
+ * {@.en Get the front element of the CORBA sequence}
+ *
+ * @param seq
+ * {@.ja 要素を取得する CORBA sequence}
+ * {@.en CORBA sequence which acquires an element}
*
- * @return シーケンス内の先頭NameValueオブジェクト
+ * @return
+ * {@.ja シーケンス内の先頭NameValueオブジェクト}
+ * {@.en An acquisition element}
*/
public static NameValue front(NVListHolder seq) {
return seq.value[0];
}
/**
- * <p>シーケンス内の末尾NameValueオブジェクトを取得します。</p>
+ * {@.ja シーケンス内の末尾NameValueオブジェクトを取得する}
+ * {@.en Get the last element of the CORBA sequence}
*
- * @return シーケンス内の末尾NameValueオブジェクト
+ * @param seq
+ * {@.ja 要素を取得する CORBA sequence}
+ * {@.en The CORBA sequence to be get the element}
+ * @return
+ * {@.ja シーケンス内の末尾NameValueオブジェクト}
+ * {@.en An acquisition element}
+ *
*/
public static NameValue back(NVListHolder seq) {
return seq.value[seq.value.length - 1];
}
/**
- * <p>シーケンス内の指定された位置の要素を削除します。</p>
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
*
- * @param seq 削除対象のNameValueオブジェクトシーケンスを保持するNVListHolderオブジェクト
- * @param index 削除要素のシーケンス内インデクス
+ * @param seq
+ * {@.ja 削除対象のNameValueオブジェクトシーケンスを保持する
+ * NVListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(NVListHolder seq, int index) {
if( seq.value == null ) return;
@@ -710,10 +1071,16 @@
}
/**
- * <p>シーケンス内の指定された位置の要素を削除します。</p>
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
*
- * @param seq 削除対象の_SDOPackage.SDOオブジェクトシーケンスを保持するSDOListHolderオブジェクト
- * @param index 削除要素のシーケンス内インデクス
+ * @param seq
+ * {@.ja 削除対象の_SDOPackage.SDOオブジェクトシーケンスを保持する
+ * SDOListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(SDOListHolder seq, int index) {
if( seq.value == null ) return;
@@ -730,10 +1097,16 @@
}
/**
- * <p>シーケンス内の指定された位置の要素を削除します。</p>
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
*
- * @param seq 削除対象のServiceProfileオブジェクトシーケンスを保持するServiceProfileListHolderオブジェクト
- * @param index 削除要素のシーケンス内インデクス
+ * @param seq
+ * {@.ja 削除対象のServiceProfileオブジェクトシーケンスを保持する
+ * ServiceProfileListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(ServiceProfileListHolder seq, int index) {
if( seq.value == null ) return;
@@ -750,10 +1123,16 @@
}
/**
- * <p>シーケンス内の指定された位置の要素を削除します。</p>
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
*
- * @param seq 削除対象のOrganizationオブジェクトシーケンスを保持するOrganizationListHolderオブジェクト
- * @param index 削除要素のシーケンス内インデクス
+ * @param seq
+ * {@.ja 削除対象のOrganizationオブジェクトシーケンスを保持する
+ * OrganizationListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(OrganizationListHolder seq, int index) {
if( seq.value == null ) return;
@@ -770,10 +1149,16 @@
}
/**
- * <p>シーケンス内の指定された位置の要素を削除します。</p>
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
*
- * @param seq 削除対象のPortServiceオブジェクトシーケンスを保持するPortServiceListHolderオブジェクト
- * @param index 削除要素のシーケンス内インデクス
+ * @param seq
+ * {@.ja 削除対象のPortServiceオブジェクトシーケンスを保持する
+ * PortServiceListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(PortServiceListHolder seq, int index) {
if( seq.value == null ) return;
@@ -790,10 +1175,16 @@
}
/**
- * <p>シーケンス内の指定された位置の要素を削除します。</p>
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
*
- * @param seq 削除対象のConnectorProfileオブジェクトシーケンスを保持するConnectorProfileListHolderオブジェクト
- * @param index 削除要素のシーケンス内インデクス
+ * @param seq
+ * {@.ja 削除対象のConnectorProfileオブジェクトシーケンスを保持する
+ * ConnectorProfileListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(ConnectorProfileListHolder seq, int index) {
if( seq.value == null ) return;
@@ -810,10 +1201,16 @@
}
/**
- * <p>シーケンス内の指定された位置の要素を削除します。</p>
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
*
- * @param seq 削除対象のPortInterfaceProfileオブジェクトシーケンスを保持するPortInterfaceProfileListHolderオブジェクト
- * @param index 削除要素のシーケンス内インデクス
+ * @param seq
+ * {@.ja 削除対象のPortInterfaceProfileオブジェクトシーケンスを保持する
+ * PortInterfaceProfileListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(PortInterfaceProfileListHolder seq, int index) {
if( seq.value == null ) return;
@@ -830,11 +1227,16 @@
}
/**
- * <p>シーケンス内の指定された位置の要素を削除します。</p>
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
*
- * @param seq 削除対象のExecutionContextServiceオブジェクトシーケンスを保持するExecutionContextServiceListHolderオブジェクト
- * @param index 削除要素のシーケンス内インデクス
- *
+ * @param seq
+ * {@.ja 削除対象のExecutionContextServiceオブジェクトシーケンスを保持する
+ * ExecutionContextServiceListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(ExecutionContextServiceListHolder seq, int index) {
if ( seq.value == null ) return;
@@ -851,8 +1253,16 @@
}
/**
- *
- *
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
+ *
+ * @param seq
+ * {@.ja 削除対象のRTM.Managerオブジェクトシーケンスを保持する
+ * RTM.ManagerListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(RTM.ManagerListHolder seq, int index) {
if ( seq.value == null ) return;
@@ -869,8 +1279,16 @@
}
/**
- *
- *
+ * {@.ja シーケンス内の指定された位置の要素を削除する}
+ * {@.en Erase the element of the specified index}
+ *
+ * @param seq
+ * {@.ja 削除対象のRTC.RTObjectオブジェクトシーケンスを保持する
+ * RTC.RTCListHolderオブジェクト}
+ * {@.en The CORBA sequence to be get the element}
+ * @param index
+ * {@.ja 削除要素のシーケンス内インデクス}
+ * {@.en The index of the element to be removed}
*/
public static void erase(RTC.RTCListHolder seq, int index) {
if ( seq.value == null ) return;
@@ -886,10 +1304,16 @@
seq.value = newlist;
}
/**
- * <p>シーケンス内の条件に合致する要素を削除します。</p>
+ * {@.ja シーケンス内の条件に合致する要素を削除する}
+ * {@.en Remove an element of a sequence according to a predicate}
*
- * @param seq NameValueオブジェクトシーケンスを保持するNVListHolderオブジェクト
- * @param func 合致判定を行うequalFunctorオブジェクト
+ * @param seq
+ * {@.ja NameValueオブジェクトシーケンスを保持するi
+ * NVListHolderオブジェクト}
+ * {@.en target CORBA sequence}
+ * @param func
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en predicate which decides a sequence to remove}
*/
public static void erase_if(NVListHolder seq, equalFunctor func) {
@@ -901,10 +1325,16 @@
}
/**
- * <p>シーケンス内の条件に合致する要素を削除します。</p>
+ * {@.ja シーケンス内の条件に合致する要素を削除する}
+ * {@.en Remove an element of a sequence according to a predicate}
*
- * @param seq PortServiceオブジェクトシーケンスを保持するPortServiceListHolderオブジェクト
- * @param f 合致判定を行うequalFunctorオブジェクト
+ * @param seq
+ * {@.ja PortServiceオブジェクトシーケンスを保持するi
+ * PortServiceListHolderオブジェクト}
+ * {@.en target CORBA sequence}
+ * @param f
+ * {@.ja 合致判定を行うequalFunctorオブジェクト}
+ * {@.en predicate which decides a sequence to remove}
*/
public static void erase_if(PortServiceListHolder seq, equalFunctor f) {
@@ -916,18 +1346,27 @@
}
/**
- * <p>指定されたシーケンスの全要素を削除します。</p>
+ * {@.ja 指定されたシーケンスの全要素を削除}
+ * {@.en Erase all the elements of the CORBA sequence}
*
- * @param seq NameValueオブジェクトシーケンスを保持するNVListHolderオブジェクト
+ * @param seq
+ * {@.ja NameValueオブジェクトシーケンスを保持する
+ * NVListHolderオブジェクト}
+ * {@.en NVListHolder object}
*/
public static void clear(NVListHolder seq) {
seq.value = new NameValue[0];
}
/**
- * <p> refToVstring </p>
+ * {@.ja オブジェクトをIORに変換する}
+ * {@.en converts the object into IOR}
* @param objlist
+ * {@.ja オブジェクトのリスト}
+ * {@.en List of object}
* @return Vector<String>
+ * {@.ja List of object}
+ * {@.en List of character string}
*/
public static <T> Vector<String> refToVstring(final T[] objlist) {
Vector<String> iorlist = new Vector<String>();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/CallbackFunction.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/CallbackFunction.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/CallbackFunction.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,11 +1,13 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>タイマーから起動されるコールバック関数用インタフェースです。</p>
+ * {@.ja タイマーから起動されるコールバック関数用インタフェース}
+ * {@.en Interface for the callback function started when the timer ends. }
*/
public interface CallbackFunction {
/**
- * <p>タイマーから起動されるコールバックメソッドです。</p>
+ * {@.ja タイマーから起動されるコールバックメソッド}
+ * {@.en Method of the callback started from Timer.}
*/
public void doOperate();
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ConnectorProfileFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ConnectorProfileFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ConnectorProfileFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -5,14 +5,18 @@
import RTC.PortService;
/**
- * <p>Java用コネクタープロファイルファクトリの実装です。</p>
+ * {@.ja Java用コネクタープロファイルファクトリの実装}
+ * {@.en Implementation of connector profile factory}
*/
public class ConnectorProfileFactory {
/**
- * <p>コネクタープロファイルを生成します。</p>
+ * {@.ja コネクタープロファイルを生成する。}
+ * {@.en Creates ConnectorProfile.}
*
- * @return 生成されたConnectorProfileオブジェクト
+ * @return
+ * {@.ja 生成されたConnectorProfileオブジェクト}
+ * {@.en Created ConnectorProfle object}
*/
public static ConnectorProfile create() {
@@ -25,10 +29,15 @@
}
/**
- * <p>コネクタープロファイルの複製を生成します。</p>
+ * {@.ja コネクタープロファイルの複製を生成する。}
+ * {@.en Creates the clone of ConnectorProfile}
*
- * @param rhs ConnectorProfileオブジェクト
- * @return コピーされたConnectorProfileオブジェクト
+ * @param rhs
+ * {@.ja ConnectorProfileオブジェクト}
+ * {@.en ConnectorProfile object}
+ * @return
+ * {@.ja コピーされたConnectorProfileオブジェクト}
+ * {@.en Copied ConnectorProfile object}
*/
public static ConnectorProfile clone(final ConnectorProfile rhs) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/DataRef.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/DataRef.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/DataRef.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,19 +1,26 @@
package jp.go.aist.rtm.RTC.util;
-import org.omg.CORBA.Any;
/**
- * <p>データ参照を表現するクラスです。
- * あるメソッドに対してデータを引数で渡した際に、データオブジェクトそのものを操作して
- * 値を変更することができない場合で、メソッド内でデータ書き換えをする場合に有用です。</p>
+ * {@.ja データ参照を表現するクラス}
+ * {@.en Class that expresses data reference}
+ * <p>
+ * {@.ja あるメソッドに対してデータを引数で渡した際に、
+ * データオブジェクトそのものを操作して値を変更することができない場合で、
+ * メソッド内でデータ書き換えをする場合に有用である}
*
- * @param <T> データ型を指定します。
+ * @param <T>
+ * {@.ja データ型を指定}
+ * {@.en Data type}
*/
public class DataRef<T> {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param v 初期状態で割り当てるデータ
+ * @param v
+ * {@.ja 初期状態で割り当てるデータ}
+ * {@.en Data allocated in initial state}
*/
public DataRef(T v) {
@@ -21,13 +28,22 @@
}
/**
- * <p>等価演算子です。引数にDataRef型オブジェクトが指定された場合には、
- * それに内包されているデータと当該オブジェクトに内包するデータとの間で等価判断を行います。
+ * {@.ja 等価演算子}
+ * {@.en Processing that judges equivalence}
+ * <p>
+ * {@.ja 引数にDataRef型オブジェクトが指定された場合には、
+ * それに内包されているデータと当該オブジェクトに内包するデータとの間で
+ * 等価判断を行う。
* また、本メソッドの引数に比較したいデータそのものを指定した場合には、
- * 当該オブジェクトに内包するデータと引数で指定されたデータとの間で等価判断を行います。</p>
+ * 当該オブジェクトに内包するデータと引数で指定されたデータとの間で
+ * 等価判断を行う。}
*
- * @param rhs 等価判断対象のオブジェクト
- * @return 等価である場合はtrueを、さもなくばfalseを返します。
+ * @param rhs
+ * {@.ja 等価判断対象のオブジェクト}
+ * {@.en Object of equivalent judgment}
+ * @return
+ * {@.ja 等価である場合はtrueを、さもなくばfalseを返す。}
+ * {@.en Equivalence is true.}
*/
public boolean equals(Object rhs) {
@@ -43,9 +59,12 @@
}
/**
- * <p>ハッシュコード値を取得します。</p>
+ * {@.ja ハッシュコード値を取得する}
+ * {@.en Gets the hush code value.}
*
- * @return ハッシュコード値
+ * @return
+ * {@.ja ハッシュコード値}
+ * {@.en hush code}
*/
public int hashCode() {
@@ -53,8 +72,10 @@
}
/**
- * <p>当該オブジェクトが内包しているデータです。
- * アクセスを容易にするためにpublicメンバとなっています。</p>
+ * {@.ja 当該オブジェクトが内包しているデータ}
+ * {@.en Data where object concerned is stored}
+ * <p>
+ * {@.ja アクセスを容易にするためにpublicメンバとなっている}
*/
public T v;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/DoubleHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/DoubleHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/DoubleHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,74 +3,111 @@
import java.io.Serializable;
/**
- * <p>double型データ格納用クラスです。</p>
+ * {@.ja double型データ格納用クラス}
+ * {@.en Class for double type data storage}
*/
public class DoubleHolder implements ValueHolder, Serializable {
private static final long serialVersionUID = 8090384116386302112L;
/**
- * <p>double型データ設定値</p>
+ * {@.ja double型データ設定値}
+ * {@.en dpuble type data setting value}
*/
public Double value = null;
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public DoubleHolder() {
}
/**
- * <p>コンストラクタです。</p>
- *
- * @param initialValue 初期値
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public DoubleHolder(double initialValue) {
value = new Double(initialValue);
}
/**
- * <p>コンストラクタです。</p>
- *
- * @param initialValue 初期値
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ *
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public DoubleHolder(Double initialValue) {
value = initialValue;
}
/**
- * <p>文字列からdouble型に変換して設定します。</p>
+ * {@.ja 文字列からdouble型に変換して設定する}
+ * {@.en Converts from String into double type and sets it.}
*
- * @param def_val 設定値文字列表現
- * @exception Exception 渡された文字列が構文解析可能な double 値を含まない。
+ * @param def_val
+ * {@.ja 設定値文字列表現}
+ * {@.en String}
+ *
+ * @exception Exception
+ * {@.ja 渡された文字列が構文解析可能な double 値を含まない。}
+ * {@.en The character string of the argument is not good at parsing.}
*/
public void stringFrom(String def_val) throws Exception {
value = new Double(def_val);
}
/**
- * <p>設定値を取得します。</p>
- *
- * @return 設定値
+ * {@.ja 設定値を取得する}
+ * {@.en Gets a set value.}
+ *
+ * @return
+ * {@.ja 設定値}
+ * {@.en Set value}
*/
public double getValue() {
return value.doubleValue();
}
/**
- * <p>設定値を文字列に変換して取得します。</p>
- *
- * @return 設定値文字列表現
+ * {@.ja 設定値を文字列に変換して取得する}
+ * {@.en Converts a set value into the character string and gets it. }
+ *
+ * @return
+ * {@.ja 設定値文字列表現}
+ * {@.en Converted character string}
*/
public String toString() {
return String.valueOf(value);
}
+ /**
+ * {@.ja InputStreamのデータを読み込む}
+ * {@.en Reads data from InputStream.}
+ *
+ * @param i
+ * {@.ja InputStream}
+ * {@.en InputStream}
+ */
public void _read (org.omg.CORBA.portable.InputStream i)
{
double data = i.read_double();
value = new Double(data);
}
+ /**
+ * {@.ja OutputStreamへデータを書き込む}
+ * {@.en Writes data in OutputStream}
+ *
+ * @param o
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
public void _write (org.omg.CORBA.portable.OutputStream o)
{
o.write_double(value.doubleValue());
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/FloatHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/FloatHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/FloatHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,72 +3,109 @@
import java.io.Serializable;
/**
-* <p>float型データ格納用クラスです。</p>
+* {@.ja float型データ格納用クラス}
+* {@.en Class for float type data storage}
*/
public class FloatHolder implements ValueHolder, Serializable {
+ private static final long serialVersionUID = -6933849414043584352L;
/**
- * <p>float型データ設定値</p>
+ * {@.ja float型データ設定値}
+ * {@.en float type data setting value}
*/
public Float value = null;
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public FloatHolder() {
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public FloatHolder(float initialValue) {
value = new Float(initialValue);
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public FloatHolder(Float initialValue) {
value = initialValue;
}
/**
- * <p>文字列からfloat型に変換して設定します。</p>
+ * {@.ja 文字列からfloat型に変換して設定}
+ * {@.en Converts from String into float type and sets it.}
*
- * @param def_val 設定値文字列表現
+ * @param def_val
+ * {@.ja 設定値文字列表現}
+ * {@.en String}
*
- * @exception Exception 渡された文字列が構文解析可能な float 値を含まない。
+ * @exception Exception
+ * {@.ja 渡された文字列が構文解析可能な float 値を含まない。}
+ * {@.en The character string of the argument is not good at parsing.}
*/
public void stringFrom(String def_val) throws Exception {
value = new Float(def_val);
}
/**
- * <p>設定値を取得します。</p>
+ * {@.ja 設定値を取得する}
+ * {@.en Gets a set value.}
*
- * @return 設定値
+ * @return
+ * {@.ja 設定値}
+ * {@.en Set value}
*/
public float getValue(){
return value.floatValue();
}
/**
- * <p>設定値を文字列に変換して取得します。</p>
+ * {@.ja 設定値を文字列に変換して取得する}
+ * {@.en Converts a set value into the character string and gets it. }
*
- * @return 設定値文字列表現
+ * @return
+ * {@.ja 設定値文字列表現}
+ * {@.en Converted character string}
*/
public String toString(){
return String.valueOf(value);
}
+ /**
+ * {@.ja InputStreamのデータを読み込む}
+ * {@.en Reads data from InputStream.}
+ *
+ * @param i
+ * {@.ja InputStream}
+ * {@.en InputStream}
+ */
public void _read (org.omg.CORBA.portable.InputStream i)
{
float data = i.read_float();
value = new Float(data);
}
+ /**
+ * {@.ja OutputStreamへデータを書き込む}
+ * {@.en Writes data in OutputStream}
+ *
+ * @param o
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
public void _write (org.omg.CORBA.portable.OutputStream o)
{
o.write_float(value.floatValue());
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/IntegerHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/IntegerHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/IntegerHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,74 +3,112 @@
import java.io.Serializable;
/**
-* <p>int型データ格納用クラスです。</p>
+* {@.ja int型データ格納用クラス}
+* {@.en Class for int type data storage}
*/
public class IntegerHolder implements ValueHolder, Serializable {
+ private static final long serialVersionUID = 4149201397182532484L;
/**
- * <p>int型データ設定値</p>
+ * {@.ja int型データ設定値}
+ * {@.en int type data setting value}
*/
public Integer value = null;
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public IntegerHolder() {
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public IntegerHolder(int initialValue) {
value = new Integer(initialValue);
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public IntegerHolder(Integer initialValue) {
value = initialValue;
}
/**
- * <p>文字列からint型に変換して設定します。</p>
+ * {@.ja 文字列からint型に変換して設定する}
+ * {@.en Converts from the character string into int type and sets it.}
*
- * @param def_val 設定値文字列表現
+ * @param def_val
+ * {@.ja 設定値文字列表現}
+ * {@.en String}
*
- * @exception Exception 渡された文字列が構文解析可能な integer 値を含まない。
+ * @exception Exception
+ * {@.ja 渡された文字列が構文解析可能な integer 値を含まない。}
+ * {@.en The character string of the argument is not good at parsing.}
+ *
*/
public void stringFrom(String def_val) throws Exception {
value = new Integer(def_val);
}
/**
- * <p>設定値を取得します。</p>
+ * {@.ja 設定値を取得する}
+ * {@.en Gets a set value.}
*
- * @return 設定値
+ * @return
+ * {@.ja 設定値}
+ * {@.en Set value}
*/
public int getValue(){
return value.intValue();
}
/**
- * <p>設定値を文字列に変換して取得します。</p>
+ * {@.ja 設定値を文字列に変換して取得する}
+ * {@.en Converts a set value into the character string and gets it. }
*
- * @return 設定値文字列表現
+ * @return
+ * {@.ja 設定値文字列表現}
+ * {@.en Converted character string}
*/
public String toString(){
return String.valueOf(value);
}
+ /**
+ * {@.ja InputStreamのデータを読み込む}
+ * {@.en Reads data from InputStream.}
+ *
+ * @param i
+ * {@.ja InputStream}
+ * {@.en InputStream}
+ */
public void _read (org.omg.CORBA.portable.InputStream i)
{
int data = i.read_long ();
value = new Integer(data);
}
+ /**
+ * {@.ja OutputStreamへデータを書き込む}
+ * {@.en Writes data in OutputStream}
+ *
+ * @param o
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
public void _write (org.omg.CORBA.portable.OutputStream o)
{
o.write_long(value.intValue());
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ListenerBase.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ListenerBase.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ListenerBase.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,11 +1,13 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>タイマーに登録するリスナー用インタフェースです。</p>
+ * {@.ja タイマーに登録するリスナー用インタフェース}
+ * {@.en Interface for listener registers in timer}
*/
public interface ListenerBase {
/**
- * <p>タイマーがリスナーの処理を実行するためのメソッドです。</p>
+ * {@.ja タイマーがリスナーの処理を実行するためのメソッド}
+ * {@.en Method for execution of timer of listener processing}
*/
public void invoke();
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ListenerObject.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ListenerObject.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ListenerObject.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,21 +1,26 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>タイマーに登録するリスナー用クラスです。</p>
+ * {@.ja タイマーに登録するリスナー用クラス}
+ * {@.en Class for listener registered in timer}
*/
public class ListenerObject implements ListenerBase {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param cbf コールバック関数用インスタンス
+ * @param cbf
+ * {@.ja コールバック関数用インスタンス}
+ * {@.en Instance of callback function}
*/
public ListenerObject(CallbackFunction cbf) {
m_cbf = cbf;
}
/**
- * <p>登録先のタイマーから呼び出されるメソッドです。</p>
+ * {@.ja 登録先のタイマーから呼び出されるメソッド}
+ * {@.en Method that calls from timer at registration destination}
*/
public void invoke() {
m_cbf.doOperate();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/LongHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/LongHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/LongHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,73 +3,110 @@
import java.io.Serializable;
/**
-* <p>long型データ格納用クラスです。</p>
+* {@.ja long型データ格納用クラス}
+* {@.en Class for long type data storage}
*/
public class LongHolder implements ValueHolder, Serializable {
+ private static final long serialVersionUID = 2583100398593700296L;
/**
- * <p>long型データ設定値</p>
+ * {@.ja long型データ設定値}
+ * {@.en long type data setting value}
*/
public Long value = null;
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public LongHolder() {
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public LongHolder(long initialValue) {
value = new Long(initialValue);
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public LongHolder(Long initialValue) {
value = initialValue;
}
/**
- * <p>文字列からlong型に変換して設定します。</p>
+ * {@.ja 文字列からlong型に変換して設定する}
+ * {@.en Converts from the character string into the long type and sets it.}
*
- * @param def_val 設定値文字列表現
+ * @param def_val
+ * {@.ja 設定値文字列表現}
+ * {@.en String}
*
- * @exception Exception 渡された文字列が構文解析可能な long 値を含まない。
+ * @exception Exception
+ * {@.ja 渡された文字列が構文解析可能な long 値を含まない。}
+ * {@.en The character string of the argument is not good at parsing.}
*/
public void stringFrom(String def_val) throws Exception {
value = new Long(def_val);
}
/**
- * <p>設定値を取得します。</p>
+ * {@.ja 設定値を取得する}
+ * {@.en Gets a set value.}
*
- * @return 設定値
+ * @return
+ * {@.ja 設定値}
+ * {@.en Set value}
*/
public long getValue(){
return value.longValue();
}
/**
- * <p>設定値を文字列に変換して取得します。</p>
+ * {@.ja 設定値を文字列に変換して取得する}
+ * {@.en Converts a set value into the character string and gets it. }
*
- * @return 変換文字列
+ * @return
+ * {@.ja 変換文字列}
+ * {@.en Converted character string}
*/
public String toString(){
return String.valueOf(value);
}
+ /**
+ * {@.ja InputStreamのデータを読み込む}
+ * {@.en Reads data from InputStream.}
+ *
+ * @param i
+ * {@.ja InputStream}
+ * {@.en InputStream}
+ */
public void _read (org.omg.CORBA.portable.InputStream i)
{
long data = i.read_longlong();
value = new Long(data);
}
+ /**
+ * {@.ja OutputStreamへデータを書き込む}
+ * {@.en Writes data in OutputStream}
+ *
+ * @param o
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
public void _write (org.omg.CORBA.portable.OutputStream o)
{
o.write_longlong(value.longValue());
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NVListHolderFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NVListHolderFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NVListHolderFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,13 +3,36 @@
import _SDOPackage.NVListHolder;
import _SDOPackage.NameValue;
+/**
+ * {@.ja NVListHolderのファクトリ}
+ * {@.en Implementation of NVListHolder factory}
+ */
public class NVListHolderFactory {
+ /**
+ * {@.ja NVListHolderを生成する}
+ * {@.en Creates NVListHolder}
+ *
+ * @return
+ * {@.ja 生成されたNVListHolderオブジェクト}
+ * {@.en Created NVListHolder object}
+ */
public static NVListHolder create() {
return new NVListHolder(new NameValue[0]);
}
+ /**
+ * {@.ja NVListHolderの複製を生成する。}
+ * {@.en Creates the clone of NVListHolder}
+ *
+ * @param rhs
+ * {@.ja NVListHolderオブジェクト}
+ * {@.en NVListHolder object}
+ * @return
+ * {@.ja コピーされたNVListHolderオブジェクト}
+ * {@.en Copied NVListHolder object}
+ */
public static NVListHolder clone(final NVListHolder rhs) {
NameValue[] value = new NameValue[rhs.value.length];
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NVUtil.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NVUtil.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NVUtil.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -10,18 +10,29 @@
/**
- * <p>NameValue操作用ユーティリティクラスです。</p>
+ * {@.ja NameValue操作用ユーティリティクラス}
+ * {@.en Utility for NameValue}
+ *
*/
public class NVUtil {
/**
- * <p>指定されたデータを用いてNameValueオブジェクトを作成します。</p>
+ * {@.ja 指定されたデータを用いてNameValueオブジェクトを作成する}
+ * {@.en Create NameValue}
*
- * @param name オブジェクトに設定する名称
- * @param value オブジェクトに設定する値
- * @param klass オブジェクトに設定する値の型
+ * @param name
+ * {@.ja オブジェクトに設定する名称}
+ * {@.en Name of NameValue}
+ * @param value
+ * {@.ja オブジェクトに設定する値}
+ * {@.en The value of NameValue}
+ * @param klass
+ * {@.ja オブジェクトに設定する値の型}
+ * {@.en ClassType}
*
- * @return 作成されたNameValueオブジェクト
+ * @return
+ * {@.ja 作成されたNameValueオブジェクト}
+ * {@.en NameValue}
*/
public static <T> NameValue newNV(final String name, T value, Class<T> klass) {
@@ -33,12 +44,19 @@
return nv;
}
/**
- * <p>指定されたデータを用いてNameValueオブジェクトを作成します。</p>
+ * {@.ja 指定されたデータを用いてNameValueオブジェクトを作成する}
+ * {@.en Create NameValue typed String}
*
- * @param name オブジェクトに設定する名称
- * @param value オブジェクトに設定する値(String)
+ * @param name
+ * {@.ja オブジェクトに設定する名称}
+ * {@.en Name of NameValue}
+ * @param value
+ * {@.ja オブジェクトに設定する値(String)}
+ * {@.en The value of NameValue}
*
- * @return 作成されたNameValueオブジェクト
+ * @return
+ * {@.ja 作成されたNameValueオブジェクト}
+ * {@.en NameValue}
*/
public static NameValue newNVString(final String name, String value) {
NameValue nv = new NameValue();
@@ -50,12 +68,19 @@
}
/**
- * <p>指定されたデータを用いてNameValueオブジェクトを作成します。</p>
+ * {@.ja 指定されたデータを用いてNameValueオブジェクトを作成する}
+ * {@.en Create NameValue}
*
- * @param name オブジェクトに設定する名称
- * @param value オブジェクトに設定するString値
+ * @param name
+ * {@.ja オブジェクトに設定する名称}
+ * {@.en Name of NameValue}
+ * @param value
+ * {@.ja オブジェクトに設定するString値}
+ * {@.en The value of NameValue}
*
- * @return 作成されたNameValueオブジェクト
+ * @return
+ * {@.ja 作成されたNameValueオブジェクト}
+ * {@.en NameValue}
*/
public static NameValue newNV(final String name, String value) {
@@ -63,12 +88,20 @@
}
/**
- * <p>指定されたデータを用いてNameValueオブジェクトを作成します。</p>
+ * {@.ja 指定されたデータを用いてNameValueオブジェクトを作成する}
+ * {@.en Create NameValue typed CORBA::Any}
*
- * @param name オブジェクトに設定する名称
- * @param value オブジェクトに設定するAny値
+ * @param name
+ * {@.ja オブジェクトに設定する名称}
+ * {@.en Name of NameValue}
+ * @param value
+ * {@.ja オブジェクトに設定するAny値}
+ * {@.en The value of NameValue}
+ *
*
- * @return 作成されたNameValueオブジェクト
+ * @return
+ * {@.ja 作成されたNameValueオブジェクト}
+ * {@.en NameValue}
*/
public static NameValue newNVAny(final String name, final Any value) {
@@ -79,12 +112,21 @@
}
/**
- * <p>指定されたPropertiesを用いてNameValueオブジェクトリストを作成し、
- * それを指定されたNVListHolder内にコピーします。<br />
- * Propertiesのキーおよび値が、各NameValueの名称および値にそれぞれ割り当てられます。</p>
+ * {@.ja 指定されたPropertiesを用いてNameValueオブジェクトリストを作成し、
+ * それを指定されたNVListHolder内にコピーする}
+ * {@.en Copy the properties to NVList}
+ * <p>
+ * {@.ja Propertiesのキーおよび値が、
+ * 各NameValueの名称および値にそれぞれ割り当てらる}
+ * {@.en This operation copies the properties to NVList.
+ * All NVList's values are copied as CORBA::string.}
*
- * @param nvlist 作成されたNameValueオブジェクトリストを受け取るためNVListHolder
- * @param prop 設定元となるPropertiesオブジェクト
+ * @param nvlist
+ * {@.ja 作成されたNameValueオブジェクトリストを受け取るためNVListHolder}
+ * {@.en NVList to store properties values}
+ * @param prop
+ * {@.ja 設定元となるPropertiesオブジェクト}
+ * {@.en Properties that is copies from}
*/
public static void copyFromProperties(NVListHolder nvlist,
final Properties prop) {
@@ -104,12 +146,22 @@
}
/**
- * <p>指定されたNVListHolderに保持されているNameValueオブジェクトリストの内容を、
- * 指定されたPropertiesオブジェクトにコピーします。<br />
- * 各NameValueの名称および値が、Propertiesのキーおよび値にそれぞれ割り当てられます。</p>
+ * {@.ja 指定されたNVListHolderに保持されている
+ * NameValueオブジェクトリストの内容を、指定されたPropertiesオブジェクトに
+ * コピーする}
+ * {@.en Copy NVList to the Proeprties}
+ * <p>
+ * {@.ja 各NameValueの名称および値が、
+ * Propertiesのキーおよび値にそれぞれ割り当てられる}
+ * {@.en This operation copies NVList to properties.}
*
- * @param prop コピー先のPropertiesオブジェクト
- * @param nvlist コピー元のNameValueオブジェクトリストを内包するNVListHolderオブジェクト
+ * @param prop
+ * {@.ja コピー先のPropertiesオブジェクト}
+ * {@.en Properties to store NVList values}
+ * @param nvlist
+ * {@.ja コピー元のNameValueオブジェクトリストを
+ * 内包するNVListHolderオブジェクト}
+ * {@.en NVList of copy source}
*/
public static void copyToProperties(Properties prop, final NVListHolder nvlist) {
@@ -154,13 +206,22 @@
}
/**
- * <p>指定されたNVListHolderに保持されているNameValueオブジェクトリストの内容をもとに、
- * Propertiesオブジェクトを作成します。<br />
- * 各NameValueの名称および値が、Propertiesのキーおよび値にそれぞれ割り当てられます。</p>
+ * {@.ja 指定されたNVListHolderに保持されているNameValueオブジェクトリスト
+ * の内容をもとに、Propertiesオブジェクトを作成する}
+ * {@.en Transform NVList to the properties}
+ * <p>
+ * {@.ja 各NameValueの名称および値が、Propertiesのキーおよび値に
+ * それぞれ割り当てられる}
+ * {@.en This operation transforms NVList to properties}
*
- * @param nvlist 元となるNameValueオブジェクトリストを内包するNVListHolderオブジェクト
- *
- * @return 作成されたPropertiesオブジェクト
+ * @param nvlist
+ * {@.ja 元となるNameValueオブジェクトリストを
+ * 内包するNVListHolderオブジェクト}
+ * {@.en NVList of tranformation source}
+ *
+ * @return
+ * {@.ja 作成されたPropertiesオブジェクト}
+ * {@.en Transformation result Property}
*/
public static Properties toProperties(final NVListHolder nvlist) {
to_prop prop = new to_prop();
@@ -169,15 +230,31 @@
}
/**
- * <p>NVListHolderが内包するNameValueオブジェクトリストの中から、指定した名称を持つ
- * NameValueオブジェクトを検索して、そのオブジェクトが持つ値をAny型で取得します。</p>
+ * {@.ja NVListHolderが内包するNameValueオブジェクトリストの中から、
+ * 指定した名称を持つNameValueオブジェクトを検索して、
+ * そのオブジェクトが持つ値をAny型で取得する}
+ * {@.en Return the value specified by name from NVList}
*
- * @param nvlist 検索対象となるNameValueオブジェクトリストを内包するNVListHolderオブジェクト
- * @param name 検索したいNameValueオブジェクトの名称
+ * <p>
+ * {@.en This operation returns Any type of value specified by name.
+ * When an element of specified name doesn't exist, the exception will
+ * occur.}
+ *
+ * @param nvlist
+ * {@.ja 検索対象となるNameValueオブジェクトリストを内包するNVListHolder
+ * オブジェクト}
+ * {@.en The target NVList for the find}
+ * @param name
+ * {@.ja 検索したいNameValueオブジェクトの名称}
+ * {@.en Name for the find}
*
- * @return 指定した名称を持つNameValueオブジェクトのAny値
+ * @return
+ * {@.ja 指定した名称を持つNameValueオブジェクトのAny値}
+ * {@.en Find result}
*
- * @throws Exception 指定した名称のNameValueオブジェクトが見つからない場合
+ * @throws Exception
+ * {@.ja 指定した名称のNameValueオブジェクトが見つからない場合}
+ * {@.en Not found NameValue object}
*/
public final static Any find(final NVListHolder nvlist, final String name)
throws Exception {
@@ -191,29 +268,54 @@
}
/**
- * <p>NVListHolderが内包するNameValueオブジェクトリストの中から、指定した名称を持つ
- * NameValueオブジェクトを検索して、そのオブジェクトのリスト内でのインデクスを取得します。</p>
+ * {@.ja NVListHolderが内包するNameValueオブジェクトリストの中から、
+ * 指定した名称を持つNameValueオブジェクトを検索して、
+ * そのオブジェクトのリスト内でのインデクスを取得する}
+ * {@.en Return the index of element specified by name from NVList}
+ * <p>
+ * {@.en This operation returns the index at the position where the element
+ * specified by name is stored.}
+ *
+ * @param nvlist
+ * {@.ja 検索対象となるNameValueオブジェクトリストを
+ * 内包するNVListHolderオブジェクト}
+ * {@.en The target NVList for the find}
+ * @param name
+ * {@.ja 検索したいNameValueオブジェクトの名称}
+ * {@.en Name for the find}
+ *
*
- * @param nvlist 検索対象となるNameValueオブジェクトリストを内包するNVListHolderオブジェクト
- * @param name 検索したいNameValueオブジェクトの名称
- *
- * @return 指定した名称を持つNameValueオブジェクトが見つかった場合は、
- * そのオブジェクトのリスト内でのインデクスを返します。<br />
- * また、見つからない場合は、-1を返します。
+ * @return
+ * {@.ja 指定した名称を持つNameValueオブジェクトが見つかった場合は、
+ * そのオブジェクトのリスト内でのインデクスを返す。
+ * また、見つからない場合は、-1を返す。}
+ * {@.en Index of target object for the find}
*/
public final static int find_index(final NVListHolder nvlist, final String name) {
return CORBA_SeqUtil.find(nvlist, new nv_find(name));
}
/**
- * <p>NVListHolderが内包するNameValueオブジェクトリストの中から、指定した名称を持つ
- * NameValueオブジェクトを検索して、そのオブジェクトが持つ値が文字列型かどうかを調べます。</p>
+ * {@.ja NVListHolderが内包するNameValueオブジェクトリストの中から、
+ * 指定した名称を持つNameValueオブジェクトを検索して、
+ * そのオブジェクトが持つ値が文字列型かどうかを調べる}
+ * {@.en Validate whether value type specified by name is string type}
+ * <p>
+ * {@.en This operation returns the bool value by checking whether
+ * the type of value specified with name is CORBA::string.}
*
- * @param nvlist 検索対象となるNameValueオブジェクトリストを内包するNVListHolderオブジェクト
- * @param name 検索したいNameValueオブジェクトの名称
+ * @param nvlist
+ * {@.ja 検索対象となるNameValueオブジェクトリストを
+ * 内包するNVListHolderオブジェクト}
+ * {@.en @param nv The target NVList for the search}
+ * @param name
+ * {@.ja 検索したいNameValueオブジェクトの名称}
+ * {@.en Name for the search}
*
- * @return 見つかったNameValueオブジェクトの値が文字列型の場合はtrueを、
- * そうでなければfalseを返します。
+ * @return
+ * {@.ja 見つかったNameValueオブジェクトの値が文字列型の場合はtrueを、
+ * そうでなければfalseを返す}
+ * {@.en String validation result (String:true, Else:false)}
*/
public static boolean isString(final NVListHolder nvlist, final String name) {
try {
@@ -231,15 +333,35 @@
}
/**
- * <p>NVListHolderが内包するNameValueオブジェクトリストの中から、指定した名称を持つ
- * NameValueオブジェクトを検索して、そのオブジェクトが持つ値が文字列型かどうかを調べます。
- * 文字列型の場合は、さらに指定された文字列値に一致するかどうかを調べます。</p>
+ * {@.ja NVListHolderが内包するNameValueオブジェクトリストの中から、
+ * 指定した名称を持つNameValueオブジェクトを検索して、
+ * そのオブジェクトが持つ値が文字列型かどうかを調べる}
+ * {@.en Check whether the value of specified name matches the specified
+ * string}
+ *
+ * <p>
+ * {@.ja 文字列型の場合は、さらに指定された文字列値に一致するかどうかを
+ * 調べる}
+ * {@.en This operation checks whether the value specified with name is
+ * CORBA::string and returns the bool value which matches spcified string.}
*
- * @param nvlist 検索対象となるNameValueオブジェクトリストを内包するNVListHolderオブジェクト
- * @param name 検索したいNameValueオブジェクトの名称
+ * @param nvlist
+ * {@.ja 検索対象となるNameValueオブジェクトリストを
+ * 内包するNVListHolderオブジェクト}
+ * {@.en The target NVList for the search}
+ * @param name
+ * {@.ja 検索したいNameValueオブジェクトの名称}
+ * {@.en Name for the search}
*
- * @return 見つかったNameValueオブジェクトの値が文字列型で、かつ指定された文字列値に
- * 一致する場合はtrueを返します。また、そうでなければfalseを返します。
+ * @param value
+ * {@.ja 比較する文字}
+ * {@.en String value to compare}
+ *
+ * @return
+ * {@.ja 見つかったNameValueオブジェクトの値が文字列型で、
+ * かつ指定された文字列値に一致する場合はtrueを返す。
+ * また、そうでなければfalseを返す。}
+ * {@.en Check result (Match:true, Unmatch:false)}
*/
public static boolean isStringValue(final NVListHolder nvlist,
final String name, final String value) {
@@ -253,17 +375,32 @@
}
/**
- * <p>NVListHolderが内包するNameValueオブジェクトリストの中から、指定した名称を持つ
- * NameValueオブジェクトを検索して、そのオブジェクトが持つ値を文字列型で取得します。</p>
+ * {@.ja NVListHolderが内包するNameValueオブジェクトリストの中から、
+ * 指定した名称を持つNameValueオブジェクトを検索して、
+ * そのオブジェクトが持つ値を文字列型で取得する}
+ * {@.en Get NVList of specifid name as string}
+ * <p>
+ * {@.en This operation returns string value in NVList specified by name.
+ * If the value in NVList specified by name is not CORBA::string type
+ * this operation returns empty string value.}
+ *
+ * @param nvlist
+ * {@.ja 検索対象となるNameValueオブジェクトリストを内包するNVListHolder
+ * オブジェクト}
+ * {@.en The target NVList for the search}
*
- * @param nvlist 検索対象となるNameValueオブジェクトリストを内包するNVListHolderオブジェクト
- * @param name 検索したいNameValueオブジェクトの名称
+ * @param name
+ * {@.ja 検索したいNameValueオブジェクトの名称}
+ * {@.en Name for the search}
+ *
*
- * @return 指定した名称を持つNameValueオブジェクトの文字列値を返します。<br />
- * ただし、指定した名称を持つNameValueオブジェクトが見つからない場合や、
- * NameValueオブジェクトの値が文字列型でない場合は、空文字列を返します。
+ * @return
+ * {@.ja 指定した名称を持つNameValueオブジェクトの文字列値を返す。
+ * ただし、指定した名称を持つNameValueオブジェクトが
+ * 見つからない場合や、NameValueオブジェクトの値が
+ * 文字列型でない場合は、空文字列を返す。}
+ * {@.en String value corresponding to name}
*
- * @throws Exception 指定した名称のNameValueオブジェクトが見つからない場合
*/
public static String toString(final NVListHolder nvlist, final String name) {
String str_value;
@@ -284,14 +421,39 @@
}
/**
- * <p>NVListHolderが内包するNameValueオブジェクトリストの中から、指定した名称を持つ
- * NameValueオブジェクトを検索して、そのオブジェクトに指定した文字列値を追加します。<br />
- * 指定した名称を持つNameValueオブジェクトが存在しない場合には、その名称と指定された値を持つ
- * NameValueが新たに作成され、NVListHolder内のNameValueオブジェクトリストに追加されます。</p>
+ * {@.ja NVListHolderが内包するNameValueオブジェクトリストの中から、
+ * 指定した名称を持つNameValueオブジェクトを検索して、
+ * そのオブジェクトに指定した文字列値を追加する。}
+ * {@.en Append the specified string to element of NVList}
+ *
+ * <p>
+ * {@.ja 指定した名称を持つNameValueオブジェクトが存在しない場合には、
+ * その名称と指定された値を持つNameValueが新たに作成され、
+ * NVListHolder内のNameValueオブジェクトリストに追加される。}
+ * {@.en This operation appends the string value specified by
+ * value to the elementspecified by name.
+ * Operate nothing when the 'value' value has already been set to the
+ * element specified by name.
+ * Add the 'value' value each separating by a comma "," when the 'value'
+ * value is not set to the element specified by name.
+ * Set the specified value.
+ * Add a new element at the end of NVList, and set the specified value,
+ * when the element specified by name does not exist.}
*
- * @param nvlist 検索対象となるNameValueオブジェクトリストを内包するNVListHolderオブジェクト
- * @param name 検索したいNameValueオブジェクトの名称
- * @param value 見つかったNameValueオブジェクトの値に追加したい文字列値
+ * @param nvlist
+ * {@.ja 検索対象となるNameValueオブジェクトリストを内包するNVListHolder
+ * オブジェクト}
+ * {@.en The target NVList for the search}
+ * @param name
+ * {@.ja 検索したいNameValueオブジェクトの名称}
+ * {@.en The target element name for the appending}
+ * @param value
+ * {@.ja 見つかったNameValueオブジェクトの値に追加したい文字列値}
+ * {@.en String to append}
+ *
+ * @return
+ * {@.ja trueを返す。}
+ * {@.en Append operation result}
*/
public static boolean appendStringValue(NVListHolder nvlist,
final String name, final String value) {
@@ -329,11 +491,19 @@
}
/**
- * <p>片方のNameValueListオブジェクトが内包するNameValueオブジェクトリストを、
- * もう一方のNameValueListオブジェクト内に追加します。</p>
+ * {@.ja 片方のNameValueListオブジェクトが内包するNameValue
+ * オブジェクトリストを、もう一方のNameValueListオブジェクト内に追加する。}
+ * {@.en Append an element to NVList}
+ * <p>
+ * {@.en This operation appends elements specified by src to NVList
+ * specified by dest.}
*
- * @param destNvList 追加先となるNVListHolderオブジェクト
- * @param srcNvList 追加元となるNVListHolderオブジェクト
+ * @param destNvList
+ * {@.ja 追加先となるNVListHolderオブジェクト}
+ * {@.en NVList to be appended}
+ * @param srcNvList
+ * {@.ja 追加元となるNVListHolderオブジェクト}
+ * {@.en NVList to append}
*/
public static void append(NVListHolder destNvList, final NVListHolder srcNvList) {
for (int intIdx = 0; intIdx < srcNvList.value.length; ++intIdx) {
@@ -342,10 +512,14 @@
}
/**
- * <p>指定されたNVListHolderオブジェクトが内包するNameValueオブジェクトリストの内容を、
- * 標準出力に出力します。</p>
+ * {@.ja 指定されたNVListHolderオブジェクトが内包する
+ * NameValueオブジェクトリストの内容を、標準出力に出力する。}
+ * {@.en Print information configured in NVList as string type}
*
- * @param nvlist 表示対象となるNameValueオブジェクトリストを内包するNVListHolderオブジェクト
+ * @param nvlist
+ * {@.ja 表示対象となるNameValueオブジェクトリストを内包する
+ * NVListHolderオブジェクト}
+ * {@.en The target NVList for the print}
*/
public static void dump(NVListHolder nvlist) {
String str_value;
@@ -364,25 +538,39 @@
}
/**
- * <p>指定された名称を持つNameValueオブジェクトを検索するためのヘルパクラスです。</p>
+ * {@.ja 指定された名称を持つNameValueオブジェクトを
+ * 検索するためのヘルパクラス。}
+ * {@.en Helper class to retrieve NameValue. }
*/
static class nv_find implements equalFunctor {
/**
- * <p>コンストラクタです。検索対象となるNameValueオブジェクトの名称を指定します。</p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
+ * <p>
+ * {@.ja 検索対象となるNameValueオブジェクトの名称を指定する。}
*
- * @param name 検索対象となるNameValueオブジェクトの名称
+ * @param name
+ * {@.ja 検索対象となるNameValueオブジェクトの名称}
+ * {@.en Name to find}
*/
public nv_find(final String name) {
m_name = name;
}
/**
- * <p>検索対象となる名称を持つNameValueオブジェクトか否かを判定します。</p>
+ * {@.ja 検索対象となる名称を持つNameValueオブジェクトか否かを判定する}
+ * {@.en Judges whether to maintain the name
+ * that NameValue object retrieves.}
*
- * @param nv 判定対象のNameValueオブジェクト
+ * @param nv
+ * {@.ja 判定対象のNameValueオブジェクト}
+ * {@.en NameValue of object}
*
- * @throws ClassCastException 指定されたオブジェクトがNameValueオブジェクトでない場合
+ * @throws ClassCastException
+ * {@.ja 指定されたオブジェクトがNameValueオブジェクトでない場合}
+ * {@.en Throws Exception, when the specified object is not
+ * NameValue object. }
*/
public boolean equalof(final Object nv) {
return m_name.equals(((NameValue) nv).name);
@@ -392,28 +580,48 @@
}
/**
- * <p>指定されたNameValueオブジェクトの内容を元にPropertiesオブジェクトを作成する
- * ヘルパクラスです。</p>
+ * {@.ja 指定されたNameValueオブジェクトの内容を元に
+ * Propertiesオブジェクトを作成するヘルパクラス}
+ * {@.en Helper class that makes Properties object based on content
+ * of specified NameValue object}
*/
static class to_prop implements operatorFunc {
/**
- * <p>指定されたNameValueオブジェクトの内容を元にPropertiesオブジェクトを作成します。
- * 作成されたPropertiesオブジェクトは、m_propメンバとして取得できます。</p>
+ * {@.ja 指定されたNameValueオブジェクトの内容を元に
+ * Propertiesオブジェクトを作成する}
+ * {@.en Makes Properties object based on the content
+ * of the specified NameValue object. }
+ * <p>
+ * {@.ja 作成されたPropertiesオブジェクトは、
+ * m_propメンバとして取得でる。}
*
- * @param elem 作成元となるNameValueオブジェクト
+ * @param elem
+ * {@.ja 作成元となるNameValueオブジェクト}
+ * {@.en NameValue object in making origin}
*
- * @throws ClassCastException 指定されたオブジェクトがNameValueオブジェクトでない場合
+ * @throws ClassCastException
+ * {@.ja 指定されたオブジェクトがNameValueオブジェクトでない場合}
+ * {@.en Throws Exception, when the specified object is not
+ * NameValue object. }
*/
public void operator(Object elem) {
operator((NameValue) elem);
}
/**
- * <p>指定されたNameValueオブジェクトの内容を元にPropertiesオブジェクトを作成します。
- * 作成されたPropertiesオブジェクトは、m_propメンバとして取得できます。</p>
+ * {@.ja 指定されたNameValueオブジェクトの内容を元に
+ * Propertiesオブジェクトを作成する}
+ * {@.en Makes Properties object based on the content
+ * of the specified NameValue object. }
+ * <p>
+ * {@.ja 作成されたPropertiesオブジェクトは、
+ * m_propメンバとして取得でる。}
*
- * @param nv 作成元となるNameValueオブジェクト
+ * @param nv
+ * {@.ja 作成元となるNameValueオブジェクト}
+ * {@.en NameValue object in making origin}
+ *
*/
public void operator(final NameValue nv) {
try {
@@ -435,14 +643,23 @@
}
/**
- * <p>NVListHolderが内包するNameValueオブジェクトリストの中から、
- * そのオブジェクトが持つ値を文字列型で取得します。</p>
+ * {@.ja NVListHolderが内包するNameValueオブジェクトリストの中から、
+ * そのオブジェクトが持つ値を文字列型で取得する}
+ * {@.en Acquires the value of the character string of the NameValue object
+ * from NVListHolder. }
+ *
+ * @param nvlist
+ * {@.ja NVListHolderオブジェクト}
+ * {@.en NVListHolder object}
*
- * @param nvlist NVListHolderオブジェクト
+ * @return
+ * {@.ja NameValueオブジェクトの文字列値を返す。}
+ * {@.ja String value of NameValue objcet}
*
- * @return NameValueオブジェクトの文字列値を返します。<br />
- *
- * @throws Exception 指定した名称のNameValueオブジェクトが見つからない場合
+ * @throws Exception
+ * {@.ja 指定した名称のNameValueオブジェクトが見つからない場合}
+ * {@.en Throws Exception, when the specified object is not
+ * NameValue object. }
*/
public static String toString(final NVListHolder nvlist) {
String crlf = System.getProperty("line.separator");
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NameValueFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NameValueFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/NameValueFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,14 +3,18 @@
import _SDOPackage.NameValue;
/**
- * <p>NamaValueオブジェクト生成のためのユーティリティクラスです。</p>
+ * {@.ja NamaValueオブジェクト生成のためのユーティリティクラス}
+ * {@.en Implementation of NamaValue factory}
*/
public class NameValueFactory {
/**
- * <p>デフォルト内容でNameValueオブジェクトを生成します。</p>
+ * {@.ja デフォルト内容でNameValueオブジェクトを生成する。}
+ * {@.en Creates NameValue object}
*
- * @return 生成されたNameValueオブジェクト
+ * @return
+ * {@.ja 生成されたNameValueオブジェクト}
+ * {@.en Created NameValue object}
*/
public static NameValue create() {
@@ -21,10 +25,15 @@
}
/**
- * <p>指定されたNameValueオブジェクトの複製を生成します。</p>
+ * {@.ja 指定されたNameValueオブジェクトの複製を生成する。}
+ * {@.en Creates the clone of NameValue}
*
- * @param rhs 複製元となるNameValueオブジェクト
- * @return 生成されたNameValueオブジェクト
+ * @param rhs
+ * {@.ja 複製元となるNameValueオブジェクト}
+ * {@.en NameValue object}
+ * @return
+ * {@.ja 生成されたNameValueオブジェクト}
+ * {@.en Copied NameValue object}
*/
public static NameValue clone(final NameValue rhs) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ORBUtil.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ORBUtil.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ORBUtil.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -7,34 +7,63 @@
import org.omg.CORBA.ORB;
/**
- * <p>ORBオブジェクトを生成、管理するクラスです。</p>
+ * {@.ja ORBオブジェクトを生成、管理するクラス}
+ * {@.en Class that generates, and manages ORB object}
*/
public class ORBUtil {
private static ORB orb = null;
/**
- * <p>ORBオブジェクトを取得します。</p>
+ * {@.ja ORBオブジェクトを取得する}
+ * {@.en Gets ORB object}
*
- * @return ORBオブジェクト
+ * @return
+ * {@.ja ORBオブジェクト}
+ * {@.en ORB object}
*/
public static ORB getOrb() {
return getOrb(null);
}
+ /**
+ * {@.ja 管理しているORBオブジェクトをクリアする}
+ * {@.en Clears the managed ORB object}
+ *
+ */
public static void clearOrb() {
orb = null;
}
+ /**
+ * {@.ja ORBオブジェクトを取得する}
+ * {@.en Gets ORB object}
+ *
+ * @param args
+ * {@.ja アプリケーションの main メソッドのコマンド行引数}
+ * {@.en command-line arguments for the application's main method}
+ *
+ * @return
+ * {@.ja ORBオブジェクト}
+ * {@.en ORB object}
+ */
public static ORB getOrb(String[] args) {
return getOrb(args, null);
}
/**
- * <p>指定された引数に基づいてORBオブジェクトを生成後、取得します。<br />
- * すでにORBオブジェクトが生成済みの場合は、それが取得されます。</p>
+ * {@.ja 指定された引数に基づいてORBオブジェクトを生成後、取得する}
+ * {@.en Generates the ORB object based on the specified argument,
+ * and gets it. }
+ * <p>
+ * {@.ja すでにORBオブジェクトが生成済みの場合は、それが取得される}
+ * {@.en When the ORB object is generated, it is returned}
*
- * @param args ORBオブジェクト生成時の引数
- * @return ORBオブジェクト
+ * @param args
+ * {@.ja ORBオブジェクト生成時の引数}
+ * {@.en Argument for ORB object generation}
+ * @return
+ * {@.ja ORBオブジェクト}
+ * {@.en ORB object}
*/
public static ORB getOrb(String[] args, Properties prop) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnActivateSetCallbackFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnActivateSetCallbackFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnActivateSetCallbackFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,18 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>Callbackクラスのインターフェースです。</p>
+ * {@.ja Callbackクラスのインターフェース}
+ * {@.en Interface of Callback class}
*/
public interface OnActivateSetCallbackFunc {
/**
- * <p>対象のオブジェクトに対して操作を行います。</p>
+ * {@.ja 対象のオブジェクトに対して操作を行う}
+ * {@.en Operates object}
*
- * @param config_set コンフィグレーション
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en Configuration}
*/
public void operator(String config_set);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnAddConfigurationAddCallbackFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnAddConfigurationAddCallbackFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnAddConfigurationAddCallbackFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,14 +3,19 @@
import jp.go.aist.rtm.RTC.util.Properties;
/**
- * <p>Callbackクラスのインターフェースです。</p>
+ * {@.ja Callbackクラスのインターフェース}
+ * {@.en Interface of Callback class}
*/
public interface OnAddConfigurationAddCallbackFunc {
/**
- * <p>対象のオブジェクトに対して操作を行います。</p>
+ * {@.ja 対象のオブジェクトに対して操作を行う}
+ * {@.en Operates object}
*
- * @param config_set コンフィグレーション
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en Configuration}
+ *
*/
public void operator(Properties config_set);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnRemoveConfigurationSetCallbackFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnRemoveConfigurationSetCallbackFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnRemoveConfigurationSetCallbackFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,19 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>Callbackクラスのインターフェースです。</p>
+ * {@.ja Callbackクラスのインターフェース}
+ * {@.en Interface of Callback class}
*/
public interface OnRemoveConfigurationSetCallbackFunc {
/**
- * <p>対象のオブジェクトに対して操作を行います。</p>
+ * {@.ja 対象のオブジェクトに対して操作を行う}
+ * {@.en Operates object}
*
- * @param config_set コンフィグレーション
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en Configuration}
+ *
*/
public void operator(String config_set);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnSetConfigurationSetCallbackFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnSetConfigurationSetCallbackFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnSetConfigurationSetCallbackFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,14 +3,18 @@
import jp.go.aist.rtm.RTC.util.Properties;
/**
- * <p>Callbackクラスのインターフェースです。</p>
+ * {@.ja Callbackクラスのインターフェース}
+ * {@.en Interface of Callback class}
*/
public interface OnSetConfigurationSetCallbackFunc {
/**
- * <p>対象のオブジェクトに対して操作を行います。</p>
+ * {@.ja 対象のオブジェクトに対して操作を行う}
+ * {@.en Operates object}
*
- * @param config_set コンフィグレーション
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en Configuration}
*/
public void operator(Properties config_set);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnUpdateCallbackFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnUpdateCallbackFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnUpdateCallbackFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,18 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>Callbackクラスのインターフェースです。</p>
+ * {@.ja Callbackクラスのインターフェース}
+ * {@.en Interface of Callback class}
*/
public interface OnUpdateCallbackFunc {
/**
- * <p>対象のオブジェクトに対して操作を行います。</p>
+ * {@.ja 対象のオブジェクトに対して操作を行う}
+ * {@.en Operates object}
*
- * @param config_set コンフィグレーション
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en Configuration}
*/
public void operator(String config_set);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnUpdateParamCallbackFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnUpdateParamCallbackFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/OnUpdateParamCallbackFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,21 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>Callbackクラスのインターフェースです。</p>
+ * {@.ja Callbackクラスのインターフェース}
+ * {@.en Interface of Callback class}
*/
public interface OnUpdateParamCallbackFunc {
/**
- * <p>対象のオブジェクトに対して操作を行います。</p>
+ * {@.ja 対象のオブジェクトに対して操作を行う}
+ * {@.en Operates object}
*
- * @param config_set コンフィグレーション
+ * @param config_set
+ * {@.ja コンフィグレーション}
+ * {@.en Configuration}
+ * @param config_param
+ * {@.ja パラメータ}
+ * {@.en Parameter}
*/
public void operator(String config_set, String config_param);
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/POAUtil.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/POAUtil.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/POAUtil.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -5,21 +5,36 @@
import org.omg.PortableServer.Servant;
/**
- * <p>POAに関するユーティリティクラスです。</p>
+ * {@.ja POAに関するユーティリティクラス}
+ * {@.en Utility class concerning POA}
*/
public class POAUtil {
/**
- * <p>指定されたサーバントをアクティブ化し、そのCORBAリファレンスを取得します。</p>
+ * {@.ja 指定されたサーバントをアクティブ化し、
+ * そのCORBAリファレンスを取得する}
+ * {@.en Makes the specified servant active, and gets CORBA reference.}
*
- * @param servant サーバントオブジェクト
- * @return サーバントのCORBAリファレンス
+ * @param servant
+ * {@.ja サーバントオブジェクト}
+ * {@.en Servant Object}
+ * @return
+ * {@.ja サーバントのCORBAリファレンス}
+ * {@.en CORBA reference of servant}
*
- * @exception Exception 指定された名前が定義済みのサービスに関連していない。
- * POA に UNIQUE_ID ポリシーが指定されているときに、サーバントが Active Object Map にすでに格納されている
- * SYSTEM_ID と RETAIN ポリシーが指定されていない。
- * オブジェクト ID 値が POA でアクティブになっていない。
- * ポリシーがない。
+ * @exception Exception
+ * {@.ja 指定された名前が定義済みのサービスに関連していない。
+ * POA に UNIQUE_ID ポリシーが指定されているときに、
+ * サーバントが Active Object Map にすでに格納されている
+ * SYSTEM_ID と RETAIN ポリシーが指定されていない。
+ * オブジェクト ID 値が POA でアクティブになっていない。
+ * ポリシーがない。}
+ * {@.en Not relating to the service that the specified name defined.
+ * Neither SYSTEM_ID nor RETAIN policy that the servant has already
+ * been stored in Active Object Map are specified when UNIQUE_ID
+ * policy is specified for POA.
+ * Object ID value is not active on POA.
+ * There is no policy.}
*/
public static org.omg.CORBA.Object getRef(Servant servant) throws Exception {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortInterfaceProfileFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortInterfaceProfileFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortInterfaceProfileFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,8 +3,20 @@
import RTC.PortInterfacePolarity;
import RTC.PortInterfaceProfile;
+/**
+ * {@.ja Java用PortInterfaceProfileファクトリの実装}
+ * {@.en Implementation of PortInterfaceProfile factory}
+ */
public class PortInterfaceProfileFactory {
+ /**
+ * {@.ja PortInterfaceProfileを生成する。}
+ * {@.en Creates PortInterfaceProfile}
+ *
+ * @return
+ * {@.ja 生成されたPortInterfaceProfileオブジェクト}
+ * {@.en Created PortInterfaceProfile object}
+ */
public static PortInterfaceProfile create() {
String instance_name = new String();
@@ -14,6 +26,17 @@
return new PortInterfaceProfile(instance_name, type_name, polarity);
}
+ /**
+ * {@.ja PortInterfaceProfileの複製を生成する。}
+ * {@.en Creates the clone of PortInterfaceProfile}
+ *
+ * @param rhs
+ * {@.ja PortInterfaceProfileオブジェクト}
+ * {@.en PortInterfaceProfile object}
+ * @return
+ * {@.ja コピーされたPortInterfaceProfileオブジェクト}
+ * {@.en Copied PortInterfaceProfile object}
+ */
public static PortInterfaceProfile clone(final PortInterfaceProfile rhs) {
String instance_name = rhs.instance_name;
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortListHolderFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortListHolderFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortListHolderFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -4,14 +4,18 @@
import RTC.PortServiceListHolder;
/**
- * <p>Java用ポートリストホルダーファクトリの実装です。</p>
+ * {@.ja Java用ポートリストホルダーファクトリの実装}
+ * {@.en Implementation of PortListHolder factory}
*/
public class PortListHolderFactory {
/**
- * <p>ポートサービスリストホルダーを生成します。</p>
+ * {@.ja ポートサービスリストホルダーを生成する}
+ * {@.en Creates PortServiceListHolder}
*
- * @return 生成されたPortServiceListHolderオブジェクト
+ * @return
+ * {@.ja 生成されたPortServiceListHolderオブジェクト}
+ * {@.en Created PortServiceListHolder object}
*/
public static PortServiceListHolder create() {
@@ -19,10 +23,15 @@
}
/**
- * <p>ポートサービスリストホルダーの複製を生成します。</p>
+ * {@.ja ポートサービスリストホルダーの複製を生成する}
+ * {@.en Creates the clone of PortServiceListHolder}
*
- * @param rhs PortServiceListHolderオブジェクト
- * @return コピーされたPortServiceListHolderオブジェクト
+ * @param rhs
+ * {@.ja PortServiceListHolderオブジェクト}
+ * {@.en PortServiceListHolder object}
+ * @return
+ * {@.ja コピーされたPortServiceListHolderオブジェクト}
+ * {@.en Copied PortServiceListHolder object}
*/
public static PortServiceListHolder clone(PortServiceListHolder rhs) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortProfileFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortProfileFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortProfileFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -8,14 +8,18 @@
import RTC.RTObject;
/**
- * <p>Java用ポートプロファイルファクトリの実装です。</p>
+ * {@.ja Java用ポートプロファイルファクトリの実装}
+ * {@.en Implementation of PortProfile factory}
*/
public class PortProfileFactory {
/**
- * <p>ポートプロファイルを生成します。</p>
+ * {@.ja ポートプロファイルを生成する。}
+ * {@.en Creates PortProfile}
*
- * @return 生成されたPortProfileオブジェクト
+ * @return
+ * {@.ja 生成されたPortProfileオブジェクト}
+ * {@.en Created PortProfile object}
*/
public static PortProfile create() {
@@ -30,10 +34,15 @@
}
/**
- * <p>ポートプロファイルの複製を生成します。</p>
+ * {@.ja ポートプロファイルの複製を生成する。}
+ * {@.en Creates the clone of PortProfile}
*
- * @param rhs PortProfileオブジェクト
- * @return コピーされたPortProfileオブジェクト
+ * @param rhs
+ * {@.ja PortProfileオブジェクト}
+ * {@.en PortProfile object}
+ * @return
+ * {@.ja コピーされたPortProfileオブジェクト}
+ * {@.en Copied PortProfile object}
*/
public static PortProfile clone(final PortProfile rhs) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortServiceListHolderFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortServiceListHolderFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/PortServiceListHolderFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -4,14 +4,18 @@
import RTC.PortServiceListHolder;
/**
- * <p>Java用ポートサービスリストホルダーファクトリの実装です。</p>
+ * {@.ja Java用ポートサービスリストホルダーファクトリの実装}
+ * {@.en Implementation of port service list holder factory}
*/
public class PortServiceListHolderFactory {
/**
- * <p>ポートサービスリストホルダーを生成します。</p>
+ * {@.ja ポートサービスリストホルダーを生成する}
+ * {@.en Creates port service list holder}
*
- * @return 生成されたPortServiceListHolderオブジェクト
+ * @return
+ * {@.ja 生成されたPortServiceListHolderオブジェクト}
+ * {@.en Created PortServiceListHolder object}
*/
public static PortServiceListHolder create() {
@@ -19,10 +23,15 @@
}
/**
- * <p>ポートサービスリストホルダーの複製を生成します。</p>
+ * {@.ja ポートサービスリストホルダーの複製を生成する}
+ * {@.en Creates the clone of port service list holder}
*
- * @param rhs PortServiceListHolderオブジェクト
- * @return コピーされたPortServiceListHolderオブジェクト
+ * @param rhs
+ * {@.ja PortServiceListHolderオブジェクト}
+ * {@.en PortServiceListHolder object}
+ * @return
+ * {@.ja コピーされたPortServiceListHolderオブジェクト}
+ * {@.en Created PortServiceListHolde object}
*/
public static PortServiceListHolder clone(PortServiceListHolder rhs) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/Properties.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/Properties.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/Properties.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -9,13 +9,18 @@
import java.util.Vector;
/**
- * <p>キーと値のセットからなるプロパティセットを表します。
- * ストリームへ保管したり、ストリームからロードしたりできます。
- * 各プロパティのキー、およびそれに対応する値は文字列です。<p />
- *
- * <p>プロパティセットには、デフォルトを指定することができ、
+ * {@.ja キーと値のセットからなるプロパティセットを表す。}
+ * {@.en Property set that consists of key and value}
+ * <p>
+ * {@.ja ストリームへ保管したり、ストリームからロードしたりできる。
+ * 各プロパティのキー、およびそれに対応する値は文字列。
+ * プロパティセットには、デフォルトを指定することができ、
* 元のプロパティセットで指定されたキーが見つからない場合には、
- * この2番目のプロパティセットが検索されます。<p />
+ * この2番目のプロパティセットが検索される。}
+ * {@.en Can keep in the stream, and load it from the stream.
+ * The key to each property and the value corresponding to it are character.
+ * When default can be specified for the property set, and the key specified by
+ * former property set is not found, this second property set is retrieved.}
*
*/
public class Properties {
@@ -28,7 +33,8 @@
private static final String EMPTY = "";
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public Properties() {
@@ -36,10 +42,18 @@
}
/**
- * <p>コンストラクタです。指定されたキーを持つプロパティが初期設定されます。
- * 指定されたキーに対応する値は空文字列となります。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * <p>
+ * {@.ja 指定されたキーを持つプロパティが初期設定される。
+ * 指定されたキーに対応する値は空文字列となる。}
+ * {@.en The property with the specified key is initialized.
+ * The value corresponding to the specified key becomes a null character
+ * string.}
*
- * @param key キー
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
*/
public Properties(String key) {
@@ -47,10 +61,18 @@
}
/**
- * <p>コンストラクタです。指定されたキーおよび値を持つプロパティが初期設定されます。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * <p>
+ * {@.ja 指定されたキーおよび値を持つプロパティが初期設定される。}
+ * {@.en The property with specified key and value is initialized.}
*
- * @param key キー
- * @param value 値
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ * @param value
+ * {@.ja 値}
+ * {@.en value}
*/
public Properties(final String key, final String value) {
@@ -63,9 +85,15 @@
}
/**
- * <p>コンストラクタです。指定されたデータでデフォルトが初期設定されます。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * <p>
+ * {@.ja 指定されたデータでデフォルトが初期設定される}
+ * {@.en Default is initialized by the specified data.}
*
- * @param defaults デフォルトとなるキーと値を持つMapオブジェクト
+ * @param defaults
+ * {@.ja デフォルトとなるキーと値を持つMapオブジェクト}
+ * {@.en Map object with key and value of default}
*/
public Properties(Map<String, String> defaults) {
@@ -84,9 +112,15 @@
}
/**
- * <p>コンストラクタです。指定されたデータでデフォルトが初期設定されます。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
+ * <p>
+ * {@.ja 指定されたデータでデフォルトが初期設定される。}
+ * {@.en Default is initialized by the specified data.}
*
- * @param defaults デフォルト値を、キー・値の順に交互に並べたもの
+ * @param defaults
+ * {@.ja デフォルト値を、キー・値の順に交互に並べたもの}
+ * {@.en Default value alternately arranged in order of key and value}
*/
public Properties(final String[] defaults) {
@@ -101,10 +135,17 @@
}
/**
- * <p>コピーコンストラクタです。コピー元となるPropertiesオブジェクトと同内容を持つ
- * 別のPropertiesオブジェクトを新たに作成します。</p>
+ * {@.ja コピーコンストラクタ}
+ * {@.en Cpoy constructor}
+ *
+ * <p>
+ * {@.ja コピー元となるPropertiesオブジェクトと同内容を持つ
+ * 別のPropertiesオブジェクトを新たに作成する。}
+ * {@.en copies the Properties object.}
*
- * @param prop コピー元となるPropertiesオブジェクト
+ * @param prop
+ * {@.ja コピー元となるPropertiesオブジェクト}
+ * {@.en Properties object that becomes copy origin}
*/
public Properties(final Properties prop) {
@@ -124,9 +165,13 @@
}
/**
- * <p>指定されたPropertiesオブジェクトの内容を、当該Propertiesオブジェクトに設定します。</p>
- *
- * @param prop コピー元となるPropertiesオブジェクト
+ * {@.ja 指定されたPropertiesオブジェクトの内容を、
+ * 当該Propertiesオブジェクトに設定する。}
+ * {@.en copies the Properties object.}
+ *
+ * @param prop
+ * {@.ja コピー元となるPropertiesオブジェクト}
+ * {@.en Properties object that becomes copy origin}
*/
public void substitute(final Properties prop) {
@@ -146,8 +191,15 @@
}
/**
- * <p>削除処理を行います。当該Propertiesオブジェクトの内容をクリアして、
- * 親ノードから切り離します。また、すべての子ノードについても削除処理を行います。</p>
+ * {@.ja 削除処理を行う。}
+ * {@.en Destructor processing}
+ * <p>
+ * {@.ja 当該Propertiesオブジェクトの内容をクリアして、
+ * 親ノードから切り離す。
+ * また、すべての子ノードについても削除処理を行う。}
+ * {@.en It separates from the parent node clearing the content of the
+ * Properties object.
+ * Moreover, the destructor of all the child nodes is processed. }
*/
public void destruct() {
@@ -170,57 +222,77 @@
}
/**
- * <p>当該Propertiesオブジェクトのキーを取得します。</p>
+ * {@.ja 当該Propertiesオブジェクトのキーを取得する。}
+ * {@.en Gets the key to an object concerned Properties.}
*
- * @return キー
+ * @return
+ * {@.ja キー}
+ * {@.en key}
*/
public String getName() {
return this.name;
}
/**
- * <p>当該Propertiesオブジェクトの値を取得します。</p>
+ * {@.ja 当該Propertiesオブジェクトの値を取得する。}
+ * {@.en Gets the value to an object concerned Properties.}
*
- * @return 値
+ * @return
+ * {@.ja 値}
+ * {@.en value}
*/
public String getValue() {
return this.value;
}
/**
- * <p>当該Propertiesオブジェクトのデフォルト値を取得します。</p>
+ * {@.ja 当該Propertiesオブジェクトのデフォルト値を取得する。}
+ * {@.en Gets the default value to an object concerned Properties.}
*
- * @return デフォルト値
+ * @return
+ * {@.ja デフォルト値}
+ * {@.en default value}
*/
public String getDefaultValue() {
return this.default_value;
}
/**
- * <p>当該Propertiesオブジェクトの子ノード群を取得します。</p>
+ * {@.ja 当該Propertiesオブジェクトの子ノード群を取得する。}
+ * {@.en Gets the leaf to an object concerned Properties.}
*
- * @return 子ノードPropertiesオブジェクトリスト
+ * @return
+ * {@.ja 子ノードPropertiesオブジェクトリスト}
+ * {@.en Child node Properties object list}
*/
public Vector<Properties> getLeaf() {
return this.leaf;
}
/**
- * <p>当該Propertiesオブジェクトの親ノードを取得します。</p>
+ * {@.ja 当該Propertiesオブジェクトの親ノードを取得する。}
+ * {@.en Gets the root to an object concerned Properties.}
*
- * @return 親ノードPropertiesオブジェクト
+ * @return
+ * {@.ja 親ノードPropertiesオブジェクト}
+ * {@.en root Properties object list}
*/
public Properties getRoot() {
return this.root;
}
/**
- * <p>指定されたキーに対応する値を取得します。</p>
+ * {@.ja 指定されたキーに対応する値を取得する。}
+ * {@.en acquires the value corresponding to the specified key.}
*
- * @param key キー
- * @return 指定されたキーに対応する値を返します。<br />
- * 指定されたキーが存在するが値が設定されていない場合は、デフォルト値を返します。<br />
- * また、指定されたキーが存在しない場合は空文字列を返します。
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ * @return
+ * {@.ja 指定されたキーに対応する値を返す。
+ * 指定されたキーが存在するが値が設定されていない場合は、
+ * デフォルト値を返す。
+ * また、指定されたキーが存在しない場合は空文字列を返す。}
*/
public String getProperty(final String key) {
@@ -231,17 +303,33 @@
return (node.value.length() > 0) ? node.value : node.default_value;
}
- return this.EMPTY;
+ return Properties.EMPTY;
}
/**
- * 指定されたキーに対応する値を取得します。ただし、指定されたキーが存在しない場合や、
- * キーに対応する値が空文字列である場合は、指定された代替値が取得されます。
+ * {@.ja 指定されたキーに対応する値を取得する。}
+ * {@.en Gets the value corresponding to the specified key.}
+ * <p>
+ * {@.ja ただし、指定されたキーが存在しない場合や、
+ * キーに対応する値が空文字列である場合は、指定された代替値が取得される。}
+ * {@.en When the specified key doesn't exist or the value corresponding to
+ * the key is a null character string, the specified alternative value is
+ * gotten.}
*
- * @param key キー
- * @param alternative 代替値
- * @return 指定されたキーに対応する値を返します。<br />
- * 指定されたキーが存在しない場合や、キーに対応する値が空文字列である場合は、代替値を返します。
+ * @param key i
+ * {@.ja キー}
+ * {@.en key}
+ * @param alternative
+ * {@.ja 代替値}
+ * {@.en Alternative value}
+ * @return
+ * {@.ja 指定されたキーに対応する値を返す。
+ * 指定されたキーが存在しない場合や、
+ * キーに対応する値が空文字列である場合は、代替値を返す。}
+ * {@.en Returns the value corresponding to the specified key.
+ * When the specified key doesn't exist, and the value
+ * corresponding to the key is a null character string, an
+ * alternative value is returned. }
*/
public String getProperty(final String key, final String alternative) {
@@ -251,11 +339,19 @@
}
/**
- * <p>指定されたキーに対応するデフォルト値を取得します。</p>
+ * {@.ja 指定されたキーに対応するデフォルト値を取得する。}
+ * {@.en Gets the default value corresponding to the specified key.}
*
- * @param key キー
- * @return 指定されたキーが存在する場合は、それに対応するデフォルト値を返します。<br />
- * 指定されたキーが存在しない場合は、空文字列を返します。
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ * @return
+ * {@.ja 指定されたキーが存在する場合は、
+ * それに対応するデフォルト値を返す。
+ * 指定されたキーが存在しない場合は、空文字列を返す。}
+ * {@.en When the specified key exists, the default value corresponding
+ * to it is returned. When the specified key doesn't exist, the null
+ * character string is returned.}
*/
public String getDefault(final String key) {
@@ -266,15 +362,24 @@
return node.default_value;
}
- return this.EMPTY;
+ return Properties.EMPTY;
}
/**
- * <p>指定されたキーに対応する値を登録します。</p>
+ * {@.ja 指定されたキーに対応する値を登録する。}
+ * {@.en Registers the value corresponding to the specified key.}
*
- * @param key キー
- * @param value キーに対応する値
- * @return 以前の設定値を返します。以前の設定値が存在しない場合は、デフォルト値を返します。
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ * @param value
+ * {@.ja キーに対応する値}
+ * {@.en value}
+ * @return
+ * {@.ja 以前の設定値を返す。
+ * 以前の設定値が存在しない場合は、デフォルト値を返す。}
+ * {@.en A set value is returned. When a set value doesn't exist, the
+ * default value is returned.}
*/
public String setProperty(final String key, final String value) {
@@ -299,10 +404,15 @@
}
/**
- * <p>指定されたキーに対応するデフォルト値を設定します。</p>
+ * {@.ja 指定されたキーに対応するデフォルト値を設定する。}
+ * {@.en sets the default value corresponding to the specified key.}
*
- * @param key キー
- * @param defaultValue キーに対応する新たなデフォルト値
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ * @param defaultValue
+ * {@.ja キーに対応する新たなデフォルト値}
+ * {@.en Default value}
*/
public String setDefault(final String key, final String defaultValue) {
@@ -325,9 +435,12 @@
}
/**
- * <p>指定されたキーに対応するデフォルト値を設定します。</p>
+ * {@.ja 指定されたキーに対応するデフォルト値を設定する。}
+ * {@.en Sets the default value corresponding to the specified key.}
*
- * @param defaults デフォルト値を、キー・値の順に交互に並べたもの
+ * @param defaults
+ * {@.ja デフォルト値を、キー・値の順に交互に並べたもの}
+ * {@.en Default value in which key and value are alternately displayed}
*/
public void setDefaults(final String[] defaults) {
@@ -343,18 +456,27 @@
}
/**
- * <p>指定された出力ストリームに、当該Propertiesオブジェクトの内容を出力します。</p>
+ * {@.ja 指定された出力ストリームに、
+ * 当該Propertiesオブジェクトの内容を出力する。}
+ * {@.en outputs the content of a Properties object to the specified output
+ * stream. }
*
- * @param out 出力先ストリーム
+ * @param out
+ * {@.ja 出力先ストリーム}
+ * {@.en output stream}
*/
public void list(OutputStream out) {
_store(out, "", this);
}
/**
- * <p>指定されたリーダーから、キーと値が対となったプロパティセットを読み込みます。</p>
+ * {@.ja 指定されたリーダーから、
+ * キーと値が対となったプロパティセットを読み込む。}
+ * {@.en Reads the property set from the specified buffer.}
*
- * @param reader 読み込み元となるリーダー。
+ * @param reader
+ * {@.ja 読み込み元となるリーダー。}
+ * {@.en buffer}
*/
public void load(BufferedReader reader) throws IOException {
@@ -395,20 +517,32 @@
}
/**
- * <p>当該Propertiesオブジェクトの内容を、指定されたストリームに出力します。</p>
+ * {@.ja 当該Propertiesオブジェクトの内容を、
+ * 指定されたストリームに出力する。}
+ * {@.en Outputs the content of a Properties to the specified stream.}
*
- * @param out 出力先ストリーム
- * @param header 出力内容の先頭に付加されるヘッダコメント文字列
+ * @param out
+ * {@.ja 出力先ストリーム}
+ * {@.en output stream}
+ * @param header
+ * {@.ja 出力内容の先頭に付加されるヘッダコメント文字列}
+ * {@.en String added to head of content of output}
*/
public void save(OutputStream out, final String header) {
store(out, header);
}
/**
- * <p>当該Propertiesオブジェクトの内容を、指定されたストリームに出力します。</p>
+ * {@.ja 当該Propertiesオブジェクトの内容を、
+ * 指定されたストリームに出力する。}
+ * {@.en Outputs the content of a Properties to the specified stream.}
*
- * @param out 出力先ストリーム
- * @param header 出力内容の先頭に付加されるヘッダコメント文字列
+ * @param out
+ * {@.ja 出力先ストリーム}
+ * {@.en output stream}
+ * @param header
+ * {@.ja 出力内容の先頭に付加されるヘッダコメント文字列}
+ * {@.en String added to head of content of output}
*/
public void store(OutputStream out, final String header) {
@@ -422,9 +556,14 @@
}
/**
- * <p>当該Propertiesオブジェクトおよび子ノード内に存在するキーのリストを取得します。</p>
+ * {@.ja 当該Propertiesオブジェクトおよび子ノード内に存在するキーの
+ * リストを取得する。}
+ * {@.en acquires the list of the key that exists among the Properties
+ * object and the child nodes.}
*
- * @return キーのリスト
+ * @return
+ * {@.ja キーのリスト}
+ * {@.en list of key}
*/
public final Vector<String> propertyNames() {
@@ -437,16 +576,30 @@
}
/**
- * <p>当該Propertiesオブジェクトおよび子ノード内に存在するプロパティの数を取得します。
+ * {@.ja 当該Propertiesオブジェクトおよび子ノード内に存在するプロパティの
+ * 数を取得する。}
+ * {@.en acquires the number of properties that exist among the Properties
+ * object and the child nodes.}
*
- * @return プロパティ数
+ * @return
+ * {@.ja プロパティ数}
+ * {@.en the number of properties}
*/
public final int size() {
return propertyNames().size();
}
/**
- * <p>ノードを検索する</p>
+ * {@.ja ノードを検索する}
+ * {@.en Finds node.}
+ *
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ *
+ * @return
+ * {@.ja Properties}
+ * {@.en Properties}
*/
public final Properties findNode(final String key) {
if (key.length() == 0) { return null; }
@@ -456,10 +609,19 @@
}
/**
- * <p>指定されたキーに対応する値を直接保持しているPropertiesオブジェクトを取得します。</p>
+ * {@.ja 指定されたキーに対応する値を直接保持しているProperties
+ * オブジェクトを取得する}
+ * {@.en acquires the Properties object that maintains the value
+ * corresponding to the specified key.}
*
- * @param key キー
- * @return 指定されたキーに対応する値を直接保持しているPropertiesオブジェクト
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ * @return
+ * {@.ja 指定されたキーに対応する値を直接保持しているProperties
+ * オブジェクト}
+ * {@.en Properties object that maintains value corresponding to
+ * specified key}
*/
public final Properties getNode(final String key) {
if (key.length() == 0) { return this; }
@@ -472,11 +634,17 @@
}
/**
- * <p>指定されたキーのPropertiesオブジェクトを、当該Propertiesオブジェクト内に
- * 子ノードとして作成します。</p>
+ * {@.ja 指定されたキーのPropertiesオブジェクトを、
+ * 当該Propertiesオブジェクト内に子ノードとして作成する。}
+ * {@.en makes the child node the Properties object of the specified key.}
*
- * @param key キー
- * @return 指定されたキーがすでに存在していた場合はfalseを、さもなくばtrueを返します。
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ * @return
+ * {@.ja 指定されたキーがすでに存在していた場合はfalseを、
+ * さもなくばtrueを返す。}
+ * {@.en When the specified key has already existed, false is returned.}
*/
public boolean createNode(final String key) {
if (key.length() == 0) { return false; }
@@ -490,12 +658,18 @@
}
/**
- * <p>指定されたキーの子ノードPropertiesオブジェクトを、
- * 当該Propertiesオブジェクトから切り離します。</p>
+ * {@.ja 指定されたキーの子ノードPropertiesオブジェクトを、
+ * 当該Propertiesオブジェクトから切り離す。}
+ * {@.en Separates child node Properties of the specified key from
+ * concerned Properties.}
*
- * @param name 切り離したい子ノードのキー
- * @return 切り離された子ノードPropertiesオブジェクトを返します。<br />
- * 指定されたキーに対応する子ノードが存在しない場合は、nullを返します。
+ * @param name
+ * {@.ja 切り離したい子ノードのキー}
+ * {@.en Key to child node that separates}
+ * @return
+ * {@.ja 切り離された子ノードPropertiesオブジェクトを返す。
+ * 指定されたキーに対応する子ノードが存在しない場合は、nullを返す。}
+ * {@.en The separated child node Properties object is returned.}
*/
public Properties removeNode(String name) {
@@ -512,13 +686,22 @@
}
/**
- * <p>当該Propertiesオブジェクトの直接の子ノード(つまり、孫ノード以下は含まない)の中に、
- * 指定されたキーを持つものが存在するかどうか調べます。存在する場合には、
- * そのPropertiesオブジェクトを取得します。</p>
+ * {@.ja 当該Propertiesオブジェクトの
+ * 直接の子ノード(つまり、孫ノード以下は含まない)の中に、
+ * 指定されたキーを持つものが存在するかどうか調べる。存在する場合には、
+ * そのPropertiesオブジェクトを取得する。}
+ * {@.en examines whether something with the specified key exists in the
+ * child node of the Properties object.}
*
- * @param key キー
- * @return 指定されたキーに対応するPropertiesオブジェクトを返します。<br />
- * 指定されたキーに対応するPropertiesオブジェクトが存在しない場合は、nullを返します。
+ * @param key
+ * {@.ja キー}
+ * {@.en key}
+ * @return
+ * {@.ja 指定されたキーに対応するPropertiesオブジェクトを返す。
+ * 指定されたキーに対応するPropertiesオブジェクトが存在しない場合は、
+ * nullを返す。}
+ * {@.en The Properties object corresponding to the specified key is
+ * returned.}
*/
public final Properties hasKey(final String key) {
@@ -532,7 +715,8 @@
}
/**
- * <p>子ノードを全て削除します。</p>
+ * {@.ja 子ノードを全て削除する。}
+ * {@.en Deletes all his child nodes.}
*/
public void clear() {
@@ -545,10 +729,16 @@
}
/**
- * <p>指定されたPropertiesオブジェクト内のプロパティセットを、当該Properties
- * オブジェクト内にマージします。ただし、デフォルト値はマージされません。</p>
+ * {@.ja 指定されたPropertiesオブジェクト内のプロパティセットを、
+ * 当該Propertiesオブジェクト内にマージする。}
+ * {@.en merges the specified Properties object with an object concerned
+ * Properties.}
+ * <p>
+ * {@.ja ただし、デフォルト値はマージされない。}
*
- * @param prop マージ元となるPropertiesオブジェクト
+ * @param prop
+ * {@.ja マージ元となるPropertiesオブジェクト}
+ * {@.en Properties object in merging origin}
*/
public void merge(final Properties prop) {
@@ -560,10 +750,14 @@
}
/**
- * <p>指定された文字列を、所定のデリミタによってキーと値のペアに分離します。</p>
+ * {@.ja 指定された文字列を、
+ * 所定のデリミタによってキーと値のペアに分離する。}
*
- * @param str 分離対象となる文字列。通常は、キーと値がデリミタで区切られている文字列。
- * @return キーと値を格納するPairオブジェクト。
+ * @param str
+ * {@.ja 分離対象となる文字列。
+ * 通常は、キーと値がデリミタで区切られている文字列。}
+ * @return
+ * {@.ja キーと値を格納するPairオブジェクト。}
*/
protected Pair<String, String> splitKeyValue(final String str) {
@@ -584,11 +778,14 @@
}
/**
- * <p>指定された文字列を指定したデリミタで分離した結果を取得します。</p>
+ * {@.ja 指定された文字列を指定したデリミタで分離した結果を取得する。}
*
- * @param str 分離対象となる文字列
- * @param delim デリミタ
- * @return 分離された文字列のリスト
+ * @param str
+ * {@.ja 分離対象となる文字列}
+ * @param delim
+ * {@.ja デリミタ}
+ * @return
+ * {@.ja 分離された文字列のリスト}
*/
protected boolean split(final String str, final char delim, Vector<String> values) {
@@ -705,6 +902,20 @@
return out;
}
+ /**
+ * {@.ja Propertiesの内容を文字列にする。}
+ * {@.en makes the content of Properties a character string.}
+ *
+ * @param out
+ * {@.ja 出力用文字列}
+ * {@.en String for output}
+ * @param curr
+ * {@.ja Properties}
+ * {@.en Properties}
+ * @param index
+ * {@.ja 階層}
+ * {@.en Hierarchy}
+ */
public String _dump(String out, final Properties curr, int index) {
String crlf = System.getProperty("line.separator");
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/RTCUtil.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/RTCUtil.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/RTCUtil.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -14,15 +14,24 @@
/**
- * <p>RTコンポーネントのコンポーネント型を判別するためのクラスです。</p>
+ * {@.ja RTコンポーネントのコンポーネント型を判別するためのクラス}
+ * {@.en Class to distinguish component type of RT component}
+ *
*/
public class RTCUtil {
/**
- * <p>RTコンポーネントのインスタンスがDataFlowComponentであるかどうか判断します。</p>
+ * {@.ja RTコンポーネントのインスタンスが
+ * DataFlowComponentであるかどうか判断する}
+ * {@.en Confirms whether specified RT-Component is DataFlowComponent}
*
- * @param obj 判断対象のオブジェクト
- * @return DataFlowComponentのインスタンスであればtrueを、さもなくばfalseを返します。
+ * @param obj
+ * {@.ja 判断対象のオブジェクト}
+ * {@.en The target CORBA object for the investigation}
+ * @return
+ * {@.ja DataFlowComponentのインスタンスであればtrueを、
+ * さもなくばfalseを返す}
+ * {@.en Investigation result of DataFlowComponent}
*/
public static boolean isDataFlowComponent(Object obj) {
@@ -36,10 +45,17 @@
}
/**
- * <p>RTコンポーネントのインスタンスがFsmParticipantであるかどうか判断します。</p>
+ * {@.ja RTコンポーネントのインスタンスが
+ * FsmParticipantであるかどうか判断する}
+ * {@.en Confirms whether specified RT-Component is FsmParticipant}
*
- * @param obj 判断対象のオブジェクト
- * @return FsmParticipantのインスタンスであればtrueを、さもなくばfalseを返します。
+ * @param obj
+ * {@.ja 判断対象のオブジェクト}
+ * {@.en The target CORBA object for the investigation}
+ * @return
+ * {@.ja FsmParticipantのインスタンスであればtrueを、
+ * さもなくばfalseを返す}
+ * {@.en Investigation result of FsmParticipant}
*/
public static boolean isFsmParticipant(Object obj) {
@@ -53,10 +69,16 @@
}
/**
- * <p>RTコンポーネントのインスタンスがFsmObjectであるかどうか判断します。</p>
+ * {@.ja RTコンポーネントのインスタンスが
+ * FsmObjectであるかどうか判断する}
+ * {@.en Confirms whether specified RT-Component is Fsm}
*
- * @param obj 判断対象のオブジェクト
- * @return FsmObjectのインスタンスであればtrueを、さもなくばfalseを返します。
+ * @param obj
+ * {@.ja 判断対象のオブジェクト}
+ * {@.en The target CORBA object for the investigation}
+ * @return
+ * {@.ja FsmObjectのインスタンスであればtrueを、さもなくばfalseを返す}
+ * {@.en Investigation result of Fsm}
*/
public static boolean isFsmObject(Object obj) {
@@ -67,13 +89,20 @@
return false;
}
return true;
-}
+ }
/**
- * <p>RTコンポーネントのインスタンスがMultiModeObjectであるかどうか判断します。</p>
+ * {@.ja RTコンポーネントのインスタンスが
+ * MultiModeObjectであるかどうか判断する}
+ * {@.en Confirms whether specified RT-Component is multiModeComponent}
*
- * @param obj 判断対象のオブジェクト
- * @return MultiModeObjectのインスタンスであればtrueを、さもなくばfalseを返します。
+ * @param obj
+ * {@.ja 判断対象のオブジェクト}
+ * {@.en The target CORBA object for the investigation}
+ * @return
+ * {@.ja MultiModeObjectのインスタンスであればtrueを、
+ * さもなくばfalseを返す}
+ * {@.en Investigation result of multiModeComponent}
*/
public static boolean isMultiModeObject(Object obj) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ShortHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ShortHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ShortHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,72 +3,110 @@
import java.io.Serializable;
/**
-* <p>short型データ格納用クラスです。</p>
+* {@.ja short型データ格納用クラス}
+* {@.en Class for short type data storage}
*/
public class ShortHolder implements ValueHolder, Serializable {
+ private static final long serialVersionUID = 7736076267074278241L;
+
/**
- * <p>short型データ設定値</p>
+ * {@.ja short型データ設定値}
+ * {@.en short type data setting value}
*/
public Short value = null;
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public ShortHolder() {
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public ShortHolder(short initialValue) {
value = new Short(initialValue);
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public ShortHolder(Short initialValue) {
value = initialValue;
}
/**
- * <p>文字列からshort型に変換して設定します。</p>
+ * {@.ja 文字列からshort型に変換して設定する}
+ * {@.en Converts from the character string into short type and sets it.}
*
- * @param def_val 設定値文字列表現
+ * @param def_val
+ * {@.ja 設定値文字列表現}
+ * {@.en String}
*
- * @exception Exception 渡された文字列が構文解析可能な short 値を含まない。
+ * @exception Exception
+ * {@.ja 渡された文字列が構文解析可能な short 値を含まない。}
+ * {@.en The character string of the argument is not good at parsing.}
*/
public void stringFrom(String def_val) throws Exception {
value = new Short(def_val);
}
/**
- * <p>設定値を取得します。</p>
+ * {@.ja 設定値を取得する}
+ * {@.en Gets a set value.}
*
- * @return 設定値
+ * @return
+ * {@.ja 設定値}
+ * {@.en Set value}
*/
public short getValue(){
return value.shortValue();
}
/**
- * <p>設定値を文字列に変換して取得します。</p>
+ * {@.ja 設定値を文字列に変換して取得する}
+ * {@.en Converts a set value into the character string and gets it. }
*
- * @return 設定値文字列表現
+ * @return
+ * {@.ja 変換文字列}
+ * {@.en Converted character string}
*/
public String toString(){
return String.valueOf(value);
}
+ /**
+ * {@.ja InputStreamのデータを読み込む}
+ * {@.en Reads data from InputStream.}
+ *
+ * @param i
+ * {@.ja InputStream}
+ * {@.en InputStream}
+ */
public void _read (org.omg.CORBA.portable.InputStream i)
{
short data = i.read_short();
value = new Short(data);
}
+ /**
+ * {@.ja OutputStreamへデータを書き込む}
+ * {@.en Writes data in OutputStream}
+ *
+ * @param o
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
public void _write (org.omg.CORBA.portable.OutputStream o)
{
o.write_short(value.shortValue());
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/StringHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/StringHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/StringHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,54 +3,86 @@
import java.io.Serializable;
/**
-* <p>String型データ格納用クラスです。</p>
+* {@.ja String型データ格納用クラス}
+* {@.en Class for string type data storage}
*/
public class StringHolder implements ValueHolder, Serializable {
+ private static final long serialVersionUID = -36186342939612466L;
+
/**
- * <p>String型データ設定値</p>
+ * {@.ja String型データ設定値}
+ * {@.en String type data setting value}
*/
public String value = null;
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public StringHolder() {
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param initialValue 初期値
+ * @param initialValue
+ * {@.ja 初期値}
+ * {@.en Initial value}
*/
public StringHolder(String initialValue) {
value = initialValue;
}
/**
- * <p>文字列からStringt型に変換して設定します。</p>
+ * {@.ja 文字列からString型に変換して設定する}
+ * {@.en Converts from the character string into String type and sets it.}
*
- * @param def_val 設定値文字列表現
+ * @param def_val
+ * {@.ja 設定値文字列表現}
+ * {@.en String}
*
- * @exception Exception 渡された文字列が構文解析可能な String 値を含まない。
+ * @exception Exception
+ * {@.ja 渡された文字列が構文解析可能な String 値を含まない。}
+ * {@.en The character string of the argument is not good at parsing.}
*/
public void stringFrom(String def_val) throws Exception {
value = def_val;
}
/**
- * <p>設定値を文字列に変換して取得します。</p>
+ * {@.ja 設定値を文字列に変換して取得する}
+ * {@.en Converts a set value into the character string and gets it. }
*
- * @return 設定値文字列表現
+ * @return
+ * {@.ja 変換文字列}
+ * {@.en Converted character string}
*/
public String toString(){
return value;
}
+ /**
+ * {@.ja InputStreamのデータを読み込む}
+ * {@.en Reads data from InputStream.}
+ *
+ * @param i
+ * {@.ja InputStream}
+ * {@.en InputStream}
+ */
public void _read (org.omg.CORBA.portable.InputStream i)
{
value = i.read_string();
}
+ /**
+ * {@.ja OutputStreamへデータを書き込む}
+ * {@.en Writes data in OutputStream}
+ *
+ * @param o
+ * {@.ja OutputStream}
+ * {@.en OutputStream}
+ */
public void _write (org.omg.CORBA.portable.OutputStream o)
{
o.write_string(value.toString());
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/StringUtil.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/StringUtil.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/StringUtil.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -8,11 +8,19 @@
public class StringUtil {
/**
- * <p> 文字列がエスケープされているか判断する。 </p>
+ * {@.ja 文字列がエスケープされているか判断する。}
+ * {@.en Judges whether to be escaped.}
*
- * @param str エスケープされているかどうか判断する文字を含む文字列
- * @param pos エスケープされているかどうか判断する文字の位置
- * @return 指定した文字がエスケープされていれば true, それ以外は false
+ * @param str
+ * {@.ja エスケープされているかどうか判断する文字を含む文字列}
+ * {@.en Character string including character that judges whether to be
+ * escaped}
+ * @param pos
+ * {@.ja エスケープされているかどうか判断する文字の位置}
+ * {@.en Position of character that judges whether to be escaped}
+ * @return
+ * {@.ja 指定した文字がエスケープされていれば true, それ以外は false}
+ * {@.en The character string is true if escaped.}
*/
public static boolean isEscaped(final String str, int pos) {
@@ -24,18 +32,32 @@
}
/**
- * 文字列をエスケープする。<br />
- * 次の文字をエスケープシーケンスに変換する。<br />
+ * {@.ja 文字列をエスケープする}
+ * {@.en Escapes in the character string.}
+ * <p>
+ * {@.ja 次の文字をエスケープシーケンスに変換する。
* <ul>
* <li>HT -> "\t"</li>
* <li>LF -> "\n"</li>
* <li>CR -> "\r"</li>
* <li>FF -> "\f"</li>
* </ul>
- * なお、シングルクオート、ダブルクオートについては処理はしない。<br />
- * <br />
- * @param str エスケープ処理対象の文字列
- * @return エスケープ処理後の文字列
+ * なお、シングルクオート、ダブルクオートについては処理はしない。}
+ * {@.en Converts the following character into the escape sequence.
+ * <ul>
+ * <li>HT -> "\t"</li>
+ * <li>LF -> "\n"</li>
+ * <li>CR -> "\r"</li>
+ * <li>FF -> "\f"</li>
+ * </ul>
+ * Processes neither a single quart nor a double quart.}
+ *
+ * @param str
+ * {@.ja エスケープ処理対象の文字列}
+ * {@.en Character string of escape processing object}
+ * @return
+ * {@.ja エスケープ処理後の文字列}
+ * {@.en Character string after escape is processed}
*/
public static String escape(final String str) {
@@ -78,8 +100,10 @@
}
/**
- * 文字列をアンエスケープする。<br />
- * 次のエスケープシーケンスを文字に変換する。<br />
+ * {@.ja 文字列をアンエスケープする}
+ * {@.en Unescapes in the character string.}
+ * <p>
+ * {@.ja 次のエスケープシーケンスを文字に変換する。
* <ul>
* <li>"\t" -> HT</li>
* <li>"\n" -> LF</li>
@@ -88,10 +112,25 @@
* <li>"\"" -> "</li>
* <li>"\'" -> '</li>
* </ul>
- * espace()の完全な逆変換にはなっていない点に注意すること。<br />
- * <br />
- * @param str アンエスケープ対象の文字列
- * @return アンエスケープ後の文字列
+ * espace()の完全な逆変換にはなっていない点に注意すること。}
+ * {@.en Converts the following escape sequence into the character.
+ * <ul>
+ * <li>"\t" -> HT</li>
+ * <li>"\n" -> LF</li>
+ * <li>"\r" -> CR</li>
+ * <li>"\f" -> FF</li>
+ * <li>"\"" -> "</li>
+ * <li>"\'" -> '</li>
+ * </ul>
+ * Note the point that doesn't become it in a complete inversion of
+ * espace().}
+ *
+ * @param str
+ * {@.ja アンエスケープ対象の文字列}
+ * {@.en Character string where to be unescaped}
+ * @return
+ * {@.ja アンエスケープ後の文字列}
+ * {@.en Character string after it unescapes}
*/
public static String unescape(final String str) {
@@ -136,14 +175,28 @@
}
/**
- * <p> 与えられた文字列をbool値に変換する。 </p>
- * <p> Erase the head/tail blank and replace upper case to lower case </p>
+ * {@.ja 与えられた文字列をbool値に変換する}
+ * {@.en Cconverts the given character string into bool value.}
+ * <p>
+ * {@.en Erase the head/tail blank and replace upper case to lower case}
*
- * @param target 判断対象文字列値
- * @param yes true表現文字列
- * @param no false表現文字列
- * @param default_value デフォルト値
- * @return 比較結果を返す。true表現文字列、false表現文字列のどちらとも一致しない場合は、デフォルト値を返す。
+ * @param target
+ * {@.ja 判断対象文字列値}
+ * {@.en Strig for judgment}
+ * @param yes
+ * {@.ja true表現文字列}
+ * {@.en Charactor string that expresses true.}
+ * @param no
+ * {@.ja false表現文字列}
+ * {@.en Charactor string that expresses false.}
+ * @param default_value
+ * {@.ja デフォルト値}
+ * {@.en default}
+ * @return
+ * {@.ja 比較結果を返す。
+ * true表現文字列、false表現文字列のどちらとも一致しない場合は、
+ * デフォルト値を返す。}
+ * {@.en Comparative result}
*/
public static boolean toBool(String target, String yes, String no, boolean default_value) {
if( target.toUpperCase().contains(yes.toUpperCase()) ) {
@@ -156,12 +209,17 @@
}
/**
- * <p> 与えられた文字列リストから重複を削除する。 </p>
+ * {@.ja 与えられた文字列リストから重複を削除する}
+ * {@.en Deletes repetition from the given character string list.}
+ * <p>
+ * {@.ja 引数で与えられた文字列リストから重複を削除したリストを作成する。}
*
- * 引数で与えられた文字列リストから重複を削除したリストを作成する。
- *
- * @param sv 確認元文字列リスト
- * @return 重複削除処理結果リスト
+ * @param sv
+ * {@.ja 確認元文字列リスト}
+ * {@.en Character string list}
+ * @return
+ * {@.ja 重複削除処理結果リスト}
+ * {@.en List of character string of result}
*/
public static Vector<String> unique_sv(String[] sv) {
Vector<String> str = new Vector<String>();
@@ -174,13 +232,18 @@
}
/**
- * <p> 与えられた文字列リストからCSVを生成する。 </p>
+ * {@.ja 与えられた文字列リストからCSVを生成する}
+ * {@.en Creates CSV from the given character string list.}
+ * <p>
+ * {@.ja 引数で与えられた文字列リストの各要素を並べたCSVを生成する。
+ * 文字列リストが空の場合には空白文字を返す。}
*
- * 引数で与えられた文字列リストの各要素を並べたCSVを生成する。
- * 文字列リストが空の場合には空白文字を返す。
- *
- * @param sv CSV変換対象文字列リスト
- * @return CSV変換結果文字列
+ * @param sv
+ * {@.ja CSV変換対象文字列リスト}
+ * {@.en Character string list to be converted}
+ * @return
+ * {@.ja CSV変換結果文字列}
+ * {@.en Character string of conversion result}
*/
public static String flatten(Vector<String> sv) {
if( sv.size() == 0) return "";
@@ -194,13 +257,18 @@
}
/**
- * <p> 与えられた文字列リストからCSVを生成する。 </p>
+ * {@.ja 与えられた文字列リストからCSVを生成する}
+ * {@.en generates CSV from the given character string list.}
+ * <p>
+ * {@.ja 引数で与えられた文字列リストの各要素を並べたCSVを生成する。
+ * 文字列リストが空の場合には空白文字を返す。}
*
- * 引数で与えられた文字列リストの各要素を並べたCSVを生成する。
- * 文字列リストが空の場合には空白文字を返す。
- *
- * @param sv CSV変換対象文字列リスト
- * @return CSV変換結果文字列
+ * @param sv
+ * {@.ja CSV変換対象文字列リスト}
+ * {@.en Character string list to be converted}
+ * @return
+ * {@.ja CSV変換結果文字列}
+ * {@.en Character string of conversion result}
*/
public static String flatten(Set sv) {
if( sv.size() == 0) return "";
@@ -219,13 +287,20 @@
}
/**
- * <p> 文字列を分割文字で分割する。 </p>
+ * {@.ja 文字列を分割文字で分割する}
+ * {@.en divides the character string by the division character.}
+ * <p>
+ * {@.ja 設定された文字列を与えられたデリミタで分割する。}
*
- * 設定された文字列を与えられたデリミタで分割する。
- *
- * @param input 分割対象文字列
- * @param delimiter 分割文字列(デリミタ)
- * @return 文字列分割結果リスト
+ * @param input
+ * {@.ja 分割対象文字列}
+ * {@.en Character string to be divided}
+ * @param delimiter
+ * {@.ja 分割文字列(デリミタ)}
+ * {@.en Delimiter}
+ * @return
+ * {@.ja 文字列分割結果リスト}
+ * {@.en Result}
*/
public static Vector<String> split(final String input, final String delimiter) {
Vector<String> result = new Vector<String>();
@@ -242,15 +317,19 @@
}
/**
- * <p> 文字列を正規化する。 </p>
+ * {@.ja 文字列を正規化する}
+ * {@.en Erase the head/tail blank and replace upper case to lower case}
*
- * 与えられた文字列の先頭および末尾に存在する空白文字を削除し、
- * 英字をすべて小文字に変換する。
+ * {@.ja 与えられた文字列の先頭および末尾に存在する空白文字を削除し、
+ * 英字をすべて小文字に変換する。}
*
- * <p> Erase the head/tail blank and replace upper case to lower case </p>
*
- * @param str 処理対象文字列
- * @return 変換後の文字列
+ * @param str
+ * {@.ja 処理対象文字列}
+ * {@.en String}
+ * @return
+ * {@.ja 変換後の文字列}
+ * {@.en Result}
*/
public static String normalize(String str) {
str = str.trim();
@@ -258,10 +337,22 @@
return str;
}
/**
- * <p> includes </p>
+ * {@.ja 指定した文字列が、指定した文字列のリストに含まれているかを
+ * チェックする。}
+ * {@.en Checks whether the specified character string is included in the
+ * list of the specified character string.}
* @param list
+ * {@.ja 文字列のリスト}
+ * {@.en the list of the string}
* @param value
+ * {@.ja 文字列}
+ * {@.en String}
* @param ignore_case
+ * {@.ja 大文字小文字無視フラグ}
+ * {@.en Capital letters and small letters flag}
+ * @return
+ * {@.ja 含まれていればtrue}
+ * {@.en It is true if included.}
*/
public static boolean includes(final Vector<String> list, String value,
boolean ignore_case) {
@@ -286,8 +377,14 @@
}
/**
- * <p> 与えられた文字列が絶対パスかどうかを判断する </p>
+ * {@.ja 与えられた文字列が絶対パスかどうかを判断する}
+ * {@.en Judges whether it is an absolute path the given String.}
* @param str
+ * {@.ja 文字列}
+ * {@.en String}
+ * @return
+ * {@.ja 絶対パスならtrue}
+ * {@.en an absolute path is true}
*/
public static boolean isAbsolutePath(final String str) {
// UNIX absolute path is begun from '/'
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TimeValue.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TimeValue.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TimeValue.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,16 @@
package jp.go.aist.rtm.RTC.util;
/**
-* <p>時間を表現するクラスです。</p>
+* {@.ja 時間を表現するクラス}
+* {@.en Class that expresses time}
*/
public class TimeValue {
private final int TIMEVALUE_ONE_SECOND_IN_USECS = 1000000; // 1 [sec] = 1000000 [μsec]
/**
- * <p>デフォルトコンストラクタです。</p>
+ * {@.ja デフォルトコンストラクタ}
+ * {@.en Default constructor}
*/
public TimeValue() {
this.tv_sec = 0;
@@ -17,19 +19,26 @@
}
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param sec 設定値(秒)
- * @param usec 設定値(マイクロ秒)
+ * @param sec
+ * {@.ja 設定値(秒)}
+ * {@.en Second}
+ * @param usec
+ * {@.ja 設定値(マイクロ秒)}
+ * {@.en Micro second}
*/
public TimeValue(long sec, long usec) {
this.tv_sec = sec;
this.tv_usec = usec;
}
/**
- * <p> TimeValue </p>
+ * {@.ja コンストラクタ}
*
* @param timeval
+ * {@.ja 設定値}
+ * {@.en Set value}
*/
public TimeValue(double timeval) {
double dbHalfAdj;
@@ -47,9 +56,12 @@
}
/**
- * <p>コピーコンストラクタです。</p>
+ * {@.ja コピーコンストラクタ}
+ * {@.en Copy constructor}
*
- * @param tm コピー元
+ * @param tm
+ * {@.ja コピー元}
+ * {@.en Copy origin}
*/
public TimeValue(TimeValue tm) {
this.tv_sec = tm.tv_sec;
@@ -57,29 +69,40 @@
}
/**
- * <p>設定時間(秒)を取得します。</p>
+ * {@.ja 設定時間(秒)を取得する}
+ * {@.en Gets the set time (second).}
*
- * @return 設定時間(秒)
+ * @return
+ * {@.ja 設定時間(秒)}
+ * {@.en set time (second)}
*/
public long getSec() {
return tv_sec;
}
/**
- * <p>設定時間(マイクロ秒)を取得します。</p>
+ * {@.ja 設定時間(マイクロ秒)を取得する}
+ * {@.en Gets the set time (micro second).}
*
- * @return 設定時間(マイクロ秒)
+ * @return
+ * {@.ja 設定時間(マイクロ秒)}
+ * {@.en set time (micro second)}
*/
public long getUsec() {
return tv_usec;
}
/**
- * <p>時間を減算します。</p>
+ * {@.ja 時間を減算する}
+ * {@.en Subtracts time.}
*
- * @param tm 減算する時間
+ * @param tm
+ * {@.ja 減算する時間}
+ * {@.en Subtacted time}
*
- * @return 減算結果
+ * @return
+ * {@.ja 減算結果}
+ * {@.en Subtraction result}
*/
public TimeValue minus(TimeValue tm) {
TimeValue res = new TimeValue();
@@ -105,11 +128,16 @@
}
/**
- * <p>時間を加算します。</p>
+ * {@.ja 時間を加算する}
+ * {@.en Adds time.}
*
- * @param tm 加算する時間
+ * @param tm
+ * {@.ja 加算する時間}
+ * {@.en Added time}
*
- * @return 加算結果
+ * @return
+ * {@.ja 加算結果}
+ * {@.en Addition result}
*/
public TimeValue plus(TimeValue tm) {
TimeValue res = new TimeValue();
@@ -124,11 +152,16 @@
}
/**
- * <p>数字→時間へ変換します。</p>
+ * {@.ja 数字→時間へ変換する}
+ * {@.en Converts the numerical itno time}
*
- * @param time 変換元の数値
+ * @param time
+ * {@.ja 変換元の数値}
+ * {@.en Numerical value of conversion origin}
*
- * @return 時間変換結果
+ * @return
+ * {@.ja 時間変換結果}
+ * {@.en Conversion result}
*/
public TimeValue convert(double time) {
double dbHalfAdj;
@@ -148,9 +181,12 @@
}
/**
- * <p>時間→数字へ変換します。</p>
+ * {@.ja 時間→数字へ変換する}
+ * {@.en Converts time into the numerical}
*
- * @return 数字変換結果
+ * @return
+ * {@.ja 数字変換結果}
+ * {@.en Conversion result}
*/
public double toDouble(){
normalize();
@@ -158,21 +194,32 @@
}
/**
- * <p> sec </p>
+ * {@.ja sec}
+ * {@.en Gets sec}
+ * return
+ * {@.ja sec}
+ * {@.en sec}
*/
public long sec() {
return tv_sec;
}
/**
- * <p> usec </p>
+ * {@.ja usec}
+ * {@.en Gets usec}
+ * return
+ * {@.ja usec}
+ * {@.en usec}
*/
public long usec() {
return tv_usec;
}
/**
- * <p>保持している内容の符号を判定する。</p>
+ * {@.ja 保持している内容の符号を判定する}
+ * {@.en Judges the sign of the maintained content}
*
- * @return 正ならば1を、負ならば-1を、0ならば0
+ * @return
+ * {@.ja 正ならば1を、負ならば-1を、0ならば0}
+ * {@.en positive is 1,negative is -1,0 is 0}
*/
public int sign() {
normalize();
@@ -183,7 +230,8 @@
return 0;
}
/**
- * <p>値の表現を正準形式に正規化する。</p>
+ * {@.ja 値の表現を正準形式に正規化する}
+ * {@.en Regularizes the value}
*
*/
private void normalize() {
@@ -209,11 +257,11 @@
}
/**
- * <p>設定された時間(秒単位)</p>
+ * {@.ja 設定された時間(秒単位)}
*/
private long tv_sec;
/**
- * <p>設定された時間(マイクロ秒単位)</p>
+ * {@.ja 設定された時間(マイクロ秒単位)}
*/
private long tv_usec;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TimedFloatFactory.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TimedFloatFactory.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TimedFloatFactory.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -3,8 +3,20 @@
import RTC.Time;
import RTC.TimedFloat;
+/**
+ * {@.ja TimedFloatのファクトリ}
+ * {@.en Implementation of TimedFloat factory}
+ */
public class TimedFloatFactory {
+ /**
+ * {@.ja TimedFloatを生成する。}
+ * {@.en Creates TimedFloat}
+ *
+ * @return
+ * {@.ja 生成されたTimedFloatオブジェクト}
+ * {@.en Created TimedFloat object}
+ */
public static TimedFloat create() {
TimedFloat tf = new TimedFloat();
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/Timer.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/Timer.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/Timer.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -9,9 +9,12 @@
public class Timer implements Runnable {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ。}
+ * {@.en Constructor}
*
- * @param interval タイマー起動周期
+ * @param interval
+ * {@.ja タイマー起動周期}
+ * {@.en Timer start cycle}
*/
public Timer(TimeValue interval) {
m_interval = new TimeValue(interval);
@@ -19,7 +22,16 @@
}
/**
- * <p>タイマー用スレッドを生成します。</p>
+ * {@.ja スレッドを生成。}
+ * {@.en Creates the thread.}
+ * <p>
+ * {@.ja タイマー用スレッドを生成する。}
+ * {@.en Creates the thread for the timer.}
+ *
+ * @return
+ * {@.ja 常に0を返す。}
+ * {@.en Always returns 0.}
+ *
*/
public int open() {
Thread t = new Thread(this);
@@ -28,12 +40,19 @@
}
/**
- * <p>タイマーの周期処理です。
- * invokeを起動します。</p>
+ * {@.ja タイマーの周期処理。}
+ * {@.en Processing at cycle of timer}
+ * <p>
+ * {@.ja invokeを起動する。}
+ * {@.en Starts invoke(). }
*
- * @return 処理結果
+ * @return
+ * {@.ja 処理結果
* 正常終了 :0
- * 異常発生時:例外
+ * 異常発生時:例外}
+ * {@.en Result
+ * Normal termination:Returns 0.
+ * At abnormal generation:Throws out the exception.}
*/
public int svc() {
while(m_running) {
@@ -51,14 +70,16 @@
}
/**
- * <p>タイマーを起動します。</p>
+ * {@.ja タイマー周期処理の起動}
+ * {@.en Starts the timer cycle processing.}
*/
public void run() {
this.svc();
}
/**
- * <p>タイマーを起動します。</p>
+ * {@.ja タイマー起動}
+ * {@.en Starts the timer.}
*/
public synchronized void start(){
if(!m_running) {
@@ -68,19 +89,27 @@
}
/**
- * <p>タイマーを停止します。</p>
+ * {@.ja タイマー停止}
+ * {@.en Stops the timer.}
*/
public synchronized void stop() {
m_running = false;
}
/**
- * <p>タイマーの周期処理です。(起動周期毎に実行)
+ * {@.ja タイマーの周期処理。(起動周期毎に実行)}
+ * {@.en Processing at cycle of timer}
+ * <p>
+ * {@.ja
* <ul>
* <li>登録されたタスク毎にタイマー残時間をチェック</li>
* <li>起動周期を超えていた場合,各タスクのinvokeを起動</li>
- * <li>次回起動までの周期を設定</li>
- * </ul>
+ * <li>次回起動までの周期を設定</li></ul>}
+ * {@.en
+ * <ul>
+ * <li>Checks the timer remainder time of each registered task.</li>
+ * <li>When the start cycle is exceeded, invoke of each task is started.
+ * <li>Sets the cycle until the next starting. </ul>}
*/
public void invoke(){
if( m_tasks==null ) m_tasks = new Vector<Task>();
@@ -94,10 +123,15 @@
}
/**
- * <p>タイマー処理用リスナーを登録します。</p>
+ * {@.ja タイマー処理用リスナーを登録する。}
+ * {@.en Registers the listener for the timer processing.}
*
- * @param listener タイマー処理用リスナー
- * @param tm 起動周期
+ * @param listener
+ * {@.ja タイマー処理用リスナー}
+ * {@.en The listener for the timer processing.}
+ * @param tm
+ * {@.ja 起動周期}
+ * {@.en Start cycle}
*/
public synchronized ListenerBase registerListener(ListenerBase listener, TimeValue tm) {
@@ -114,19 +148,27 @@
}
/**
- * <p>タイマーから起動するコールバック関数を登録します。</p>
+ * {@.ja タイマーから起動するコールバック関数を登録する。}
+ * {@.en Registers the callback function started with the timer.}
*
- * @param cbf 起動対象コールバック関数
- * @param tm 起動周期
+ * @param cbf
+ * {@.ja 起動対象コールバック関数}
+ * {@.en the callback function}
+ * @param tm
+ * {@.ja 起動周期}
+ * {@.en cycle}
*/
public ListenerBase registerListenerObj(CallbackFunction cbf, TimeValue tm){
return registerListener(new ListenerObject(cbf), tm);
}
/**
- * <p>タイマー処理用リスナーを削除します。</p>
+ * {@.ja タイマー処理用リスナーを削除する。}
+ * {@.en Deletes the callback function for the timer processing.}
*
- * @param id 削除対象リスナーID
+ * @param id
+ * {@.ja 削除対象リスナーID}
+ * {@.en Listener ID}
*/
public synchronized boolean unregisterListener(ListenerBase id) {
for(int intidx=0; intidx<m_tasks.size(); ++intidx) {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TypeCast.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TypeCast.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/TypeCast.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -51,16 +51,23 @@
import RTC.TimedUShortSeqHelper;
/**
- * <p>各種データ型とAny型との間を型変換するユーティリティクラスです。</p>
+ * {@.ja 各種データ型とAny型との間を型変換するユーティリティクラス}
+ * {@.en It is a utility class that converts the type
+ * as for various data types/Any type. }
*
- * @param <DataType> Any型との変換相手となるデータ型を指定します。
+ * @param <DataType>
+ * {@.ja Any型との変換相手となるデータ型を指定}
+ * {@.en data type}
*/
public class TypeCast<T> {
/**
- * <p>コンストラクタです。</p>
+ * {@.ja コンストラクタ}
+ * {@.en Constructor}
*
- * @param klass 変換相手となるクラスのClassオブジェクト
+ * @param klass
+ * {@.ja 変換相手となるクラスのClassオブジェクト}
+ * {@.en class object}
*/
public TypeCast(Class<T> klass) {
@@ -69,11 +76,18 @@
}
/**
- * <p>Any型のデータを、<DataType>型に変換します。</p>
+ * {@.ja Any型のデータを、<DataType>型に変換する}
+ * {@.en Converts the data of Any type into DataType type}
*
- * @param data 変換対象のデータ
- * @return 変換後のデータ
- * @throws ClassCastException 変換できない場合
+ * @param data
+ * {@.ja 変換対象のデータ}
+ * {@.en data}
+ * @return
+ * {@.ja 変換後のデータ}
+ * {@.en Converted data}
+ * @throws ClassCastException
+ * {@.ja 変換できない場合}
+ * {@.en Filed in conversion}
*/
public T castType(Any data) {
@@ -187,6 +201,17 @@
}
}
+ /**
+ * {@.ja T型に変換する}
+ * {@.en Converts the data into T type}
+ *
+ * @param obj
+ * {@.ja 変換対象のデータ}
+ * {@.en data}
+ * @return
+ * {@.ja 変換後のデータ}
+ * {@.en Converted data}
+ */
public T castType(org.omg.CORBA.Object obj)
throws ClassNotFoundException, SecurityException, NoSuchMethodException,
IllegalArgumentException, IllegalAccessException, InvocationTargetException {
@@ -207,14 +232,26 @@
}
/**
- * <p><DataType>型のデータを、Any型のデータに変換します。</p>
- * <p>引数にnullが指定された場合には、<DataType>型のデフォルト値が
- * 指定されたものとして処理します。また、データ変換対象のデータがTimed*クラスのオブジェクトであり、
- * そのオブジェクトのTime属性がnullの場合は、自動的に現在時刻をセットします。</p>
+ * {@.ja <DataType>型のデータを、Any型のデータに変換する}
+ * {@.en Cconverts the data of DataType type into the data of Any type}
+ *
+ * <p>
+ * {@.ja 引数にnullが指定された場合には、<DataType>型のデフォルト値が
+ * 指定されたものとして処理する。
+ * また、データ変換対象のデータが
+ * Timed*クラスのオブジェクトであり、
+ * そのオブジェクトのTime属性がnullの場合は、
+ * 自動的に現在時刻をセットする。}
*
- * @param data 変換対象のデータ
- * @return 変換後のデータ
- * @throws ClassCastException 変換できない場合
+ * @param data
+ * {@.ja 変換対象のデータ}
+ * {@.en data}
+ * @return
+ * {@.ja 変換後のデータ}
+ * {@.en Converted data}
+ * @throws ClassCastException
+ * {@.ja 変換できない場合}
+ * {@.en Filed in conversion}
*/
public Any castAny(T data) {
@@ -410,10 +447,17 @@
}
/**
- * <p>指定されたClassオブジェクトに対応するクラスのデータ型名称を取得します。</p>
+ * {@.ja 指定されたClassオブジェクトに対応するクラスのデータ型名称を
+ * 取得する}
+ * {@.en Gets the data type name of the class corresponding
+ * to the specified Class object}
*
- * @param klass データ型名称を取得したいクラスのClassオブジェクト
- * @return 指定されたClassオブジェクトに対応するクラスのデータ型名称
+ * @param klass
+ * {@.ja データ型名称を取得したいクラスのClassオブジェクト}
+ * {@.en Class object}
+ * @return
+ * {@.ja 指定されたClassオブジェクトに対応するクラスのデータ型名称}
+ * {@.en Data type name of class}
*/
public static String getDataTypeCodeName(Class klass) {
@@ -421,9 +465,13 @@
}
/**
- * <p>Genericsの型パラメータで指定されたデータ型の名称を取得します。</p>
+ * {@.ja Genericsの型パラメータで指定されたデータ型の名称を取得する}
+ * {@.en Gets the name of the data type specified by the type parameter
+ * of Generics}
*
- * @return Genericsの型パラメータで指定されたデータ型の名称
+ * @return
+ * {@.ja Genericsの型パラメータで指定されたデータ型の名称}
+ * {@.en Name of data type specified by type parameter of Generics}
*/
public String getDataTypeCodeName() {
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ValueHolder.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ValueHolder.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/ValueHolder.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,15 +1,22 @@
package jp.go.aist.rtm.RTC.util;
/**
-* <p>データホルダークラス用共通インターフェースです。</p>
+* {@.ja データホルダークラス用共通インターフェース}
+* {@.en Common interface for data holder class}
*/
public interface ValueHolder {
/**
- * 文字列から各データホルダー型に変換して設定するための抽象メソッドです。</p>
+ * {@.ja 文字列から各データホルダー型に変換して設定するための抽象メソッド}
+ * {@.en Abstraction method to convert String
+ * into each data holder type and to set it}
*
- * @param def_val 設定値文字列表現
+ * @param def_val
+ * {@.ja 設定値文字列表現}
+ * {@.en String}
*
- * @exception Exception 渡された文字列が構文解析可能な値を含まない。
+ * @exception Exception
+ * {@.ja 渡された文字列が構文解析可能な値を含まない。}
+ * {@.en The character string of the argument is not good at parsing.}
*/
public void stringFrom(final String def_val) throws Exception;
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/equalFunctor.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/equalFunctor.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/equalFunctor.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,15 +1,21 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>条件合致判定に使用する汎用的なファンクタインタフェースです。</p>
+ * {@.ja 条件合致判定に使用する汎用的なファンクタインタフェース}
+ * {@.en General interface used to judge condition agreement}
*/
public interface equalFunctor {
/**
- * <p>条件に合致するかどうか判定します。</p>
+ * {@.ja 条件に合致するかどうか判定する}
+ * {@.en Judges whether to agree contingent on the object.}
*
- * @param object 判定対象のオブジェクト
- * @return 合致する場合はtrueを、さもなくばfalseを返します。
+ * @param object
+ * {@.ja 判定対象のオブジェクト}
+ * {@.en Object to be judged}
+ * @return
+ * {@.ja 合致する場合はtrueを、さもなくばfalseを返す。}
+ * {@.en The agreement is true.}
*/
public boolean equalof(final java.lang.Object object);
}
Modified: trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/operatorFunc.java
===================================================================
--- trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/operatorFunc.java 2011-07-12 06:57:46 UTC (rev 498)
+++ trunk/jp.go.aist.rtm.RTC/src/jp/go/aist/rtm/RTC/util/operatorFunc.java 2011-07-13 01:03:13 UTC (rev 499)
@@ -1,14 +1,18 @@
package jp.go.aist.rtm.RTC.util;
/**
- * <p>CORBA_SeqUtilクラスと合わせて使用するヘルパインタフェースです。</p>
+ * {@.ja CORBA_SeqUtilクラスと合わせて使用するヘルパインタフェース}
+ * {@.en Helper interface used together with CORBA_SeqUtil class}
*/
public interface operatorFunc {
/**
- * <p>対象のオブジェクトに対して操作を行います。</p>
+ * {@.ja 対象のオブジェクトに対して操作を行う}
+ * {@.en Operates the object}
*
- * @param elem シーケンス内の要素オブジェクト
+ * @param elem
+ * {@.ja シーケンス内の要素オブジェクト}
+ * {@.en Element object in sequence}
*/
public void operator(Object elem);
}
openrtm-commit メーリングリストの案内