module Proj::NetworkApiCallbacks

Public Instance Methods

close_callback(context, handle, user_data) click to toggle source
# File lib/proj/network_api.rb, line 29
def close_callback(context, handle, user_data)
  self.close
end
header_value_callback(context, handle, header_name_ptr, user_data) click to toggle source
# File lib/proj/network_api.rb, line 33
def header_value_callback(context, handle, header_name_ptr, user_data)
  header_name = header_name_ptr.read_string_to_null
  value = self.header_value(header_name)
  FFI::MemoryPointer.from_string(value)
end
install_callbacks(context) click to toggle source
# File lib/proj/network_api.rb, line 5
def install_callbacks(context)
  @open_cbk = self.method(:open_callback)
  @close_cbk = self.method(:close_callback)
  @header_value_cbk = self.method(:header_value_callback)
  @read_range_cbk = self.method(:read_range_callback)

  result = Api.proj_context_set_network_callbacks(context, @open_cbk, @close_cbk, @header_value_cbk, @read_range_cbk, nil)

  if result != 1
    Error.check_object(self)
  end
end
open_callback(context, url, offset, size_to_read, buffer, out_size_read, error_string_max_size, out_error_string, user_data) click to toggle source
# File lib/proj/network_api.rb, line 18
def open_callback(context, url, offset, size_to_read, buffer, out_size_read, error_string_max_size, out_error_string, user_data)
  uri = URI.parse(url)
  data = self.open(uri, offset, size_to_read)
  out_size = [size_to_read, data.size].min
  out_size_read.write(:size_t, out_size)
  buffer.write_bytes(data, 0, out_size)

  # Return fake handle
  FFI::MemoryPointer.new(:size_t)
end
read_range_callback(context, handle, offset, size_to_read, buffer, error_string_max_size, out_error_string, user_data) click to toggle source
# File lib/proj/network_api.rb, line 39
def read_range_callback(context, handle, offset, size_to_read, buffer, error_string_max_size, out_error_string, user_data)
  data = self.read_range(offset, size_to_read)
  out_size = [size_to_read, data.size].min
  buffer.write_bytes(data, 0, out_size)
  out_size
end