Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb	(revision 270)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb	(revision 321)
@@ -6,49 +6,34 @@
 #   Copyright (C) 2008-2014 by TOPPERS Project
 #--
-#   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
-#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
-#   å¤ã»åé
-å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
-#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
-#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
-#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
-#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
-#       è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
-#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
-#       ç¨ã§ããªãå½¢ã§åé
-å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
-#       ã¨ï¼
-#     (a) åé
-å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
-ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
-#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
-#     (b) åé
-å¸ã®å½¢æ
-ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
-#         å ±åãããã¨ï¼
-#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
-#       å®³ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ããå
-è²¬ãããã¨ï¼
-#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
-#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
-ããã³TOPPERSãã­ã¸ã§ã¯ãã
-#       å
-è²¬ãããã¨ï¼
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
 #  
-#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
-ã
-#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
-#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
-#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
-#   ã®è²¬ä»»ãè² ããªãï¼
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
 #  
-#   $Id: SharedRPCPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#   $Id$
 #++
 
@@ -56,21 +41,15 @@
 require_tecsgen_lib "lib/GenParamCopy.rb"
 
-#= SharedRPC ãã©ã°ã¤ã³
-# SharedRPC ãã£ã³ãã«ãçæãã
-# ãã©ã°ã¤ã³å¼æ°ã¯ GenTransparentMarshaler åç
-§
-
-# mikan through plugin: namespace ãèæ
-®ããã¦ããªã
-# ãããå©ç¨ããå ´åãä»¥ä¸ã®ããã« toppers_jsp.cdl sChannel.cdl ãæå®ããå¿
-è¦ããã
+#= SharedRPC プラグイン
+# SharedRPC チャンネルを生成する
+# プラグイン引数は GenTransparentMarshaler 参照
+
+# mikan through plugin: namespace が考慮されていない
+# これを利用する場合、以下のように toppers_jsp.cdl sChannel.cdl を指定する必要がある
 # tecsgen toppers_jsp.cdl sChannel.cdl your_description.cdl
 
-# ä»¥ä¸ãä»®å®ï¼å¶éäºé 
-ï¼
-#  å¼ã³å
-ãå¼ã³å
-ã®ã¨ã³ãã£ã¢ã³ãchar, short, int_t, long_t, intptr_t ã®ãµã¤ãºãåã
-#  æç¬¦å·ãç¡ç¬¦å·ã§ãµã¤ãºãåã
+# 以下を仮定（制限事項）
+#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
+#  有符号、無符号でサイズが同じ
 
 class SharedRPCPlugin < ThroughPlugin
@@ -81,18 +60,16 @@
   include GenParamCopy
 
-  #=== RPCPlugin ã® initialize
-  #  èª¬æã¯ ThroughPlugin (plugin.rb) ãåç
-§
+  #=== RPCPlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
   def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
 
-    # mikan ãã©ã°ã¤ã³ãªãã·ã§ã³æå®ã®ä¸ä¸è´ã®ãã§ãã¯ task_priority, 
+    # mikan プラグインオプション指定の不一致のチェック task_priority, 
 
     super
     initialize_transparent_marshaler cell_name
 
-    # ãªãã·ã§ã³ï¼GenTransparentMarshaler åç
-§
+    # オプション：GenTransparentMarshaler 参照
     @plugin_arg_check_proc_tab = RPCPluginArgProc
-    @channelCellName = ""     # nil ã«ãã¦ãã
+    @channelCellName = ""     # nil にしておく
     parse_plugin_arg
 
@@ -108,8 +85,8 @@
 
     if @@shared_channel_list[ @shared_channel_cell ] == nil then
-      # ååº
+      # 初出
       @@shared_channel_list[ @shared_channel_cell ] = [ self ]
     else
-      # äºçªç®ä»¥é
+      # 二番目以降
       @@shared_channel_list[ @shared_channel_cell ] << self
     end
@@ -117,5 +94,5 @@
 
     if @region != @@shared_channel_list[ @shared_channel_cell ][0].region then
-      # ååºã¨ãªã¼ã¸ã§ã³ä¸ä¸è´ (ååºã¯ãèªåèªèº«ã¨ãã§ãã¯ããããç¡é§ã ãå°ããã®ã§æ¾ç½®)
+      # 初出とリージョン不一致 (初出は、自分自身とチェックされる。無駄だが小さいので放置)
       cdl_error( "SharedRPCPlugin: preferred region mismatch current: #{@region.get_name} previous: #{@@shared_channel_list[ @shared_channel_cell ][0].region.get_name}")
     else
@@ -138,5 +115,5 @@
   def gen_plugin_decl_code( file )
 
-    # ãã®ã»ã«ã¿ã¤ãï¼åãã·ã°ããã£ï¼ã¯æ¢ã«çæããã¦ãããï¼
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
     if @@generated_celltype[ @shared_channel_ct_name ] == nil then
       @@generated_celltype[ @shared_channel_ct_name ] = [ self ]
@@ -152,6 +129,5 @@
 
     gen_marshaler_celltype
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     if @signature.need_PPAllocator? then
@@ -164,6 +140,5 @@
 
     f = CFile.open( @rpc_channel_celltype_file_name, "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -196,11 +171,10 @@
 };
 EOT
-    # mikan stackSize option & ææ° tecs_package å¯¾å¿
+    # mikan stackSize option & 最新 tecs_package 対応
 
     f.close
 
     f = CFile.open( "#{$gen}/#{@shared_channel_ct_name}.cdl", "w" )
-    # åãå
-å®¹ãäºåº¦æ¸ãå¯è½æ§ãã (AppFile ã¯ä¸å¯)
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
 
     f.print <<EOT
@@ -247,5 +221,5 @@
   end
 
-  #===  through cell ã³ã¼ããçæ
+  #===  through cell コードを生成
   #
   #
@@ -263,11 +237,10 @@
     indent_str = "  " * nest
 
-    # ã»ã«ãæ¢ã
+    # セルを探す
     # path =["::",@next_cell.get_name]
     # cell = Namespace.find( path )
     cell = Namespace.find( @next_cell.get_namespace_path )
 
-    # PPAllocator ãå¿
-è¦ã?
+    # PPAllocator が必要か?
     if @signature.need_PPAllocator? then
       if @sub_channel_no == 0 then
@@ -284,13 +257,12 @@
     end
 
-    # å
-±æãããéä¿¡ãã£ã³ãã«ã®çæã®ãã­ãã¿ã¤ãå®£è¨
+    # 共有される通信チャンネルの生成のプロトタイプ宣言
     file.print <<EOT
 #{indent_str}cell #{@shared_channel_ct_name} #{@shared_channel_cell};
 EOT
 
-    # ããããåçµåãã¨ã®ã»ã«ãçæ
-
-    # ã¢ã­ã±ã¼ã¿ã®æå®ããããï¼
+    # ここから各結合ごとのセルを生成
+
+    # アロケータの指定があるか？
     if cell.get_allocator_list.length > 0 then
 
@@ -301,8 +273,7 @@
 
         file.print delim
-        delim = ",\n#{indent_str}           "        # æçµè¡ã«ã¯åºããªã
-
-        if subsc then        # é
-åæ·»æ°
+        delim = ",\n#{indent_str}           "        # 最終行には出さない
+
+        if subsc then        # 配列添数
           subsc_str = '[#{subsc}]'
         else
@@ -310,5 +281,5 @@
         end
 
-        eport = "eThroughEntry" #RPCã®åãå£åã«å¤æ´
+        eport = "eThroughEntry" #RPCの受け口名に変更
         file.print  "#{eport}#{subsc_str}.#{func}.#{buf} = #{alloc}"
       end
@@ -317,5 +288,5 @@
     end
 
-    # ã»ã«æ¬ä½ã®çæ
+    # セル本体の生成
     file.print <<EOT
 #{indent_str}cell #{@rpc_channel_celltype_name} #{@cell_name} {
@@ -329,6 +300,6 @@
   end
 
-  #=== å¾ãã®ã³ã¼ããçæ
-  #ãã©ã°ã¤ã³ã®å¾ãã®ã³ã¼ããçæ
+  #=== 後ろのコードを生成
+  #プラグインの後ろのコードを生成
   #file:: File: 
   def self.gen_post_code( file )
@@ -339,6 +310,6 @@
   end
 
-  #=== å¾ãã®ã³ã¼ããçæ
-  # plugin_obj[0] ãä»£è¡¨ãã¦åºåããï¼ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã«ã¢ã¯ã»ã¹ãããããï¼
+  #=== 後ろのコードを生成
+  # plugin_obj[0] が代表して出力する（インスタンス変数にアクセスしたいため）
   def gen_post_code( file, plugin_obj )
 
@@ -348,7 +319,6 @@
     indent_str = "  " * nest
 
-    # å
-±æããã¦ããéä¿¡ãã£ã³ãã«ã®çæ
-    # åãã©ã°ã¤ã³ã¤ã³ã¹ã¿ã³ã¹ã§ã¯ @shared_channel_ct_name ã¨ãã¦è¨æ¶ãã¦ãã
+    # 共有されている通信チャンネルの生成
+    # 各プラグインインスタンスでは @shared_channel_ct_name として記憶している
     file.print "#{indent_str}cell tSharedRPCPlugin_#{@channelCelltype} #{chan_name} {\n"
     plugin_obj.each{ |po|
