class Rex::Java::Serialization::Model::Reference
Attributes
handle[RW]
@!attribute contents
@return [Fixnum] The stream handle being referenced
Public Class Methods
new(stream = nil)
click to toggle source
@param stream [Rex::Java::Serialization::Model::Stream] the stream where it belongs to
Calls superclass method
Rex::Java::Serialization::Model::Element::new
# File lib/rex/java/serialization/model/reference.rb, line 14 def initialize(stream = nil) super(stream) self.handle = 0 end
Public Instance Methods
decode(io)
click to toggle source
Deserializes a Rex::Java::Serialization::Model::Reference
@param io [IO] the io to read from @return [self] if deserialization succeeds @raise [Rex::Java::Serialization::DecodeError] if deserialization doesn't succeed
# File lib/rex/java/serialization/model/reference.rb, line 24 def decode(io) handle_raw = io.read(4) unless handle_raw && handle_raw.length == 4 raise Rex::Java::Serialization::DecodeError, 'Failed to unserialize Reference' end self.handle = handle_raw.unpack('N')[0] self end
encode()
click to toggle source
Serializes the Rex::Java::Serialization::Model::Reference
@return [String] if serialization succeeds @raise [Rex::Java::Serialization::EncodeError] if serialization doesn't succeed
# File lib/rex/java/serialization/model/reference.rb, line 39 def encode if handle < BASE_WIRE_HANDLE raise Rex::Java::Serialization::EncodeError, 'Failed to serialize Reference' end encoded = '' encoded << [handle].pack('N') encoded end
to_s()
click to toggle source
Creates a print-friendly string representation
@return [String]
# File lib/rex/java/serialization/model/reference.rb, line 53 def to_s "0x#{handle.to_s(16)}" end