class OvirtSDK4::CpuReader

Public Class Methods

read_many(reader) click to toggle source
# File lib/ovirtsdk4/readers.rb, line 2931
def self.read_many(reader)
  # Do nothing if there aren't more tags:
  list = List.new
  return list unless reader.forward
  
  # Process the attributes:
  list.href = reader.get_attribute('href')
  
  # Discard the start tag:
  empty = reader.empty_element?
  reader.read
  return list if empty
  
  # Process the inner elements:
  while reader.forward do
    list << read_one(reader)
  end
  
  # Discard the end tag:
  reader.read
  
  return list
end
read_one(reader) click to toggle source
# File lib/ovirtsdk4/readers.rb, line 2871
def self.read_one(reader)
  # Do nothing if there aren't more tags:
  return nil unless reader.forward
  
  # Create the object:
  object = Cpu.new
  
  # Process the attributes:
  object.href = reader.get_attribute('href')
  value = reader.get_attribute('architecture')
  object.architecture = value if not value.nil?
  value = reader.get_attribute('level')
  object.level = value if not value.nil?
  value = reader.get_attribute('mode')
  object.mode = value if not value.nil?
  value = reader.get_attribute('name')
  object.name = value if not value.nil?
  value = reader.get_attribute('speed')
  object.speed = value if not value.nil?
  value = reader.get_attribute('type')
  object.type = value if not value.nil?
  
  # Discard the start tag:
  empty = reader.empty_element?
  reader.read
  return object if empty
  
  # Process the inner elements:
  while reader.forward do
    case reader.node_name
    when 'architecture'
      object.architecture = Reader.read_enum(Architecture, reader)
    when 'cores'
      object.cores = CoreReader.read_many(reader)
    when 'cpu_tune'
      object.cpu_tune = CpuTuneReader.read_one(reader)
    when 'level'
      object.level = Reader.read_integer(reader)
    when 'mode'
      object.mode = Reader.read_enum(CpuMode, reader)
    when 'name'
      object.name = Reader.read_string(reader)
    when 'speed'
      object.speed = Reader.read_decimal(reader)
    when 'topology'
      object.topology = CpuTopologyReader.read_one(reader)
    when 'type'
      object.type = Reader.read_string(reader)
    else
      reader.next_element
    end
  end
  
  # Discard the end tag:
  reader.read
  
  return object
end