Class: NNG::Socket::Push0

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

Instance Method Summary collapse

Constructor Details

#initializeObject



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

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

  return self;
}

Instance Method Details

#dial(url) ⇒ Object



102
103
104
105
106
107
108
109
110
111
112
# File 'ext/rbnng/socket.c', line 102

VALUE
socket_dial(VALUE self, VALUE url)
{
  Check_Type(url, T_STRING);
  RbnngSocket* p_rbnngSocket;
  Data_Get_Struct(self, RbnngSocket, p_rbnngSocket);
  int rv;
  if ((rv = nng_dial(p_rbnngSocket->socket, StringValueCStr(url), 0, 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);
  }
}