Sha256: b01dd707536a21d110e1a15f96455f2e1fa6d39d2fc7ee3428e62349d85c2b25

Contents?: true

Size: 1.11 KB

Versions: 13

Compression:

Stored size: 1.11 KB

Contents

module Nokogiri
  module LibXML # :nodoc:

    module XmlNodeSetMixin # :nodoc:
      def self.included(base)
        base.class_eval do

          layout(
            :nodeNr,    :int,
            :nodeMax,   :int,
            :nodeTab,   :pointer
            )

        end
      end

      def document
        p = self[:doc]
        p.null? ? nil : LibXML::XmlDocumentCast.new(p)
      end

      def nodeAt(index)
        self[:nodeTab].get_pointer(LibXML.pointer_offset(index))
      end

      def nodeTab
        self[:nodeTab].null? ? [] : self[:nodeTab].read_array_of_pointer(self[:nodeNr])
      end

      def nodeTab=(array)
        # TODO: do we need to check nodeMax and allocate more memory? probably.
        self[:nodeTab].write_array_of_pointer(array)
      end
    end


    class XmlNodeSet < FFI::ManagedStruct # :nodoc:
      include XmlNodeSetMixin

      def self.release ptr
        ns = XmlNodeSetCast.new(ptr)
        LibXML.xmlFree ns[:nodeTab] if ns[:nodeTab]
        LibXML.xmlFree ptr
      end
    end


    class XmlNodeSetCast < FFI::Struct # :nodoc:
      include XmlNodeSetMixin
    end

  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
nokogiri-1.4.7-java lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.7-x86-mingw32 lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.7-x86-mswin32-60 lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.7 lib/nokogiri/ffi/structs/xml_node_set.rb
search_biomodel-1.0.0 search_biomodel/ruby/1.8/gems/nokogiri-1.4.6/lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.6 lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.6-java lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.6-x86-mingw32 lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.6-x86-mswin32-60 lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.5-java lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.5 lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.5-x86-mswin32-60 lib/nokogiri/ffi/structs/xml_node_set.rb
nokogiri-1.4.5-x86-mingw32 lib/nokogiri/ffi/structs/xml_node_set.rb