Sha256: 9fad76e2a8ebd25a90cfae92dff6dbe6014477cc62535d6946a60eb36ca09cd4

Contents?: true

Size: 1.07 KB

Versions: 17

Compression:

Stored size: 1.07 KB

Contents

#include "polyphony.h"

/* :nop-doc: */

VALUE Socket_send(VALUE self, VALUE msg, VALUE flags) {
  return Backend_send(BACKEND(), self, msg, flags);
}

/* :nop-doc: */

VALUE Socket_write(int argc, VALUE *argv, VALUE self) {
  VALUE ary = rb_ary_new_from_values(argc, argv);
  VALUE result = Backend_sendv(BACKEND(), self, ary, INT2FIX(0));
  RB_GC_GUARD(ary);
  return result;
}

/* :nop-doc: */

VALUE Socket_double_chevron(VALUE self, VALUE msg) {
  Backend_send(BACKEND(), self, msg, INT2FIX(0));
  return self;
}

void Init_SocketExtensions(void) {
  VALUE cSocket;
  VALUE cTCPSocket;

  rb_require("socket");

  cSocket = rb_const_get(rb_cObject, rb_intern("Socket"));
  cTCPSocket = rb_const_get(rb_cObject, rb_intern("TCPSocket"));

  rb_define_method(cSocket, "send", Socket_send, 2);
  rb_define_method(cTCPSocket, "send", Socket_send, 2);

  rb_define_method(cSocket, "write", Socket_write, -1);
  rb_define_method(cTCPSocket, "write", Socket_write, -1);

  rb_define_method(cSocket, "<<", Socket_double_chevron, 1);
  rb_define_method(cTCPSocket, "<<", Socket_double_chevron, 1);
}

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
polyphony-1.6 ext/polyphony/socket_extensions.c
polyphony-1.5 ext/polyphony/socket_extensions.c
polyphony-1.4 ext/polyphony/socket_extensions.c
polyphony-1.3 ext/polyphony/socket_extensions.c
polyphony-1.2.1 ext/polyphony/socket_extensions.c
polyphony-1.2 ext/polyphony/socket_extensions.c
polyphony-1.1.1 ext/polyphony/socket_extensions.c
polyphony-1.1 ext/polyphony/socket_extensions.c
polyphony-1.0.2 ext/polyphony/socket_extensions.c
polyphony-1.0.1 ext/polyphony/socket_extensions.c
polyphony-1.0 ext/polyphony/socket_extensions.c
polyphony-0.99.6 ext/polyphony/socket_extensions.c
polyphony-0.99.5 ext/polyphony/socket_extensions.c
polyphony-0.99.4 ext/polyphony/socket_extensions.c
polyphony-0.99.3 ext/polyphony/socket_extensions.c
polyphony-0.99.2 ext/polyphony/socket_extensions.c
polyphony-0.99.1 ext/polyphony/socket_extensions.c