### Home Classes Methods

### In Files

- ext/ffi_c/ffi.c

### Methods

- #from_native
- #native_type
- #to_native

### Files

- Makefile
- ChangeLog
- LICENSE
- README
- compile
- configure
- depcomp
- stamp-vti
- install-sh
- libtool-version
- mdate-sh
- missing

### Class/Module Index

Quicksearch

- FFI
- FFI::AbstractMemory
- FFI::AutoPointer
- FFI::AutoPointer::CallableReleaser
- FFI::AutoPointer::DefaultReleaser
- FFI::AutoPointer::Releaser
- FFI::ConstGenerator
- FFI::ConstGenerator::Constant
- FFI::DataConverter
- FFI::DynamicLibrary
- FFI::DynamicLibrary::Symbol
- FFI::Enum
- FFI::Enums
- FFI::Function
- FFI::FunctionType
- FFI::Generator
- FFI::Generator::Task
- FFI::IO
- FFI::LastError
- FFI::Library
- FFI::ManagedStruct
- FFI::MemoryPointer
- FFI::NativeType
- FFI::NotFoundError
- FFI::NullPointerError
- FFI::Platform
- FFI::PlatformError
- FFI::Pointer
- FFI::StrPtrConverter
- FFI::Struct
- FFI::Struct::InlineArray
- FFI::Struct::ManagedStructConverter
- FFI::StructByValue
- FFI::StructGenerator
- FFI::StructGenerator::Field
- FFI::StructLayout
- FFI::StructLayout::Enum
- FFI::StructLayout::InnerStruct
- FFI::StructLayout::Mapped
- FFI::StructLayoutBuilder
- FFI::Type
- FFI::Type::Builtin
- FFI::TypesGenerator
- FFI::Union
- FFI::VariadicInvoker

No matching classes.

# FFI::DataConverter

This module is used to extend somes classes and give then a common API.

Most of methods defined here must be overriden.

### Public Instance Methods

from_native(value, ctx) click to toggle source
@param value
@param ctx
@return [value]
Convert from a native type.

    static VALUE
    conv_from_native(VALUE self, VALUE value, VALUE ctx)
    {
        return value;
    }

native_type(*args) click to toggle source

Get native type. @overload native_type(type)

    @param [String, Symbol, Type] type
    @return [Type]
    Get native type from +type+.

@overload native_type

    @raise {NotImplementedError} This method must be overriden.

    static VALUE
    conv_native_type(int argc, VALUE* argv, VALUE self)
    {
        if (argc == 0) {
            if (!rb_ivar_defined(self, id_native_type_ivar)) {
                rb_raise(rb_eNotImpError, "native_type method not overridden and no native_type set");
            }

            return rb_ivar_get(self, id_native_type_ivar);

        } else if (argc == 1) {
            VALUE type = rbffi_Type_Find(argv[0]);

            rb_ivar_set(self, id_native_type_ivar, type);

            return type;

        } else {
            rb_raise(rb_eArgError, "incorrect arguments");
        }
    }

to_native(value, ctx) click to toggle source
@param value
@param ctx
@return [value]
Convert to a native type.

    static VALUE
    conv_to_native(VALUE self, VALUE value, VALUE ctx)
    {
        return value;
    }

[Validate]

Generated with the Darkfish Rdoc Generator 2.