class CZMQ::FFI::Zdir

work with file-system directories @note This class is 100% generated using zproject.

Public Class Methods

__new(path, parent)
Alias for: new
create_finalizer_for(ptr) click to toggle source

@param ptr [::FFI::Pointer] @return [Proc]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 35
def self.create_finalizer_for(ptr)
  Proc.new do
    ptr_ptr = ::FFI::MemoryPointer.new :pointer
    ptr_ptr.write_pointer ptr
    ::CZMQ::FFI.zdir_destroy ptr_ptr
  end
end
diff(older, newer, alias_) click to toggle source

Calculate differences between two versions of a directory tree. Returns a list of zdir_patch_t patches. Either older or newer may be null, indicating the directory is empty/absent. If alias is set, generates virtual filename (minus path, plus alias).

@param older [Zdir, #__ptr] @param newer [Zdir, #__ptr] @param alias_ [String, to_s, nil] @return [Zlist]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 174
def self.diff(older, newer, alias_)
  older = older.__ptr if older
  newer = newer.__ptr if newer
  result = ::CZMQ::FFI.zdir_diff(older, newer, alias_)
  result = Zlist.__new result, true
  result
end
new(ptr, finalize = true) click to toggle source

Attaches the pointer ptr to this instance and defines a finalizer for it if necessary. @param ptr [::FFI::Pointer] @param finalize [Boolean]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 24
def initialize(ptr, finalize = true)
  @ptr = ptr
  if @ptr.null?
    @ptr = nil # Remove null pointers so we don't have to test for them.
  elsif finalize
    @finalizer = self.class.create_finalizer_for @ptr
    ObjectSpace.define_finalizer self, @finalizer
  end
end
new(path, parent) click to toggle source

Create a new directory item that loads in the full tree of the specified path, optionally located under some parent path. If parent is “-”, then loads only the top-level directory, and does not use parent as a path. @param path [String, to_s, nil] @param parent [String, to_s, nil] @return [CZMQ::Zdir]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 82
def self.new(path, parent)
  ptr = ::CZMQ::FFI.zdir_new(path, parent)
  __new ptr
end
Also aliased as: __new
test(verbose) click to toggle source

Self test of this class.

@param verbose [Boolean] @return [void]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 271
def self.test(verbose)
  verbose = !(0==verbose||!verbose) # boolean
  result = ::CZMQ::FFI.zdir_test(verbose)
  result
end
watch(pipe, unused) click to toggle source

Create a new zdir_watch actor instance:

zactor_t *watch = zactor_new (zdir_watch, NULL);

Destroy zdir_watch instance:

zactor_destroy (&watch);

Enable verbose logging of commands and activity:

zstr_send (watch, "VERBOSE");

Subscribe to changes to a directory path:

zsock_send (watch, "ss", "SUBSCRIBE", "directory_path");

Unsubscribe from changes to a directory path:

zsock_send (watch, "ss", "UNSUBSCRIBE", "directory_path");

Receive directory changes:

zsock_recv (watch, "sp", &path, &patches);

// Delete the received data.
free (path);
zlist_destroy (&patches);

@param pipe [Zsock, #__ptr] @param unused [::FFI::Pointer, to_ptr] @return [void]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 261
def self.watch(pipe, unused)
  pipe = pipe.__ptr if pipe
  result = ::CZMQ::FFI.zdir_watch(pipe, unused)
  result
end

Public Instance Methods

__ptr() click to toggle source

Return internal pointer @return [::FFI::Pointer]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 48
def __ptr
  raise DestroyedError unless @ptr
  @ptr
end
Also aliased as: to_ptr
__ptr_give_ref() click to toggle source

Nullify internal pointer and return pointer pointer. @note This detaches the current instance from the native object

and thus makes it unusable.

@return [::FFI::MemoryPointer] the pointer pointing to a pointer

pointing to the native object
# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 59
def __ptr_give_ref
  raise DestroyedError unless @ptr
  ptr_ptr = ::FFI::MemoryPointer.new :pointer
  ptr_ptr.write_pointer @ptr
  __undef_finalizer if @finalizer
  @ptr = nil
  ptr_ptr
end
__undef_finalizer() click to toggle source

Undefines the finalizer for this object. @note Only use this if you need to and can guarantee that the native

object will be freed by other means.

@return [void]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 71
def __undef_finalizer
  ObjectSpace.undefine_finalizer self
  @finalizer = nil
end
cache() click to toggle source

Load directory cache; returns a hash table containing the SHA-1 digests of every file in the tree. The cache is saved between runs in .cache.

@return [Zhash]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 198
def cache()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zdir_cache(self_p)
  result = Zhash.__new result, true
  result
end
count() click to toggle source

Return directory count

@return [Integer]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 131
def count()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zdir_count(self_p)
  result
end
cursize() click to toggle source

Return total hierarchy size, in bytes of data contained in all files in the directory tree.

@return [::FFI::Pointer]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 121
def cursize()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zdir_cursize(self_p)
  result
end
destroy() click to toggle source

Destroy a directory tree and all children it contains.

@return [void]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 90
def destroy()
  return unless @ptr
  self_p = __ptr_give_ref
  result = ::CZMQ::FFI.zdir_destroy(self_p)
  result
end
fprint(file, indent) click to toggle source

Print contents of directory to open stream

@param file [::FFI::Pointer, to_ptr] @param indent [Integer, to_int, to_i] @return [void]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 211
def fprint(file, indent)
  raise DestroyedError unless @ptr
  self_p = @ptr
  indent = Integer(indent)
  result = ::CZMQ::FFI.zdir_fprint(self_p, file, indent)
  result
end
list() click to toggle source

Returns a sorted list of zfile objects; Each entry in the list is a pointer to a zfile_t item already allocated in the zdir tree. Do not destroy the original zdir tree until you are done with this list.

@return [Zlist]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 143
def list()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zdir_list(self_p)
  result = Zlist.__new result, true
  result
end
modified() click to toggle source

Return last modification time for directory.

@return [::FFI::Pointer]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 110
def modified()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zdir_modified(self_p)
  result
end
null?() click to toggle source

@return [Boolean]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 43
def null?
  !@ptr or @ptr.null?
end
path() click to toggle source

Return directory path

@return [String]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 100
def path()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zdir_path(self_p)
  result
end
print(indent) click to toggle source

Print contents of directory to stdout

@param indent [Integer, to_int, to_i] @return [void]

remove(force) click to toggle source

Remove directory, optionally including all files that it contains, at all levels. If force is false, will only remove the directory if empty. If force is true, will remove all files and all subdirectories.

@param force [Boolean] @return [void]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 157
def remove(force)
  raise DestroyedError unless @ptr
  self_p = @ptr
  force = !(0==force||!force) # boolean
  result = ::CZMQ::FFI.zdir_remove(self_p, force)
  result
end
resync(alias_) click to toggle source

Return full contents of directory as a zdir_patch list.

@param alias_ [String, to_s, nil] @return [Zlist]

# File lib/czmq-ffi-gen/czmq/ffi/zdir.rb, line 186
def resync(alias_)
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zdir_resync(self_p, alias_)
  result = Zlist.__new result, true
  result
end
to_ptr()

So external Libraries can just pass the Object to a FFI function which expects a :pointer

Alias for: __ptr