Class: Synapse::Serialization::SerializedMessage

Inherits:
Object
  • Object
show all
Includes:
SerializationAware
Defined in:
lib/synapse/serialization/message/serialized_message.rb

Overview

Serialized representation of a message

Direct Known Subclasses

SerializedEventMessage

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id, metadata, payload) ⇒ undefined

Parameters:



20
21
22
23
24
# File 'lib/synapse/serialization/message/serialized_message.rb', line 20

def initialize(id, , payload)
  @id = id
   = 
  @serialized_payload = payload
end

Instance Attribute Details

#idString (readonly)

Returns:

  • (String)


8
9
10
# File 'lib/synapse/serialization/message/serialized_message.rb', line 8

def id
  @id
end

#serialized_metadataLazyObject (readonly)

Returns:



11
12
13
# File 'lib/synapse/serialization/message/serialized_message.rb', line 11

def 
  
end

#serialized_payloadLazyObject (readonly)

Returns:



14
15
16
# File 'lib/synapse/serialization/message/serialized_message.rb', line 14

def serialized_payload
  @serialized_payload
end

Class Method Details

.build {|SerializedMessageBuilder| ... } ⇒ SerializedMessage

Yields a message builder that can be used to produce a message



98
99
100
# File 'lib/synapse/serialization/message/serialized_message.rb', line 98

def self.build(&block)
  builder.build(&block)
end

.builderClass

Returns the type of builder that can be used to build this type of message

Returns:

  • (Class)


89
90
91
# File 'lib/synapse/serialization/message/serialized_message.rb', line 89

def self.builder
  SerializedMessageBuilder
end

Instance Method Details

#and_metadata(additional_metadata) ⇒ SerializedMessage

Returns a copy of this message with the given metadata merged in

Parameters:

  • additional_metadata (Hash)

Returns:

See Also:



46
47
48
49
50
51
52
53
54
# File 'lib/synapse/serialization/message/serialized_message.rb', line 46

def ()
  if .empty?
    return self
  end

  self.class.build do |builder|
    build_duplicate builder, .merge()
  end
end

#metadataHash

Returns The deserialized metadata for this message.

Returns:

  • (Hash)

    The deserialized metadata for this message



27
28
29
# File 'lib/synapse/serialization/message/serialized_message.rb', line 27

def 
  .deserialized
end

#payloadObject

Returns The deserialized payload for this message.

Returns:

  • (Object)

    The deserialized payload for this message



32
33
34
# File 'lib/synapse/serialization/message/serialized_message.rb', line 32

def payload
  @serialized_payload.deserialized
end

#payload_typeClass

Returns The type of payload for this message.

Returns:

  • (Class)

    The type of payload for this message



37
38
39
# File 'lib/synapse/serialization/message/serialized_message.rb', line 37

def payload_type
  @serialized_payload.type
end

#serialize_metadata(serializer, expected_type) ⇒ SerializedObject

Parameters:

Returns:

See Also:



75
76
77
# File 'lib/synapse/serialization/message/serialized_message.rb', line 75

def (serializer, expected_type)
  serialize , serializer, expected_type
end

#serialize_payload(serializer, expected_type) ⇒ SerializedObject

Parameters:

Returns:

See Also:



83
84
85
# File 'lib/synapse/serialization/message/serialized_message.rb', line 83

def serialize_payload(serializer, expected_type)
  serialize @serialized_payload, serializer, expected_type
end

#with_metadata(replacement_metadata) ⇒ SerializedMessage

Returns a copy of this message with the metadata replaced with the given metadata

Parameters:

  • replacement_metadata (Hash)

Returns:

See Also:



61
62
63
64
65
66
67
68
69
# File 'lib/synapse/serialization/message/serialized_message.rb', line 61

def ()
  if .deserialized == 
    return self
  end

  self.class.build do |builder|
    build_duplicate builder, 
  end
end