Method: Proj::FileApiCallbacks#install_callbacks

Defined in:
lib/proj/file_api.rb

#install_callbacks(context) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/proj/file_api.rb', line 3

def install_callbacks(context)
  proj_file_api = Api::PROJ_FILE_API.new
  proj_file_api[:version] = 1

  # Store procs to instance variables so they don't get garbage collected
  @open_cbk = proj_file_api[:open_cbk] = self.method(:open_callback)
  @read_cbk = proj_file_api[:read_cbk] = self.method(:read_callback)
  @write_cbk = proj_file_api[:write_cbk] = self.method(:write_callback)
  @seek_cbk = proj_file_api[:seek_cbk] = self.method(:seek_callback)
  @tell_cbk = proj_file_api[:tell_cbk] = self.method(:tell_callback)
  @close_cbk = proj_file_api[:close_cbk] = self.method(:close_callback)
  @exists_cbk = proj_file_api[:exists_cbk] = self.method(:exists_callback)
  @mkdir_cbk = proj_file_api[:mkdir_cbk] = self.method(:mkdir_callback)
  @unlink_cbk = proj_file_api[:unlink_cbk] = self.method(:unlink_callback)
  @rename_cbk = proj_file_api[:rename_cbk] = self.method(:rename_callback)

  result = Api.proj_context_set_fileapi(context, proj_file_api, nil)

  if result != 1
    Error.check_object(self)
  end
end