class Lightstreamer::SendMessageOutcomeMessage
Helper class used by {Session} in order to parse incoming overflow send message outcome messages.
@private
Attributes
error[RW]
If an error occurred processing the message then it will be set here.
@return [LightstreamerError, nil]
numbers[RW]
The message number(s) this message outcome is for. There will always be exactly one entry in this array except in the case where {#error} is a {Errors::MessagesSkippedByTimeoutError} in which case there may be more than one entry if multiple messages were skipped.
@return [Array<Fixnum>]
sequence[RW]
The name of the sequence this message outcome is for.
@return [String]
Public Class Methods
parse(line)
click to toggle source
Attempts to parses the specified line as a message outcome message and returns an instance of {SendMessageOutcomeMessage} on success, or `nil` on failure.
# File lib/lightstreamer/messages/send_message_outcome_message.rb, line 26 def parse(line) match = line.match Regexp.new '^MSG,([A-Za-z0-9_]+),(\d*),(?:DONE|ERR,(\d*),(.*))$' return unless match message = new message.sequence = match.captures[0] message.numbers = [match.captures[1].to_i] handle_error_outcome message, match.captures if match.captures.compact.size == 4 message end
Private Class Methods
handle_error_outcome(message, captures)
click to toggle source
# File lib/lightstreamer/messages/send_message_outcome_message.rb, line 41 def handle_error_outcome(message, captures) message.error = LightstreamerError.build captures[3], captures[2] return unless captures[2].to_i == 39 last_number = message.numbers[0] first_number = last_number - captures[3].to_i + 1 message.numbers = Array(first_number..last_number) end