Update to ARC 4.1.0
[gp-arc-client-c.git] / lib / arc_client_r.rb
1 require 'arc_client_c_wrapper'
2 require 'ffi_libc'
3
4 class ArcClientR
5   
6   def initialize
7     @wrapper = ArcClientCWrapper.new
8   end
9   
10   def generic_call(the_args)#currently not used
11     args = the_args.unshift ""##optparser cuts the first arg TODO
12     args_pointer = ArcClientCWrapper::string_array_as_pointer(args)
13     result, ruby_result = yield(args.size, args_pointer)
14     result.free_pointer_members
15     #ArcClientCWrapper::free_array_of_pointer(args_pointer, args.size)
16     ruby_result
17   end
18   
19   def generic_value_func(func_name, the_args)
20     args = the_args.unshift ""##optparser cuts the first arg TODO
21     args_pointer = ArcClientCWrapper::string_array_as_pointer(args)
22     result = @wrapper.send func_name, args.size, args_pointer
23     result
24   end
25   
26   def submit(the_args)
27     generic_value_func :arc_submit, the_args
28   end
29   
30   def stat(the_args)
31     generic_value_func :arc_stat, the_args
32   end
33   
34   def get(the_args)
35     generic_value_func :arc_get, the_args
36   end
37   
38   def kill(the_args)
39     generic_value_func :arc_kill, the_args
40   end
41   
42 end