Class: ThinpXML::EmitterDetail::ThinpEmitter

Inherits:
Object
  • Object
show all
Defined in:
lib/thinp_xml/thinp/emit.rb

Instance Method Summary collapse

Constructor Details

#initialize(out) ⇒ ThinpEmitter

Returns a new instance of ThinpEmitter.



9
10
11
# File 'lib/thinp_xml/thinp/emit.rb', line 9

def initialize(out)
  @e = ThinpXML::Base::Emitter.new(out)
end

Instance Method Details

#emit_device(dev, &block) ⇒ Object



17
18
19
# File 'lib/thinp_xml/thinp/emit.rb', line 17

def emit_device(dev, &block)
  @e.emit_tag(dev, 'device', :dev_id, :mapped_blocks, :transaction, :creation_time, :snap_time, &block)
end

#emit_mapping(m) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/thinp_xml/thinp/emit.rb', line 21

def emit_mapping(m)
  if m.length == 1
    @e.emit_line("<single_mapping origin_block=\"#{m.origin_begin}\" data_block=\"#{m.data_begin}\" time=\"#{m.time}\"/>")
  else
    @e.emit_tag(m, 'range_mapping', :origin_begin, :data_begin, :length, :time)
  end
end

#emit_superblock(sb, &block) ⇒ Object



13
14
15
# File 'lib/thinp_xml/thinp/emit.rb', line 13

def emit_superblock(sb, &block)
  @e.emit_tag(sb, 'superblock', :uuid, :time, :transaction, :data_block_size, :nr_data_blocks, &block)
end