3 class ArcClientCWrapper
5 class BaseStruct < FFI::Struct
11 result = val.read_string
16 def free_pointer(name)
18 if(val.is_a? FFI::Pointer)
23 def free_pointer_members
24 members.each do |member|
30 class SubmitResult < BaseStruct
31 layout :message, :pointer,\
35 class StatResult < BaseStruct
36 layout :message, :pointer,\
41 class GetResult < BaseStruct
42 layout :message, :pointer, \
50 #ffi_lib "/Users/tamas/work/iface/grid/ws/gp-arc-client-c/build/Debug/libarcclientc.dylib"
51 ffi_lib 'arc_client_c'
52 #ffi_lib "/Users/tamas/tmp/bbbb/gp-arc-client-c/src/arc_client_r.bundle"
54 attach_function :initialize, [], :string
56 attach_function :arc_submit, [:int, :pointer], :pointer
57 attach_function :arc_stat, [:int, :pointer], :pointer
58 attach_function :arc_get, [:int, :pointer], :pointer
60 def self.string_array_as_pointer(arr)
61 result = FFI::MemoryPointer.new(:pointer, arr.size)
62 result.write_array_of_pointer(arr.map {|item| FFI::MemoryPointer.from_string(item.to_s)})
65 def self.free_array_of_pointer(arr, length)
66 pointers = arr.read_array_of_pointer length