Class: CZMQ::FFI::Zdir

Inherits:
Object
  • Object
show all
Defined in:
lib/czmq-ffi-gen/czmq/ffi/zdir.rb

Overview

Note:

This class is 100% generated using zproject.

work with file-system directories

Defined Under Namespace

Classes: DestroyedError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ptr, finalize = true) ⇒ Zdir

Attaches the pointer ptr to this instance and defines a finalizer for it if necessary.

Parameters:

  • ptr (::FFI::Pointer)
  • finalize (Boolean) (defaults to: true)


24
25
26
27
28
29
30
31
32
# 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

Class Method Details

.__newObject



18
# File 'lib/czmq-ffi-gen/czmq/ffi/zdir.rb', line 18

alias :__new :new

.create_finalizer_for(ptr) ⇒ Proc

Parameters:

  • ptr (::FFI::Pointer)

Returns:

  • (Proc)


35
36
37
38
39
40
41
# 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_) ⇒ Zlist

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).

Parameters:

Returns:



174
175
176
177
178
179
180
# 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(path, parent) ⇒ CZMQ::Zdir

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.

Parameters:

  • path (String, #to_s, nil)
  • parent (String, #to_s, nil)

Returns:

  • (CZMQ::Zdir)


82
83
84
85
# 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

.test(verbose) ⇒ void

This method returns an undefined value.

Self test of this class.

Parameters:

  • verbose (Boolean)


271
272
273
274
275
# 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) ⇒ void

This method returns an undefined value.

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);

Parameters:



261
262
263
264
265
# 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

Instance Method Details

#__ptr::FFI::Pointer Also known as: to_ptr

Return internal pointer

Returns:

  • (::FFI::Pointer)

Raises:



48
49
50
51
# File 'lib/czmq-ffi-gen/czmq/ffi/zdir.rb', line 48

def __ptr
  raise DestroyedError unless @ptr
  @ptr
end

#__ptr_give_ref::FFI::MemoryPointer

Note:

This detaches the current instance from the native object and thus makes it unusable.

Nullify internal pointer and return pointer pointer.

Returns:

  • (::FFI::MemoryPointer)

    the pointer pointing to a pointer pointing to the native object

Raises:



59
60
61
62
63
64
65
66
# 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_finalizervoid

Note:

Only use this if you need to and can guarantee that the native object will be freed by other means.

This method returns an undefined value.

Undefines the finalizer for this object.



71
72
73
74
# File 'lib/czmq-ffi-gen/czmq/ffi/zdir.rb', line 71

def __undef_finalizer
  ObjectSpace.undefine_finalizer self
  @finalizer = nil
end

#cacheZhash

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.

Returns:

Raises:



198
199
200
201
202
203
204
# 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

#countInteger

Return directory count

Returns:

  • (Integer)

Raises:



131
132
133
134
135
136
# 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::FFI::Pointer

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

Returns:

  • (::FFI::Pointer)

Raises:



121
122
123
124
125
126
# 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

#destroyvoid

This method returns an undefined value.

Destroy a directory tree and all children it contains.



90
91
92
93
94
95
# 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) ⇒ void

This method returns an undefined value.

Print contents of directory to open stream

Parameters:

  • file (::FFI::Pointer, #to_ptr)
  • indent (Integer, #to_int, #to_i)

Raises:



211
212
213
214
215
216
217
# 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

#listZlist

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.

Returns:

Raises:



143
144
145
146
147
148
149
# 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::FFI::Pointer

Return last modification time for directory.

Returns:

  • (::FFI::Pointer)

Raises:



110
111
112
113
114
115
# 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?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/czmq-ffi-gen/czmq/ffi/zdir.rb', line 43

def null?
  !@ptr or @ptr.null?
end

#pathString

Return directory path

Returns:

  • (String)

Raises:



100
101
102
103
104
105
# 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

This method returns an undefined value.

Print contents of directory to stdout

Parameters:

  • indent (Integer, #to_int, #to_i)

Raises:



223
224
225
226
227
228
229
# File 'lib/czmq-ffi-gen/czmq/ffi/zdir.rb', line 223

def print(indent)
  raise DestroyedError unless @ptr
  self_p = @ptr
  indent = Integer(indent)
  result = ::CZMQ::FFI.zdir_print(self_p, indent)
  result
end

#remove(force) ⇒ void

This method returns an undefined value.

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.

Parameters:

  • force (Boolean)

Raises:



157
158
159
160
161
162
163
# 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_) ⇒ Zlist

Return full contents of directory as a zdir_patch list.

Parameters:

  • alias_ (String, #to_s, nil)

Returns:

Raises:



186
187
188
189
190
191
192
# 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