Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 
 package org.jruby.ext.ffi;
 
 import org.jruby.Ruby;
Converts data from one FFI type to another.
public class DataConverter {
    public static RubyModule createDataConverterModule(Ruby runtimeRubyModule module) {
        RubyModule result = module.defineModuleUnder("DataConverter");
        result.defineAnnotatedMethods(DataConverter.class);
        result.defineAnnotatedConstants(DataConverter.class);
        return result;
    }
    private static RubyModule module(IRubyObject obj) {
        if (!(obj instanceof RubyModule)) {
            throw obj.getRuntime().newTypeError("not a module");
        }
        return (RubyModuleobj;
    }
    @JRubyMethod(name = "native_type", module=true, optional = 1)
    public static IRubyObject native_type(ThreadContext contextIRubyObject selfIRubyObject[] args) {
        RubyModule m = module(self);
        if (args.length == 0) {
            if (!m.hasInternalVariable("native_type")) {
                throw context.runtime.newNotImplementedError("native_type method not overridden and no native_type set");
            }
            return (Typem.getInternalVariable("native_type");
        } else if (args.length == 1) {
            Type type = Util.findType(contextargs[0]);
            m.setInternalVariable("native_type"type);
            return type;
        } else {
            throw context.runtime.newArgumentError("incorrect arguments");
        }
    }
    @JRubyMethod(name = "to_native", module=true)
    public static IRubyObject to_native(ThreadContext contextIRubyObject selfIRubyObject valueIRubyObject ctx) {
        return value;
    }
    @JRubyMethod(name = "from_native", module=true)
    public static IRubyObject from_native(ThreadContext contextIRubyObject selfIRubyObject valueIRubyObject ctx) {
        return value;
    }
    @JRubyMethod(name = "reference_required?", module=true)
    public static IRubyObject reference_required_p(ThreadContext contextIRubyObject self) {
        Object ref = module(self).getInternalVariable("reference_required");
        return context.runtime.newBoolean(!(ref instanceof IRubyObject) || ((IRubyObjectref).isTrue());
    }
    @JRubyMethod(name = "reference_required", module=true, optional = 1)
    public static IRubyObject reference_required(ThreadContext contextIRubyObject selfIRubyObject[] args) {
        module(self).setInternalVariable("reference_required"context.runtime.newBoolean(args.length < 1 || args[0].isTrue()));
        return self;
    }
New to GrepCode? Check out our FAQ X