class CZMQ::FFI::Zclock

millisecond clocks and delays @note This class is 100% generated using zproject.

Public Class Methods

create_finalizer_for(ptr) click to toggle source

@return [Proc]

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 34
def self.create_finalizer_for(ptr)
  Proc.new do
    "WARNING: "\
    "Objects of type #{self} cannot be destroyed implicitly. "\
    "Please call the correct destroy method with the relevant arguments."
  end
end
mono() click to toggle source

Return current monotonic clock in milliseconds. Use this when you compute time offsets. The monotonic clock is not affected by system changes and so will never be reset backwards, unlike a system clock.

@return [::FFI::Pointer]

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 100
def self.mono()
  result = ::CZMQ::FFI.zclock_mono()
  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/zclock.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
sleep(msecs) click to toggle source

Sleep for a number of milliseconds

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

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 79
def self.sleep(msecs)
  msecs = Integer(msecs)
  result = ::CZMQ::FFI.zclock_sleep(msecs)
  result
end
test(verbose) click to toggle source

Self test of this class.

@param verbose [Boolean] @return [void]

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 128
def self.test(verbose)
  verbose = !(0==verbose||!verbose) # boolean
  result = ::CZMQ::FFI.zclock_test(verbose)
  result
end
time() click to toggle source

Return current system clock as milliseconds. Note that this clock can jump backwards (if the system clock is changed) so is unsafe to use for timers and time offsets. Use zclock_mono for that instead.

@return [::FFI::Pointer]

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 90
def self.time()
  result = ::CZMQ::FFI.zclock_time()
  result
end
timestr() click to toggle source

Return formatted date/time as fresh string. Free using zstr_free().

@return [::FFI::AutoPointer]

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 118
def self.timestr()
  result = ::CZMQ::FFI.zclock_timestr()
  result = ::FFI::AutoPointer.new(result, LibC.method(:free))
  result
end
usecs() click to toggle source

Return current monotonic clock in microseconds. Use this when you compute time offsets. The monotonic clock is not affected by system changes and so will never be reset backwards, unlike a system clock.

@return [::FFI::Pointer]

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 110
def self.usecs()
  result = ::CZMQ::FFI.zclock_usecs()
  result
end

Public Instance Methods

__ptr() click to toggle source

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

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 47
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/zclock.rb, line 58
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/zclock.rb, line 70
def __undef_finalizer
  ObjectSpace.undefine_finalizer self
  @finalizer = nil
end
null?() click to toggle source

@return [Boolean]

# File lib/czmq-ffi-gen/czmq/ffi/zclock.rb, line 42
def null?
  !@ptr or @ptr.null?
end
to_ptr()

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

Alias for: __ptr