Class: Rex::Java::Serialization::Model::Utf
- Defined in:
- lib/rex/java/serialization/model/utf.rb
Overview
This class provides a Utf string representation
Direct Known Subclasses
Instance Attribute Summary collapse
-
#contents ⇒ String
The contents of the string.
-
#length ⇒ Integer
The length of the string.
Attributes inherited from Element
Instance Method Summary collapse
-
#decode(io) ⇒ self
Deserializes a Rex::Java::Serialization::Model::Utf.
-
#encode ⇒ String
Serializes the Rex::Java::Serialization::Model::Utf.
-
#initialize(stream = nil, contents = '') ⇒ Utf
constructor
A new instance of Utf.
-
#to_s ⇒ String
Creates a print-friendly string representation.
Methods inherited from Element
Constructor Details
#initialize(stream = nil, contents = '') ⇒ Utf
Returns a new instance of Utf.
19 20 21 22 23 |
# File 'lib/rex/java/serialization/model/utf.rb', line 19 def initialize(stream = nil, contents = '') super(stream) self.contents = contents self.length = contents.length end |
Instance Attribute Details
#contents ⇒ String
Returns the contents of the string.
15 16 17 |
# File 'lib/rex/java/serialization/model/utf.rb', line 15 def contents @contents end |
#length ⇒ Integer
Returns the length of the string.
12 13 14 |
# File 'lib/rex/java/serialization/model/utf.rb', line 12 def length @length end |
Instance Method Details
#decode(io) ⇒ self
Deserializes a Rex::Java::Serialization::Model::Utf
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/rex/java/serialization/model/utf.rb', line 30 def decode(io) raw_length = io.read(2) if raw_length.nil? || raw_length.length != 2 raise Rex::Java::Serialization::DecodeError, 'Failed to unserialize Utf' end self.length = raw_length.unpack('n')[0] if length == 0 self.contents = '' else self.contents = io.read(length) if contents.nil? || contents.length != length raise Rex::Java::Serialization::DecodeError, 'Failed to unserialize Utf' end end self end |
#encode ⇒ String
Serializes the Rex::Java::Serialization::Model::Utf
52 53 54 55 56 57 |
# File 'lib/rex/java/serialization/model/utf.rb', line 52 def encode encoded = [length].pack('n') encoded << contents encoded end |
#to_s ⇒ String
Creates a print-friendly string representation
62 63 64 |
# File 'lib/rex/java/serialization/model/utf.rb', line 62 def to_s contents end |