Class: CZTop::Socket::DISH

Inherits:
CZTop::Socket show all
Defined in:
lib/cztop/socket/types.rb

Overview

Group-based pub/sub (vs topic-based). This is the subscriber socket.

Constant Summary

Constants inherited from CZTop::Socket

TypeNames

Instance Attribute Summary

Attributes inherited from CZTop::Socket

#last_tcp_port

Attributes included from HasFFIDelegate

#ffi_delegate

Instance Method Summary collapse

Methods inherited from CZTop::Socket

#CURVE_client!, #CURVE_server!, #bind, #close, #connect, #disconnect, #inspect, #last_endpoint, new_by_type, #unbind

Methods included from HasFFIDelegate::ClassMethods

#ffi_delegate, #from_ffi_delegate

Methods included from PolymorphicZsockMethods

#set_unbounded, #signal, #wait

Methods included from CZTop::SendReceiveMethods

#<<, #receive

Methods included from ZsockOptions

#fd, #options, #readable?, #writable?

Methods included from HasFFIDelegate

#attach_ffi_delegate, #from_ffi_delegate, #raise_zmq_err, raise_zmq_err, #to_ptr

Constructor Details

#initialize(endpoints = nil) ⇒ DISH

Returns a new instance of DISH.

Parameters:

  • endpoints (String) (defaults to: nil)

    endpoints to connect to


223
224
225
# File 'lib/cztop/socket/types.rb', line 223

def initialize(endpoints = nil)
  attach_ffi_delegate(Zsock.new_dish(endpoints))
end

Instance Method Details

#join(group) ⇒ void

This method returns an undefined value.

Joins the given group.

Parameters:

  • group (String)

    group to join, up to 15 characters

Raises:

  • (ArgumentError)

    when group name is invalid or group has already been joined before

  • (SystemCallError)

    in case of failure


233
234
235
236
# File 'lib/cztop/socket/types.rb', line 233

def join(group)
  rc = ffi_delegate.join(group)
  raise_zmq_err("unable to join group %p" % group) if rc == -1
end

#leave(group) ⇒ void

This method returns an undefined value.

Leaves the given group.

Parameters:

  • group (String)

    group to leave

Raises:

  • (ArgumentError)

    when group wasn't joined before

  • (SystemCallError)

    in case of another failure


243
244
245
246
# File 'lib/cztop/socket/types.rb', line 243

def leave(group)
  rc = ffi_delegate.leave(group)
  raise_zmq_err("unable to leave group %p" % group) if rc == -1
end