Module: SWIPL::CFFI

Extended by:
FFI::Library
Defined in:
lib/swipl/cffi.rb

Class Method Summary collapse

Class Method Details

.initObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/swipl/cffi.rb', line 31

def self.init
  return if @is_initialized

  libptr = ::FFI::MemoryPointer.from_string( ENV["SWI_LIB"] ) 
  plargv = ::FFI::MemoryPointer.new( :pointer, 1 )
  plargv.write_pointer( libptr )

  value = PL_initialise( 1, plargv )
  if value != 1
    raise "SWI failed to initialize"
  end

  @is_initialized = true
end