Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueRPCPlugin.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    66#   Copyright (C) 2008-2014 by TOPPERS Project
    77#--
    8 #   ä¸Šè¨˜è‘—作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    11 #   å¤‰ãƒ»å†é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    15 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    16 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 #       è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    23 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 #       ç”¨ã§ããªã„形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 #       ã¨ï¼Ž
    27 #     (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    31 #     (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34 #         å ±å‘Šã™ã‚‹ã“と.
    35 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    40 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42 #       å
    43 è²¬ã™ã‚‹ã“と.
     8#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13#       スコード中に含まれていること.
     14#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17#       の無保証規定を掲載すること.
     18#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20#       と.
     21#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     23#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24#         報告すること.
     25#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29#       免責すること.
    4430
    45 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    46 ãŠ
    47 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    49 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    50 #   ã®è²¬ä»»ã‚’負わない.
     31#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35#   の責任を負わない.
    5136
    52 #   $Id: OpaqueRPCPlugin.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
     37#   $Id$
    5338#++
    5439
    55 # 以下を仮定(制限事é 
    56 ï¼‰
    57 #  呼びå
    58 ƒã€å‘¼ã³å
    59 ˆã®ã‚¨ãƒ³ãƒ‡ã‚£ã‚¢ãƒ³ã€char, short, int_t, long_t, intptr_t のサイズが同じ
    60 #  有符号、無符号でサイズが同じ
     40# 以下を仮定(制限事項)
     41#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
     42#  有符号、無符号でサイズが同じ
    6143
    6244require_tecsgen_lib "lib/GenOpaqueMarshaler.rb"
     
    6850  include GenParamCopy
    6951
    70   # OpaqueRPCPlugin 専用のオプション
    71   OpaqueRPCPluginArgProc = RPCPluginArgProc.dup  # 複製を作ってå
    72 ƒã‚’変更しないようにする
     52  # OpaqueRPCPlugin 専用のオプション
     53  OpaqueRPCPluginArgProc = RPCPluginArgProc.dup  # 複製を作って元を変更しないようにする
    7354  OpaqueRPCPluginArgProc[ "noClientSemaphore"  ] = Proc.new { |obj,rhs| obj.set_noClientSemaphore rhs }
    7455
    75   #=== RPCPlugin の initialize
    76   #  説明は ThroughPlugin (plugin.rb) を参ç
    77 §
     56  #=== RPCPlugin の initialize
     57  #  説明は ThroughPlugin (plugin.rb) を参照
    7858  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
    7959    super
     
    9878    gen_marshaler_celltype
    9979
    100     # チャンネル composite セルタイプの生成
    101     #  ここで生成された CDL ファイルは、tecsgen が直接 import するのではなく
    102     #  セルコードの CDL から import される
     80    # チャンネル composite セルタイプの生成
     81    #  ここで生成された CDL ファイルは、tecsgen が直接 import するのではなく
     82    #  セルコードの CDL から import される
    10383
    10484    f = CFile.open( @rpc_client_channel_celltype_file_name, "w" )
    105     # 同じå†
    106 å®¹ã‚’二度書く可能性あり (AppFile は不可)
     85    # 同じ内容を二度書く可能性あり (AppFile は不可)
    10786
    10887    f.print <<EOT
     
    142121
    143122    f = CFile.open( @rpc_server_channel_celltype_file_name, "w" )
    144     # 同じå†
    145 å®¹ã‚’二度書く可能性あり (AppFile は不可)
     123    # 同じ内容を二度書く可能性あり (AppFile は不可)
    146124
    147125    f.print <<EOT
     
    173151  end
    174152
    175   #===  through cell コードを生成
     153  #===  through cell コードを生成
    176154  #
    177155  #
     
    180158    gen_plugin_decl_code( file )
    181159
    182     # セルを探す
     160    # セルを探す
    183161    # path =["::",@next_cell.get_name]  # mikan namespace
    184162    # cell = Namespace.find( path )
     
    191169EOT
    192170
    193     ##### クライアント側のセルの生成 #####
     171    ##### クライアント側のセルの生成 #####
    194172    nest = @start_region.gen_region_str_pre file
    195173    nest_str = "  " * nest
    196174
    197     # セマフォの生成
     175    # セマフォの生成
    198176    if @b_noClientSemaphore == false then
    199177      file.print <<EOT
     
    206184    end
    207185
    208     # クライアント側チャンネル (TINET, Socket など)の生成
     186    # クライアント側チャンネル (TINET, Socket など)の生成
    209187    file.print <<EOT
    210188#{nest_str}  //  Client Side Channel
     
    216194EOT
    217195
    218     # セマフォの結合文
     196    # セマフォの結合文
    219197    if @b_noClientSemaphore == false then
    220198      semaphore = "#{nest_str}    cLockChannel = #{@serverChannelCell}_Semaphore.eSemaphore;\n"
     
    223201    end
    224202
    225     ### クライアント側チャンネル (マーシャラ+TDR)の生成 ###
    226     # アロケータの指定があるか?
     203    ### クライアント側チャンネル (マーシャラ+TDR)の生成 ###
     204    # アロケータの指定があるか?
    227205    if cell.get_allocator_list.length > 0 then
    228206
     
    240218
    241219        file.print delim
    242         delim = ",\n"        # 最終行には出さない
    243 
    244         if subsc then        # é
    245 åˆ—添数
     220        delim = ",\n"        # 最終行には出さない
     221
     222        if subsc then        # 配列添数
    246223          subsc_str = '[#{subsc}]'
    247224        else
     
    249226        end
    250227
    251         eport = "eThroughEntry" #RPCの受け口名に変更
     228        eport = "eThroughEntry" #RPCの受け口名に変更
    252229        file.print nest_str
    253230        file.print  "#{eport}#{subsc_str}.#{func}.#{buf} = #{alloc_str}"
     
    269246
    270247EOT
    271     ### END: クライアント側チャンネル (マーシャラ+TDR)の生成 ###
     248    ### END: クライアント側チャンネル (マーシャラ+TDR)の生成 ###
    272249
    273250    @start_region.gen_region_str_post file
    274251    file.print "\n\n"
    275252
    276     ##### サーバー側のセルの生成 #####
     253    ##### サーバー側のセルの生成 #####
    277254    nest = @end_region.gen_region_str_pre file
    278255    nest_str = "  " * nest
     
    290267    end
    291268
    292     # サーバー側チャンネル (TINET, Socket など)
     269    # サーバー側チャンネル (TINET, Socket など)
    293270    file.print <<EOT
    294271
     
    299276EOT
    300277
    301     # サーバー側チャンネル (アンマーシャラ+TDR)
     278    # サーバー側チャンネル (アンマーシャラ+TDR)
    302279    file.print <<EOT
    303280
     
    309286EOT
    310287
    311     # サーバー側タスクメイン
     288    # サーバー側タスクメイン
    312289    file.print <<EOT
    313290
     
    318295EOT
    319296
    320     # サーバー側タスク
     297    # サーバー側タスク
    321298    file.print <<EOT
    322299
     
    332309  end
    333310
    334   #=== プラグイン引数 noClientSemaphore のチェック
     311  #=== プラグイン引数 noClientSemaphore のチェック
    335312  def set_noClientSemaphore rhs
    336313    rhs = rhs.to_sym
Note: See TracChangeset for help on using the changeset viewer.