Class: Ganglia::XDRPacket

Inherits:
Object
  • Object
show all
Defined in:
lib/gmetric.rb

Instance Method Summary collapse

Constructor Details

#initializeXDRPacket

Returns a new instance of XDRPacket.



90
91
92
# File 'lib/gmetric.rb', line 90

def initialize
  @data = StringIO.new
end

Instance Method Details

#dataObject



110
111
112
# File 'lib/gmetric.rb', line 110

def data
  @data.string
end

#pack_string(data) ⇒ Object



100
101
102
103
104
105
106
107
108
# File 'lib/gmetric.rb', line 100

def pack_string(data)
  len = data.size
  pack_uint(len)

  # pad the string
  len = ((len+3) / 4) * 4
  data = data + ("\0" * (len - data.size))
  @data << data
end

#pack_uint(data) ⇒ Object Also known as: pack_int



94
95
96
97
# File 'lib/gmetric.rb', line 94

def pack_uint(data)
  # big endian unsigned long
  @data << [data].pack("N")
end