Sha256: 29c85433916dc5941fe30058b4b85b19d6e34abfad4414c1d6d8250246752155

Contents?: true

Size: 1.18 KB

Versions: 4

Compression:

Stored size: 1.18 KB

Contents

require 'ffi'

module FFI
  module CPL
    class List < ::FFI::Struct
      layout :data, :pointer,
        :next, List.ptr

      module ListFunctions
        def self.included(base)
          base.extend(ClassMethods)
        end

        module ClassMethods
          extend ::FFI::Library
          ffi_lib [FFI::CURRENT_PROCESS, FFI::GDAL.gdal_library_path]

          #-------------------------------------------------------------------
          # Functions
          #-------------------------------------------------------------------
          attach_function :CPLListAppend, [List.ptr, :pointer], List.ptr
          attach_function :CPLListInsert, [List.ptr, :pointer, :int], List.ptr
          attach_function :CPLListGetLast, [List.ptr], List.ptr
          attach_function :CPLListGet, [List.ptr, :int], List.ptr
          attach_function :CPLListCount, [List.ptr], :int

          attach_function :CPLListRemove, [List.ptr, :int], List.ptr
          attach_function :CPLListDestroy, [List.ptr], :void

          attach_function :CPLListGetNext, [List.ptr], List.ptr
          attach_function :CPLListGetData, [List.ptr], :pointer
        end
      end

      include ListFunctions
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ffi-gdal-1.0.0.beta7 lib/ffi/cpl/list.rb
ffi-gdal-1.0.0.beta6 lib/ffi/cpl/list.rb
ffi-gdal-1.0.0.beta5 lib/ffi/cpl/list.rb
ffi-gdal-1.0.0.beta4 lib/ffi/cpl/list.rb