Class: CZMQ::FFI::Zmsg

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

Overview

Note:

This class is 100% generated using zproject.

working with multipart messages

Defined Under Namespace

Classes: DestroyedError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ptr, finalize = true) ⇒ Zmsg

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/zmsg.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/zmsg.rb', line 18

alias :__new :new

.create_finalizer_for(ptr) ⇒ Proc

Parameters:

  • ptr (::FFI::Pointer)

Returns:

  • (Proc)


35
36
37
38
39
40
41
42
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 35

def self.create_finalizer_for(ptr)
  ptr_ptr = ::FFI::MemoryPointer.new :pointer

  Proc.new do
    ptr_ptr.write_pointer ptr
    ::CZMQ::FFI.zmsg_destroy ptr_ptr
  end
end

.decode(frame) ⇒ CZMQ::Zmsg

Decodes a serialized message frame created by zmsg_encode () and returns a new zmsg_t object. Returns NULL if the frame was badly formatted or there was insufficient memory to work.

Parameters:

Returns:

  • (CZMQ::Zmsg)


109
110
111
112
113
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 109

def self.decode(frame)
  frame = frame.__ptr if frame
  ptr = ::CZMQ::FFI.zmsg_decode(frame)
  __new ptr
end

.is(self_) ⇒ Boolean

Probe the supplied object, and report if it looks like a zmsg_t.

Parameters:

  • self_ (::FFI::Pointer, #to_ptr)

Returns:

  • (Boolean)


511
512
513
514
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 511

def self.is(self_)
  result = ::CZMQ::FFI.zmsg_is(self_)
  result
end

.load(file) ⇒ CZMQ::Zmsg

Load/append an open file into new message, return the message. Returns NULL if the message could not be loaded.

Parameters:

  • file (::FFI::Pointer, #to_ptr)

Returns:

  • (CZMQ::Zmsg)


99
100
101
102
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 99

def self.load(file)
  ptr = ::CZMQ::FFI.zmsg_load(file)
  __new ptr
end

.newCZMQ::Zmsg

Create a new empty message object

Returns:

  • (CZMQ::Zmsg)


79
80
81
82
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 79

def self.new()
  ptr = ::CZMQ::FFI.zmsg_new()
  __new ptr
end

.new_signal(status) ⇒ CZMQ::Zmsg

Generate a signal message encoding the given status. A signal is a short message carrying a 1-byte success/failure code (by convention, 0 means OK). Signals are encoded to be distinguishable from “normal” messages.

Parameters:

  • status (Integer, #to_int, #to_i)

Returns:

  • (CZMQ::Zmsg)


120
121
122
123
124
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 120

def self.new_signal(status)
  status = Integer(status)
  ptr = ::CZMQ::FFI.zmsg_new_signal(status)
  __new ptr
end

.recv(source) ⇒ CZMQ::Zmsg

Receive message from socket, returns zmsg_t object or NULL if the recv was interrupted. Does a blocking recv. If you want to not block then use the zloop class or zmsg_recv_nowait or zmq_poll to check for socket input before receiving.

Parameters:

  • source (::FFI::Pointer, #to_ptr)

Returns:

  • (CZMQ::Zmsg)


90
91
92
93
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 90

def self.recv(source)
  ptr = ::CZMQ::FFI.zmsg_recv(source)
  __new ptr
end

.send(self_p, dest) ⇒ Integer

Send message to destination socket, and destroy the message after sending it successfully. If the message has no frames, sends nothing but destroys the message anyhow. Nullifies the caller’s reference to the message (as it is a destructor).

Parameters:

Returns:

  • (Integer)


144
145
146
147
148
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 144

def self.send(self_p, dest)
  self_p = self_p.__ptr_give_ref
  result = ::CZMQ::FFI.zmsg_send(self_p, dest)
  result
end

.sendm(self_p, dest) ⇒ Integer

Send message to destination socket as part of a multipart sequence, and destroy the message after sending it successfully. Note that after a zmsg_sendm, you must call zmsg_send or another method that sends a final message part. If the message has no frames, sends nothing but destroys the message anyhow. Nullifies the caller’s reference to the message (as it is a destructor).

Parameters:

Returns:

  • (Integer)


160
161
162
163
164
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 160

def self.sendm(self_p, dest)
  self_p = self_p.__ptr_give_ref
  result = ::CZMQ::FFI.zmsg_sendm(self_p, dest)
  result
end

.test(verbose) ⇒ void

This method returns an undefined value.

Self test of this class.

Parameters:

  • verbose (Boolean)


520
521
522
523
524
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 520

def self.test(verbose)
  verbose = !(0==verbose||!verbose) # boolean
  result = ::CZMQ::FFI.zmsg_test(verbose)
  result
end

Instance Method Details

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

Return internal pointer

Returns:

  • (::FFI::Pointer)

Raises:



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

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:



60
61
62
63
64
65
66
67
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 60

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.



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

def __undef_finalizer
  ObjectSpace.undefine_finalizer self
  @finalizer = nil
end

#addmem(data, size) ⇒ Integer

Add block of memory to the end of the message, as a new frame. Returns 0 on success, -1 on error.

Parameters:

  • data (::FFI::Pointer, #to_ptr)
  • size (Integer, #to_int, #to_i)

Returns:

  • (Integer)

Raises:



271
272
273
274
275
276
277
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 271

def addmem(data, size)
  raise DestroyedError unless @ptr
  self_p = @ptr
  size = Integer(size)
  result = ::CZMQ::FFI.zmsg_addmem(self_p, data, size)
  result
end

#addmsg(msg_p) ⇒ Integer

Push encoded message as a new frame. Message takes ownership of submessage, so the original is destroyed in this call. Returns 0 on success, -1 on error.

Parameters:

Returns:

  • (Integer)

Raises:



347
348
349
350
351
352
353
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 347

def addmsg(msg_p)
  raise DestroyedError unless @ptr
  self_p = @ptr
  msg_p = msg_p.__ptr_give_ref
  result = ::CZMQ::FFI.zmsg_addmsg(self_p, msg_p)
  result
end

#addstr(string) ⇒ Integer

Push string as new frame to end of message. Returns 0 on success, -1 on error.

Parameters:

  • string (String, #to_s, nil)

Returns:

  • (Integer)

Raises:



296
297
298
299
300
301
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 296

def addstr(string)
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_addstr(self_p, string)
  result
end

#addstrf(format, *args) ⇒ Integer

Push formatted string as new frame to end of message. Returns 0 on success, -1 on error.

Parameters:

Returns:

  • (Integer)

Raises:



322
323
324
325
326
327
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 322

def addstrf(format, *args)
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_addstrf(self_p, format, *args)
  result
end

#append(frame_p) ⇒ Integer

Add frame to the end of the message, i.e. after all other frames. Message takes ownership of frame, will destroy it when message is sent. Returns 0 on success. Deprecates zmsg_add, which did not nullify the caller’s frame reference.

Parameters:

Returns:

  • (Integer)

Raises:



232
233
234
235
236
237
238
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 232

def append(frame_p)
  raise DestroyedError unless @ptr
  self_p = @ptr
  frame_p = frame_p.__ptr_give_ref
  result = ::CZMQ::FFI.zmsg_append(self_p, frame_p)
  result
end

#content_sizeInteger

Return total size of all frames in message.

Returns:

  • (Integer)

Raises:



179
180
181
182
183
184
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 179

def content_size()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_content_size(self_p)
  result
end

#destroyvoid

This method returns an undefined value.

Destroy a message object and all frames it contains



129
130
131
132
133
134
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 129

def destroy()
  return unless @ptr
  self_p = __ptr_give_ref
  result = ::CZMQ::FFI.zmsg_destroy(self_p)
  result
end

#dupZmsg

Create copy of message, as new message object. Returns a fresh zmsg_t object. If message is null, or memory was exhausted, returns null.

Returns:

Raises:



448
449
450
451
452
453
454
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 448

def dup()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_dup(self_p)
  result = Zmsg.__new result, true
  result
end

#encodeZframe

Serialize multipart message to a single message frame. Use this method to send structured messages across transports that do not support multipart data. Allocates and returns a new frame containing the serialized message. To decode a serialized message frame, use zmsg_decode ().

Returns:

Raises:



436
437
438
439
440
441
442
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 436

def encode()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_encode(self_p)
  result = Zframe.__new result, true
  result
end

#eq(other) ⇒ Boolean

Return true if the two messages have the same number of frames and each frame in the first message is identical to the corresponding frame in the other message. As with zframe_eq, return false if either message is NULL.

Parameters:

Returns:

  • (Boolean)

Raises:



489
490
491
492
493
494
495
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 489

def eq(other)
  raise DestroyedError unless @ptr
  self_p = @ptr
  other = other.__ptr if other
  result = ::CZMQ::FFI.zmsg_eq(self_p, other)
  result
end

#firstZframe

Set cursor to first frame in message. Returns frame, or NULL, if the message is empty. Use this to navigate the frames as a list.

Returns:

Raises:



383
384
385
386
387
388
389
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 383

def first()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_first(self_p)
  result = Zframe.__new result, false
  result
end

#lastZframe

Return the last frame. If there are no frames, returns NULL.

Returns:

Raises:



406
407
408
409
410
411
412
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 406

def last()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_last(self_p)
  result = Zframe.__new result, false
  result
end

#nextZframe

Return the next frame. If there are no more frames, returns NULL. To move to the first frame call zmsg_first(). Advances the cursor.

Returns:

Raises:



395
396
397
398
399
400
401
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 395

def next()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_next(self_p)
  result = Zframe.__new result, false
  result
end

#null?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 44

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

#popZframe

Remove first frame from message, if any. Returns frame, or NULL.

Returns:

Raises:



243
244
245
246
247
248
249
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 243

def pop()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_pop(self_p)
  result = Zframe.__new result, true
  result
end

#popmsgZmsg

Remove first submessage from message, if any. Returns zmsg_t, or NULL if decoding was not successful.

Returns:

Raises:



359
360
361
362
363
364
365
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 359

def popmsg()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_popmsg(self_p)
  result = Zmsg.__new result, true
  result
end

#popstr::FFI::AutoPointer

Pop frame off front of message, return as fresh string. If there were no more frames in the message, returns NULL.

Returns:

  • (::FFI::AutoPointer)

Raises:



333
334
335
336
337
338
339
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 333

def popstr()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_popstr(self_p)
  result = ::FFI::AutoPointer.new(result, LibC.method(:free))
  result
end

#prepend(frame_p) ⇒ Integer

Push frame to the front of the message, i.e. before all other frames. Message takes ownership of frame, will destroy it when message is sent. Returns 0 on success, -1 on error. Deprecates zmsg_push, which did not nullify the caller’s frame reference.

Parameters:

Returns:

  • (Integer)

Raises:



217
218
219
220
221
222
223
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 217

def prepend(frame_p)
  raise DestroyedError unless @ptr
  self_p = @ptr
  frame_p = frame_p.__ptr_give_ref
  result = ::CZMQ::FFI.zmsg_prepend(self_p, frame_p)
  result
end

This method returns an undefined value.

Send message to zsys log sink (may be stdout, or system facility as configured by zsys_set_logstream). Long messages are truncated.

Raises:



461
462
463
464
465
466
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 461

def print()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_print(self_p)
  result
end

This method returns an undefined value.

Send message to zsys log sink (may be stdout, or system facility as configured by zsys_set_logstream). Message length is specified; no truncation unless length is zero. Backwards compatible with zframe_print when length is zero.

Parameters:

  • size (Integer, #to_int, #to_i)

Raises:



475
476
477
478
479
480
481
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 475

def print_n(size)
  raise DestroyedError unless @ptr
  self_p = @ptr
  size = Integer(size)
  result = ::CZMQ::FFI.zmsg_print_n(self_p, size)
  result
end

#pushmem(data, size) ⇒ Integer

Push block of memory to front of message, as a new frame. Returns 0 on success, -1 on error.

Parameters:

  • data (::FFI::Pointer, #to_ptr)
  • size (Integer, #to_int, #to_i)

Returns:

  • (Integer)

Raises:



257
258
259
260
261
262
263
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 257

def pushmem(data, size)
  raise DestroyedError unless @ptr
  self_p = @ptr
  size = Integer(size)
  result = ::CZMQ::FFI.zmsg_pushmem(self_p, data, size)
  result
end

#pushstr(string) ⇒ Integer

Push string as new frame to front of message. Returns 0 on success, -1 on error.

Parameters:

  • string (String, #to_s, nil)

Returns:

  • (Integer)

Raises:



284
285
286
287
288
289
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 284

def pushstr(string)
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_pushstr(self_p, string)
  result
end

#pushstrf(format, *args) ⇒ Integer

Push formatted string as new frame to front of message. Returns 0 on success, -1 on error.

Parameters:

Returns:

  • (Integer)

Raises:



309
310
311
312
313
314
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 309

def pushstrf(format, *args)
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_pushstrf(self_p, format, *args)
  result
end

#remove(frame) ⇒ void

This method returns an undefined value.

Remove specified frame from list, if present. Does not destroy frame.

Parameters:

Raises:



371
372
373
374
375
376
377
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 371

def remove(frame)
  raise DestroyedError unless @ptr
  self_p = @ptr
  frame = frame.__ptr if frame
  result = ::CZMQ::FFI.zmsg_remove(self_p, frame)
  result
end

#routing_idInteger

Return message routing ID, if the message came from a ZMQ_SERVER socket. Else returns zero.

Returns:

  • (Integer)

Raises:



190
191
192
193
194
195
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 190

def routing_id()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_routing_id(self_p)
  result
end

#save(file) ⇒ Integer

Save message to an open file, return 0 if OK, else -1. The message is saved as a series of frames, each with length and data. Note that the file is NOT guaranteed to be portable between operating systems, not versions of CZMQ. The file format is at present undocumented and liable to arbitrary change.

Parameters:

  • file (::FFI::Pointer, #to_ptr)

Returns:

  • (Integer)

Raises:



422
423
424
425
426
427
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 422

def save(file)
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_save(self_p, file)
  result
end

#set_routing_id(routing_id) ⇒ void

This method returns an undefined value.

Set routing ID on message. This is used if/when the message is sent to a ZMQ_SERVER socket.

Parameters:

  • routing_id (Integer, #to_int, #to_i)

Raises:



202
203
204
205
206
207
208
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 202

def set_routing_id(routing_id)
  raise DestroyedError unless @ptr
  self_p = @ptr
  routing_id = Integer(routing_id)
  result = ::CZMQ::FFI.zmsg_set_routing_id(self_p, routing_id)
  result
end

#signalInteger

Return signal value, 0 or greater, if message is a signal, -1 if not.

Returns:

  • (Integer)

Raises:



500
501
502
503
504
505
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 500

def signal()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_signal(self_p)
  result
end

#sizeInteger

Return size of message, i.e. number of frames (0 or more).

Returns:

  • (Integer)

Raises:



169
170
171
172
173
174
# File 'lib/czmq-ffi-gen/czmq/ffi/zmsg.rb', line 169

def size()
  raise DestroyedError unless @ptr
  self_p = @ptr
  result = ::CZMQ::FFI.zmsg_size(self_p)
  result
end