@JRubyMethod(required = 4, visibility = Visibility.PRIVATE) public IRubyObject initialize(ThreadContext context, IRubyObject[] args) { family = SocketUtils.protocolFamilyFromArg(args[0]); level = SocketUtils.levelFromArg(args[1]); option = SocketUtils.optionFromArg(args[2]); data = args[3].convertToString().getByteList(); return this; }
@JRubyMethod(required = 4, visibility = Visibility.PRIVATE) public IRubyObject initialize(ThreadContext context, IRubyObject[] args) { family = SocketUtils.protocolFamilyFromArg(args[0]); level = SocketUtils.levelFromArg(args[1]); option = SocketUtils.optionFromArg(args[2]); data = args[3].convertToString().getByteList(); return this; }
@Override public IRubyObject setsockopt(ThreadContext context, IRubyObject _level, IRubyObject _opt, IRubyObject val) { SocketLevel level = SocketUtils.levelFromArg(_level); SocketOption opt = SocketUtils.optionFromArg(_opt); switch(level) { case SOL_SOCKET: switch(opt) { case SO_KEEPALIVE: { // TODO: socket options } break; default: throw context.runtime.newErrnoENOPROTOOPTError(); } break; default: throw context.runtime.newErrnoENOPROTOOPTError(); } return context.runtime.newFixnum(0); }
@Override public IRubyObject setsockopt(ThreadContext context, IRubyObject _level, IRubyObject _opt, IRubyObject val) { SocketLevel level = SocketUtils.levelFromArg(_level); SocketOption opt = SocketUtils.optionFromArg(_opt); switch(level) { case SOL_SOCKET: switch(opt) { case SO_KEEPALIVE: { // TODO: socket options } break; default: throw context.runtime.newErrnoENOPROTOOPTError(); } break; default: throw context.runtime.newErrnoENOPROTOOPTError(); } return context.runtime.newFixnum(0); }
@JRubyMethod(required = 4, meta = true) public static IRubyObject bool(ThreadContext context, IRubyObject self, IRubyObject[] args) { ProtocolFamily family = SocketUtils.protocolFamilyFromArg(args[0]); SocketLevel level = SocketUtils.levelFromArg(args[1]); SocketOption option = SocketUtils.optionFromArg(args[2]); ByteList data = packInt(args[3].isTrue() ? 1 : 0); return new Option(context.getRuntime(), family, level, option, data); }
@JRubyMethod(name = "int", required = 4, meta = true) public static IRubyObject rb_int(ThreadContext context, IRubyObject self, IRubyObject[] args) { ProtocolFamily family = SocketUtils.protocolFamilyFromArg(args[0]); SocketLevel level = SocketUtils.levelFromArg(args[1]); SocketOption option = SocketUtils.optionFromArg(args[2]); ByteList data = packInt(RubyNumeric.fix2int(args[3])); return new Option(context.getRuntime(), family, level, option, data); }
@JRubyMethod(required = 4, meta = true) public static IRubyObject bool(ThreadContext context, IRubyObject self, IRubyObject[] args) { ProtocolFamily family = SocketUtils.protocolFamilyFromArg(args[0]); SocketLevel level = SocketUtils.levelFromArg(args[1]); SocketOption option = SocketUtils.optionFromArg(args[2]); ByteList data = packInt(args[3].isTrue() ? 1 : 0); return new Option(context.getRuntime(), family, level, option, data); }
@JRubyMethod(name = "int", required = 4, meta = true) public static IRubyObject rb_int(ThreadContext context, IRubyObject self, IRubyObject[] args) { ProtocolFamily family = SocketUtils.protocolFamilyFromArg(args[0]); SocketLevel level = SocketUtils.levelFromArg(args[1]); SocketOption option = SocketUtils.optionFromArg(args[2]); ByteList data = packInt(RubyNumeric.fix2int(args[3])); return new Option(context.getRuntime(), family, level, option, data); }
Ruby runtime = context.runtime; SocketLevel level = SocketUtils.levelFromArg(_level); SocketOption opt = SocketUtils.optionFromArg(_opt);
Ruby runtime = context.runtime; SocketLevel level = SocketUtils.levelFromArg(_level); SocketOption opt = SocketUtils.optionFromArg(_opt);
Ruby runtime = context.runtime; SocketLevel level = SocketUtils.levelFromArg(_level); SocketOption opt = SocketUtils.optionFromArg(_opt);
Ruby runtime = context.runtime; SocketLevel level = SocketUtils.levelFromArg(_level); SocketOption opt = SocketUtils.optionFromArg(_opt);