Class: NNG::Socket::Pub0

Inherits:
Object
  • Object
show all
Defined in:
ext/rbnng/pub0.c

Instance Method Summary collapse

Constructor Details

#initializeObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'ext/rbnng/pub0.c', line 11

static VALUE
socket_pub0_initialize(VALUE self)
{
  RbnngSocket* p_rbnngSocket;
  Data_Get_Struct(self, RbnngSocket, p_rbnngSocket);
  int rv;
  if ((rv = nng_pub0_open(&p_rbnngSocket->socket)) != 0) {
    raise_error(rv);
    return Qnil;
  }

  return self;
}

Instance Method Details

#listen(url) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'ext/rbnng/socket.c', line 114

VALUE
socket_listen(VALUE self, VALUE url)
{
  Check_Type(url, T_STRING);
  RbnngSocket* p_rbnngSocket;
  Data_Get_Struct(self, RbnngSocket, p_rbnngSocket);

  int rv;
  if ((rv = nng_listen(p_rbnngSocket->socket, StringValueCStr(url), NULL, 0)) !=
      0) {
    raise_error(rv);
  }
}

#send_msg(rb_strMsg) ⇒ Object



87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'ext/rbnng/socket.c', line 87

VALUE
socket_send_msg(VALUE self, VALUE rb_strMsg)
{
  Check_Type(rb_strMsg, T_STRING);
  RbnngSendMsgReq sendMsgReq = {
    .socketObj = self,
    .nextMsg = rb_strMsg,
  };
  int rv =
    rb_thread_call_without_gvl(socket_send_msg_blocking, &sendMsgReq, 0, 0);
  if (rv != 0) {
    raise_error(rv);
  }
}