class Archive::BaseArchive
@abstract
Attributes
archive[R]
@!visibility protected @return [FFI::Pointer]
Public Class Methods
new(alloc, free)
click to toggle source
@param [Method] alloc @param [Method] free
# File lib/ffi_libarchive/archive.rb, line 150 def initialize(alloc, free) raise ArgumentError, 'Invalid methods' unless alloc.respond_to?(:call) && free.respond_to?(:call) @archive = alloc.call raise Error, 'No archive open' unless @archive @archive_free = [free] ObjectSpace.define_finalizer(self, method(:close).to_proc) end
Public Instance Methods
close()
click to toggle source
# File lib/ffi_libarchive/archive.rb, line 160 def close # TODO: do we need synchronization here? @archive_free[0].call(@archive) if @archive && @archive_free[0].respond_to?(:call) # TODO: Error check? ensure @archive = nil @archive_free[0] = nil end
errno()
click to toggle source
@return [Integer]
# File lib/ffi_libarchive/archive.rb, line 178 def errno C.archive_errno(archive) end
error_string()
click to toggle source
@return [String]
# File lib/ffi_libarchive/archive.rb, line 173 def error_string C.archive_error_string(archive) end