Module: R2CORBA::CORBA::Request

Defined in:
lib/corba/cbase/Request.rb,
lib/corba/jbase/Request.rb,
lib/corba/common/Request.rb

Constant Summary collapse

@@wrapper_klass =
Class.new do
  include CORBA::Request
  def initialize(nreq, target)
    @req_ = nreq
    @target = target
  end
  attr_reader :req_
  attr_reader :target
end

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

._wrap_native(nreq, target) ⇒ Object

Raises:

  • (ArgumentError)


27
28
29
30
# File 'lib/corba/jbase/Request.rb', line 27

def self._wrap_native(nreq, target)
  raise ArgumentError, 'Expected org.omg.CORBA.Request' unless nreq.nil? || nreq.is_a?(Native::Request)
  nreq.nil?() ? nreq : @@wrapper_klass.new(nreq, target)
end

Instance Method Details

#add_in_arg(tc, val, nm = '') ⇒ Object



18
19
20
21
# File 'lib/corba/cbase/Request.rb', line 18

def add_in_arg(tc, val, nm='')
  self._arguments << [nm, CORBA::ARG_IN, tc, val]
  self._arguments.size
end

#add_inout_arg(tc, val, nm = '') ⇒ Object



28
29
30
31
# File 'lib/corba/cbase/Request.rb', line 28

def add_inout_arg(tc, val, nm='')
  self._arguments << [nm, CORBA::ARG_INOUT, tc, val]
  self._arguments.size
end

#add_out_arg(tc, nm = '') ⇒ Object



23
24
25
26
# File 'lib/corba/cbase/Request.rb', line 23

def add_out_arg(tc, nm='')
  self._arguments << [nm, CORBA::ARG_OUT, tc]
  self._arguments.size
end

#argumentsObject



33
34
35
# File 'lib/corba/cbase/Request.rb', line 33

def arguments
  self._arguments
end

#arguments=(*args) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/corba/cbase/Request.rb', line 37

def arguments=(*args)
  if args.size == 1
    raise ArgumentError, 'invalid argument list' unless ::Array === args.first && args.first.all? {|a| ::Array === a }
    args = args.first
  else
    raise ArgumentError, 'invalid argument list' unless args.all? {|a| ::Array === a }
  end
  # clear current arguments
  self._arguments.clear
  # add new arguments
  args.each do |nm, flag, tc, val|
    case flag
    when CORBA::ARG_IN
      self.add_in_arg(tc, val, nm)
    when CORBA::ARG_OUT
      self.add_out_arg(tc, nm)
    when CORBA::ARG_INOUT
      self.add_inout_arg(tc, val, nm)
    end
  end
end

#exceptionsObject



59
60
61
# File 'lib/corba/cbase/Request.rb', line 59

def exceptions
  self._exceptions
end

#exceptions=(exl) ⇒ Object



63
64
65
66
67
68
69
70
# File 'lib/corba/cbase/Request.rb', line 63

def exceptions=(exl)
  self._exceptions.clear
  begin
    self._exceptions.concat(exl)
  rescue
    raise CORBA::BAD_PARAM.new(0, CORBA::COMPLETED_NO)
  end
end

#get_responseObject



111
112
113
114
115
116
117
118
119
# File 'lib/corba/cbase/Request.rb', line 111

def get_response
  begin
    ret = self._get_response
  rescue ::NativeException
    CORBA::Exception.native2r($!)
  end
  @_args = self._get_arguments(@_args || [])
  ret
end

#invokeObject



81
82
83
84
85
86
87
# File 'lib/corba/cbase/Request.rb', line 81

def invoke
  self._invoke({
    :arg_list => self._arguments,
    :result_type => @_rettc,
    :exc_list => self._exceptions
    })
end

#operationObject



32
33
34
35
36
37
38
# File 'lib/corba/jbase/Request.rb', line 32

def operation
  begin
    self.req_.operation()
  rescue ::NativeException
    CORBA::Exception.native2r($!)
  end
end

#poll_responseObject



101
102
103
104
105
106
107
108
109
# File 'lib/corba/cbase/Request.rb', line 101

def poll_response
  begin
    ret = self._poll_response
  rescue ::NativeException
    CORBA::Exception.native2r($!)
  end
  @_args = self._get_arguments(@_args || []) if ret
  ret
end

#return_valueObject



76
77
78
79
# File 'lib/corba/cbase/Request.rb', line 76

def return_value
  return nil if @_rettc.nil? || @_rettc.kind == CORBA::TK_VOID || @_rettc.kind == CORBA::TK_NULL
  self._return_value(@_rettc)
end

#send_deferredObject



93
94
95
96
97
98
99
# File 'lib/corba/cbase/Request.rb', line 93

def send_deferred
  self._send_deferred({
    :arg_list => self._arguments,
    :result_type => @_rettc,
    :exc_list => self._exceptions
    })
end

#send_onewayObject



89
90
91
# File 'lib/corba/cbase/Request.rb', line 89

def send_oneway
  self._send_oneway(self._arguments)
end

#set_return_type(tc) ⇒ Object



72
73
74
# File 'lib/corba/cbase/Request.rb', line 72

def set_return_type(tc)
  @_rettc = tc
end