Class: CZMQ::FFI::Zchunk
- Inherits:
-
Object
- Object
- CZMQ::FFI::Zchunk
- Defined in:
- lib/czmq-ffi-gen/czmq/ffi/zchunk.rb
Overview
This class is 100% generated using zproject.
work with memory chunks
Defined Under Namespace
Classes: DestroyedError
Class Method Summary collapse
- .__new ⇒ Object
- .create_finalizer_for(ptr) ⇒ Proc
-
.is(self_) ⇒ Boolean
Probe the supplied object, and report if it looks like a zchunk_t.
-
.new(data, size) ⇒ CZMQ::Zchunk
Create a new chunk of the specified size.
-
.read(handle, bytes) ⇒ Zchunk
Read chunk from an open file descriptor.
-
.slurp(filename, maxsize) ⇒ Zchunk
Try to slurp an entire file into a chunk.
-
.test(verbose) ⇒ void
Self test of this class.
-
.unpack(frame) ⇒ Zchunk
Transform a zframe into a zchunk.
Instance Method Summary collapse
-
#__ptr ⇒ ::FFI::Pointer
(also: #to_ptr)
Return internal pointer.
-
#__ptr_give_ref ⇒ ::FFI::MemoryPointer
Nullify internal pointer and return pointer pointer.
-
#__undef_finalizer ⇒ void
Undefines the finalizer for this object.
-
#append(data, size) ⇒ Integer
Append user-supplied data to chunk, return resulting chunk size.
-
#consume(source) ⇒ Integer
Copy as much data from ‘source’ into the chunk as possible; returns the new size of chunk.
-
#data ⇒ ::FFI::Pointer
Return chunk data.
-
#destroy ⇒ void
Destroy a chunk.
-
#digest ⇒ String
Calculate SHA1 digest for chunk, using zdigest class.
-
#dup ⇒ Zchunk
Create copy of chunk, as new chunk object.
-
#exhausted ⇒ Boolean
Returns true if the chunk was exhausted by consume methods, or if the chunk has a size of zero.
-
#extend(data, size) ⇒ Integer
Append user-supplied data to chunk, return resulting chunk size.
-
#fill(filler, size) ⇒ Integer
Fill chunk data from user-supplied octet.
-
#fprint(file) ⇒ void
Dump chunk to FILE stream, for debugging and tracing.
-
#initialize(ptr, finalize = true) ⇒ Zchunk
constructor
Attaches the pointer ptr to this instance and defines a finalizer for it if necessary.
-
#max_size ⇒ Integer
Return chunk max size.
- #null? ⇒ Boolean
-
#pack ⇒ Zframe
Transform zchunk into a zframe that can be sent in a message.
-
#print ⇒ void
Dump message to stderr, for debugging and tracing.
-
#resize(size) ⇒ void
Resizes chunk max_size as requested; chunk_cur size is set to zero.
-
#set(data, size) ⇒ Integer
Set chunk data from user-supplied data; truncate if too large.
-
#size ⇒ Integer
Return chunk cur size.
-
#strdup ⇒ ::FFI::AutoPointer
Return chunk data copied into freshly allocated string Caller must free string when finished with it.
-
#streq(string) ⇒ Boolean
Return TRUE if chunk body is equal to string, excluding terminator.
-
#strhex ⇒ ::FFI::AutoPointer
Return chunk data encoded as printable hex string.
-
#write(handle) ⇒ Integer
Write chunk to an open file descriptor.
Constructor Details
#initialize(ptr, finalize = true) ⇒ Zchunk
Attaches the pointer ptr to this instance and defines a finalizer for it if necessary.
24 25 26 27 28 29 30 31 32 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.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
.__new ⇒ Object
18 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 18 alias :__new :new |
.create_finalizer_for(ptr) ⇒ Proc
35 36 37 38 39 40 41 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.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.zchunk_destroy ptr_ptr end end |
.is(self_) ⇒ Boolean
Probe the supplied object, and report if it looks like a zchunk_t.
367 368 369 370 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 367 def self.is(self_) result = ::CZMQ::FFI.zchunk_is(self_) result end |
.new(data, size) ⇒ CZMQ::Zchunk
Create a new chunk of the specified size. If you specify the data, it is copied into the chunk. If you do not specify the data, the chunk is allocated and left empty, and you can then add data using zchunk_append.
82 83 84 85 86 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 82 def self.new(data, size) size = Integer(size) ptr = ::CZMQ::FFI.zchunk_new(data, size) __new ptr end |
.read(handle, bytes) ⇒ Zchunk
Read chunk from an open file descriptor
228 229 230 231 232 233 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 228 def self.read(handle, bytes) bytes = Integer(bytes) result = ::CZMQ::FFI.zchunk_read(handle, bytes) result = Zchunk.__new result, true result end |
.slurp(filename, maxsize) ⇒ Zchunk
Try to slurp an entire file into a chunk. Will read up to maxsize of the file. If maxsize is 0, will attempt to read the entire file and fail with an assertion if that cannot fit into memory. Returns a new chunk containing the file data, or NULL if the file could not be read.
254 255 256 257 258 259 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 254 def self.slurp(filename, maxsize) maxsize = Integer(maxsize) result = ::CZMQ::FFI.zchunk_slurp(filename, maxsize) result = Zchunk.__new result, true result end |
Instance Method Details
#__ptr ⇒ ::FFI::Pointer Also known as: to_ptr
Return internal pointer
48 49 50 51 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 48 def __ptr raise DestroyedError unless @ptr @ptr end |
#__ptr_give_ref ⇒ ::FFI::MemoryPointer
This detaches the current instance from the native object and thus makes it unusable.
Nullify internal pointer and return pointer pointer.
59 60 61 62 63 64 65 66 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.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 ⇒ void
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/zchunk.rb', line 71 def __undef_finalizer ObjectSpace.undefine_finalizer self @finalizer = nil end |
#append(data, size) ⇒ Integer
Append user-supplied data to chunk, return resulting chunk size. If the data would exceeded the available space, it is truncated. If you want to grow the chunk to accommodate new data, use the zchunk_extend method.
175 176 177 178 179 180 181 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 175 def append(data, size) raise DestroyedError unless @ptr self_p = @ptr size = Integer(size) result = ::CZMQ::FFI.zchunk_append(self_p, data, size) result end |
#consume(source) ⇒ Integer
Copy as much data from ‘source’ into the chunk as possible; returns the new size of chunk. If all data from ‘source’ is used, returns exhausted on the source chunk. Source can be consumed as many times as needed until it is exhausted. If source was already exhausted, does not change chunk.
204 205 206 207 208 209 210 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 204 def consume(source) raise DestroyedError unless @ptr self_p = @ptr source = source.__ptr if source result = ::CZMQ::FFI.zchunk_consume(self_p, source) result end |
#data ⇒ ::FFI::Pointer
Return chunk data
133 134 135 136 137 138 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 133 def data() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_data(self_p) result end |
#destroy ⇒ void
This method returns an undefined value.
Destroy a chunk
91 92 93 94 95 96 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 91 def destroy() return unless @ptr self_p = __ptr_give_ref result = ::CZMQ::FFI.zchunk_destroy(self_p) result end |
#digest ⇒ String
Calculate SHA1 digest for chunk, using zdigest class.
334 335 336 337 338 339 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 334 def digest() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_digest(self_p) result end |
#dup ⇒ Zchunk
Create copy of chunk, as new chunk object. Returns a fresh zchunk_t object, or null if there was not enough heap memory. If chunk is null, returns null.
266 267 268 269 270 271 272 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 266 def dup() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_dup(self_p) result = Zchunk.__new result, true result end |
#exhausted ⇒ Boolean
Returns true if the chunk was exhausted by consume methods, or if the chunk has a size of zero.
216 217 218 219 220 221 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 216 def exhausted() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_exhausted(self_p) result end |
#extend(data, size) ⇒ Integer
Append user-supplied data to chunk, return resulting chunk size. If the data would exceeded the available space, the chunk grows in size.
189 190 191 192 193 194 195 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 189 def extend(data, size) raise DestroyedError unless @ptr self_p = @ptr size = Integer(size) result = ::CZMQ::FFI.zchunk_extend(self_p, data, size) result end |
#fill(filler, size) ⇒ Integer
Fill chunk data from user-supplied octet
159 160 161 162 163 164 165 166 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 159 def fill(filler, size) raise DestroyedError unless @ptr self_p = @ptr filler = Integer(filler) size = Integer(size) result = ::CZMQ::FFI.zchunk_fill(self_p, filler, size) result end |
#fprint(file) ⇒ void
This method returns an undefined value.
Dump chunk to FILE stream, for debugging and tracing.
345 346 347 348 349 350 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 345 def fprint(file) raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_fprint(self_p, file) result end |
#max_size ⇒ Integer
Return chunk max size
123 124 125 126 127 128 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 123 def max_size() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_max_size(self_p) result end |
#null? ⇒ Boolean
43 44 45 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 43 def null? !@ptr or @ptr.null? end |
#pack ⇒ Zframe
Transform zchunk into a zframe that can be sent in a message.
312 313 314 315 316 317 318 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 312 def pack() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_pack(self_p) result = Zframe.__new result, true result end |
#print ⇒ void
This method returns an undefined value.
Dump message to stderr, for debugging and tracing. See zchunk_fprint for details
356 357 358 359 360 361 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 356 def print() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_print(self_p) result end |
#resize(size) ⇒ void
This method returns an undefined value.
Resizes chunk max_size as requested; chunk_cur size is set to zero
102 103 104 105 106 107 108 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 102 def resize(size) raise DestroyedError unless @ptr self_p = @ptr size = Integer(size) result = ::CZMQ::FFI.zchunk_resize(self_p, size) result end |
#set(data, size) ⇒ Integer
Set chunk data from user-supplied data; truncate if too large. Data may be null. Returns actual size of chunk
146 147 148 149 150 151 152 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 146 def set(data, size) raise DestroyedError unless @ptr self_p = @ptr size = Integer(size) result = ::CZMQ::FFI.zchunk_set(self_p, data, size) result end |
#size ⇒ Integer
Return chunk cur size
113 114 115 116 117 118 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 113 def size() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_size(self_p) result end |
#strdup ⇒ ::FFI::AutoPointer
Return chunk data copied into freshly allocated string Caller must free string when finished with it.
290 291 292 293 294 295 296 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 290 def strdup() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_strdup(self_p) result = ::FFI::AutoPointer.new(result, LibC.method(:free)) result end |
#streq(string) ⇒ Boolean
Return TRUE if chunk body is equal to string, excluding terminator
302 303 304 305 306 307 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 302 def streq(string) raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_streq(self_p, string) result end |
#strhex ⇒ ::FFI::AutoPointer
Return chunk data encoded as printable hex string. Caller must free string when finished with it.
278 279 280 281 282 283 284 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 278 def strhex() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_strhex(self_p) result = ::FFI::AutoPointer.new(result, LibC.method(:free)) result end |
#write(handle) ⇒ Integer
Write chunk to an open file descriptor
239 240 241 242 243 244 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zchunk.rb', line 239 def write(handle) raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zchunk_write(self_p, handle) result end |