Class: OpaqueMarshalerPlugin

Inherits:
SignaturePlugin show all
Includes:
GenOpaqueMarshaler, GenParamCopy
Defined in:
lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb

Constant Summary collapse

OpaqueMarshalerPluginArgProc =
{ }

Constants included from GenOpaqueMarshaler

GenOpaqueMarshaler::RPCPluginArgProc

Constants inherited from Plugin

Plugin::PluginArgProc

Instance Method Summary collapse

Methods included from GenParamCopy

#print_nullable_post, #print_nullable_pre, #print_param, #print_param0

Methods included from GenOpaqueMarshaler

#alloc_for_out_param, #alloc_for_out_params, #check_PPAllocator, #check_opener_code, #dealloc_for_params, #gen_ep_func_body, #gen_ep_func_body_marshal, #gen_ep_func_body_unmarshal, #gen_marshaler_celltype, #gen_postamble, #gen_preamble, #get_cell_name, #initialize_opaque_marshaler, #optparse, #print_out_nullable, #print_params, #set_PPAllocatorSize, #set_TDRCelltype, #set_clientChannelCell, #set_clientChannelCelltype, #set_clientChannelInitializer, #set_clientErrorHandler, #set_clientSemaphoreCelltype, #set_clientSemaphoreInitializer, #set_noServerChannelOpenerCode, #set_serverChannelCell, #set_serverChannelCelltype, #set_serverChannelInitializer, #set_serverErrorHandler, #set_stackSize, #set_substituteAllocator, #set_taskCelltype, #set_taskPriority

Methods inherited from SignaturePlugin

#gen_ep_func_body, gen_post_code

Methods inherited from Plugin

#cdl_error, #check_plugin_arg, #gen_ep_func?, #gen_postamble, #gen_preamble, #new_cell, #parse_plugin_arg, #print_msg, #set_locale, #set_silent

Methods inherited from Node

#cdl_error, #cdl_error2, #cdl_error3, #cdl_info, #cdl_info2, #cdl_warning, #cdl_warning2, #get_locale, #locale_str, #set_locale

Constructor Details

#initialize(signature, option) ⇒ OpaqueMarshalerPlugin

Returns a new instance of OpaqueMarshalerPlugin.



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb', line 51

def initialize(signature, option)
  super
  @b_noClientSemaphore = false
  @noServerChannelOpenerCode = true
  initialize_opaque_marshaler

  @plugin_arg_check_proc_tab = OpaqueMarshalerPluginArgProc
  parse_plugin_arg
  # check_PPAllocator
  if @signature.need_PPAllocator?(true)
    @PPAllocatorSize = 1 # PPAllocatorの必要性有のために設定 (サイズは使われない)
    necessity = "Necessary"
  else
    necessity = "Unnecessary"
  end

  print "OpaqueMarshalerPlugin: signature=#{signature.get_namespace_path}, PPAllocator=#{necessity}\n"
end

Instance Method Details

#gen_cdl_file(file) ⇒ Object



70
71
72
73
74
75
# File 'lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb', line 70

def gen_cdl_file(file)
  gen_marshaler_celltype
  file.print <<EOT
import( "#{@marshaler_celltype_file_name}" );
EOT
end

#subst_name(val) ⇒ Object



77
78
79
80
# File 'lib/tecsgen/plugin/OpaqueMarshalerPlugin.rb', line 77

def subst_name(val)
  return :_
  # return nil
end