def self.read_one(reader)
return nil unless reader.forward
object = Cpu.new
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?
empty = reader.empty_element?
reader.read
return object if empty
while reader.forward do
case reader.node_name
when 'architecture'
object.architecture = Reader.read_string(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_string(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
reader.read
return object
end