FFI

Copyright (C) 2008-2010 Wayne Meissner

All rights reserved.

This file is part of ruby-ffi.

This code is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.

You should have received a copy of the GNU Lesser General Public License version 3 along with this work. If not, see <www.gnu.org/licenses/>.


Copyright (C) 2008-2010 Wayne Meissner Copyright (C) 2008 Luc Heinrich <luc@honk-honk.com>

All rights reserved.

This file is part of ruby-ffi.

This code is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.

You should have received a copy of the GNU Lesser General Public License version 3 along with this work. If not, see <www.gnu.org/licenses/>.


Copyright (C) 2008-2010 Wayne Meissner All rights reserved.

This file is part of ruby-ffi.

This code is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.

You should have received a copy of the GNU Lesser General Public License version 3 along with this work. If not, see <www.gnu.org/licenses/>.


Copyright (C) 2008-2010 Wayne Meissner

All rights reserved.

This file is part of ruby-ffi.

This code is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.

You should have received a copy of the GNU Lesser General Public License version 3 along with this work. If not, see <www.gnu.org/licenses/>.


Copyright (C) 2008-2010 Wayne Meissner Copyright (C) 2008 Mike Dalessio

All rights reserved.

This file is part of ruby-ffi.

This code is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.

You should have received a copy of the GNU Lesser General Public License version 3 along with this work. If not, see <www.gnu.org/licenses/>.


Copyright (C) 2009, 2010 Wayne Meissner Copyright (C) 2009 Luc Heinrich

All rights reserved.

This file is part of ruby-ffi.

This code is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.

You should have received a copy of the GNU Lesser General Public License version 3 along with this work. If not, see <www.gnu.org/licenses/>.


Copyright (C) 2008, 2009 Wayne Meissner

All rights reserved.

This file is part of ruby-ffi.

This code is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.

You should have received a copy of the GNU Lesser General Public License version 3 along with this work. If not, see <www.gnu.org/licenses/>.


Copyright (C) 2008, 2009 Wayne Meissner Copyright (C) 2009 Luc Heinrich All rights reserved.

This file is part of ruby-ffi.

This code is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.

You should have received a copy of the GNU Lesser General Public License version 3 along with this work. If not, see <www.gnu.org/licenses/>.

Constants

CURRENT_PROCESS

Public Class Methods

add_typedef(old, add) click to toggle source
# File lib/ffi/types.rb, line 26
def self.add_typedef(old, add)
  typedef old, add
end
errno() click to toggle source
# File lib/ffi/errno.rb, line 22
def self.errno
  FFI::LastError.error
end
errno=(error) click to toggle source
# File lib/ffi/errno.rb, line 25
def self.errno=(error)
  FFI::LastError.error = error
end
find_type(name, type_map = nil) click to toggle source
# File lib/ffi/types.rb, line 31
def self.find_type(name, type_map = nil)
  if name.is_a?(Type)
    name

  elsif type_map && type_map.has_key?(name)
    type_map[name]

  elsif TypeDefs.has_key?(name)
    TypeDefs[name]

  elsif name.is_a?(DataConverter)
    (type_map || TypeDefs)[name] = Type::Mapped.new(name)
  
  else
    raise TypeError, "unable to resolve type '#{name}'"
  end
end
map_library_name(lib) click to toggle source
# File lib/ffi/library.rb, line 24
def self.map_library_name(lib)
  # Mangle the library name to reflect the native library naming conventions
  lib = lib.to_s unless lib.kind_of?(String)
  lib = Library::LIBC if lib == 'c'

  if lib && File.basename(lib) == lib
    lib = Platform::LIBPREFIX + lib unless lib =~ /^#{Platform::LIBPREFIX}/
    r = Platform::IS_LINUX ? "\\.so($|\\.[1234567890]+)" : "\\.#{Platform::LIBSUFFIX}$"
    lib += ".#{Platform::LIBSUFFIX}" unless lib =~ /#{r}/
  end

  lib
end
type_size(type) click to toggle source
# File lib/ffi/types.rb, line 136
def self.type_size(type)
  find_type(type).size
end
typedef(old, add) click to toggle source
# File lib/ffi/types.rb, line 22
def self.typedef(old, add)
  TypeDefs[add] = self.find_type(old)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.