class Qpid::Proton::Message

A Message represents an addressable quantity of data.

Examples

Public Class Methods

new() click to toggle source

Creates a new Message instance.

# File lib/qpid_proton/message.rb, line 31
def initialize
  @impl = Cproton.pn_message
  ObjectSpace.define_finalizer(self, self.class.finalize!(@impl))
end

Public Instance Methods

address() click to toggle source

Returns the destination address.

# File lib/qpid_proton/message.rb, line 226
def address
  Cproton.pn_message_get_address(@impl)
end
address=(address) click to toggle source

Sets the destination address.

Options

  • address - the address

# File lib/qpid_proton/message.rb, line 220
def address=(address)
  Cproton.pn_message_set_address(@impl, address)
end
clear() click to toggle source

Clears the state of the Message. This allows a single instance of Message to be reused.

# File lib/qpid_proton/message.rb, line 52
def clear
  Cproton.pn_message_clear(@impl)
end
content() click to toggle source

Returns the message content.

# File lib/qpid_proton/message.rb, line 325
def content
  Cproton.pn_message_save(@impl, 1024)[1]
end
content=(content) click to toggle source

Sets the message content.

Options

  • content - the content

# File lib/qpid_proton/message.rb, line 319
def content=(content)
  Cproton.pn_message_load(@impl, content)
end
content_encoding() click to toggle source

Returns the content encoding type.

# File lib/qpid_proton/message.rb, line 341
def content_encoding
  Cproton.pn_message_get_content_encoding(@impl)
end
content_encoding=(encoding) click to toggle source

Sets the content encoding type.

Options

  • encoding - the content encoding

# File lib/qpid_proton/message.rb, line 335
def content_encoding=(encoding)
  Cproton.pn_message_set_content_encoding(@impl, encoding)
end
content_type() click to toggle source

Returns the content type

# File lib/qpid_proton/message.rb, line 309
def content_type
  Cproton.pn_message_get_content_type(@impl)
end
content_type=(content_type) click to toggle source

Sets the content type.

Options

# File lib/qpid_proton/message.rb, line 303
def content_type=(content_type)
  Cproton.pn_message_set_content_type(@impl, content_type)
end
correlation_id() click to toggle source

Returns the correlation id.

# File lib/qpid_proton/message.rb, line 274
def correlation_id
  Cproton.pn_message_get_correlation_id(@impl)
end
correlation_id=(id) click to toggle source

Sets the correlation id.

Options

  • id - the correlation id

# File lib/qpid_proton/message.rb, line 268
def correlation_id=(id)
  Cproton.pn_message_set_correlation_id(@impl, id)
end
creation_time() click to toggle source

Returns the creation time.

# File lib/qpid_proton/message.rb, line 377
def creation_time
  Cproton.pn_message_get_creation_time(@impl)
end
creation_time=(time) click to toggle source

Sets the creation time.

Options

  • time - the creation time

# File lib/qpid_proton/message.rb, line 369
def creation_time=(time)
  raise TypeError.new("invalid time: #{time}") if time.nil?
  raise ArgumentError.new("time cannot be negative") if time < 0
  Cproton.pn_message_set_creation_time(@impl, time)
end
delivery_count() click to toggle source

Returns the delivery count for the message.

This is the number of delivery attempts for the given message.

# File lib/qpid_proton/message.rb, line 171
def delivery_count
  Cproton.pn_message_get_delivery_count(@impl)
end
delivery_count=(count) click to toggle source

Sets the delivery count for the message.

See ::delivery_count for more details.

Options

  • count - the delivery count

# File lib/qpid_proton/message.rb, line 160
def delivery_count=(count)
  raise ArgumentError.new("invalid count: #{count}") if count.nil? || !([Float, Fixnum].include?(count.class))
  raise RangeError.new("count out of range: #{count}") if count < 0

  Cproton.pn_message_set_delivery_count(@impl, count.floor)
end
durable() click to toggle source

Returns the durable property.

The durable property indicates that the emessage should be held durably by any intermediaries taking responsibility for the message.

Examples

msg = Qpid::Proton::Message.new
msg.durable = true
# File lib/qpid_proton/message.rb, line 97
def durable
  Cproton.pn_message_is_durable(@impl)
end
durable=(state) click to toggle source

Sets the durable flag.

See ::durable for more details on message durability.

Options

  • state - the durable state

# File lib/qpid_proton/message.rb, line 82
def durable=(state)
  raise TypeError.new("state cannot be nil") if state.nil?
  Cproton.pn_message_set_durable(@impl, state)
end
errno() click to toggle source

Returns the most recent error number.

# File lib/qpid_proton/message.rb, line 58
def errno
  Cproton.pn_message_errno(@impl)
end
error() click to toggle source

Returns the most recent error message.

# File lib/qpid_proton/message.rb, line 64
def error
  Cproton.pn_message_error(@impl)
end
error?() click to toggle source

Returns whether there is currently an error reported.

# File lib/qpid_proton/message.rb, line 70
def error?
  !Cproton.pn_message_errno(@impl).zero?
end
expires() click to toggle source

Returns the expiration time.

# File lib/qpid_proton/message.rb, line 359
def expires
  Cproton.pn_message_get_expiry_time(@impl)
end
expires=(time) click to toggle source

Sets the expiration time.

Options

  • time - the expiry time

# File lib/qpid_proton/message.rb, line 351
def expires=(time)
  raise TypeError.new("invalid expiry time: #{time}") if time.nil?
  raise ArgumentError.new("expiry time cannot be negative: #{time}") if time < 0
  Cproton.pn_message_set_expiry_time(@impl, time)
end
first_acquirer=(state) click to toggle source

Sets whether this is the first time the message was acquired.

See ::first_acquirer? for more details.

Options

  • state - true if claiming the message

# File lib/qpid_proton/message.rb, line 147
def first_acquirer=(state)
  raise TypeError.new("invalid state: #{state}") if state.nil? || !([TrueClass, FalseClass].include?(state.class))
  Cproton.pn_message_set_first_acquirer(@impl, state)
end
first_acquirer?() click to toggle source

Returns whether this is the first acquirer.

# File lib/qpid_proton/message.rb, line 178
def first_acquirer?
  Cproton.pn_message_is_first_acquirer(@impl)
end
format() click to toggle source

Returns the message format

# File lib/qpid_proton/message.rb, line 293
def format
  Qpid::Proton::MessageFormat.by_value(Cproton.pn_message_get_format(@impl))
end
format=(format) click to toggle source

Sets the message format.

See MessageFormat for more details on formats.

Options

  • format - the format

# File lib/qpid_proton/message.rb, line 286
def format=(format)
  raise TypeError.new("invalid message format: #{format}") if (format.nil? || !format.kind_of?(Qpid::Proton::MessageFormat))
  Cproton.pn_message_set_format(@impl, format.value)
end
group_id() click to toggle source

Returns the group id.

# File lib/qpid_proton/message.rb, line 393
def group_id
  Cproton.pn_message_get_group_id(@impl)
end
group_id=(id) click to toggle source

Sets the group id.

Options

  • id - the group id

# File lib/qpid_proton/message.rb, line 387
def group_id=(id)
  Cproton.pn_message_set_group_id(@impl, id)
end
group_sequence() click to toggle source

Returns the group sequence number.

# File lib/qpid_proton/message.rb, line 410
def group_sequence
  Cproton.pn_message_get_group_sequence(@impl)
end
group_sequence=(seq) click to toggle source

Sets the group sequence number.

Options

  • seq - the sequence number

# File lib/qpid_proton/message.rb, line 403
def group_sequence=(seq)
  raise TypeError.new("invalid seq: #{seq}") if seq.nil?
  Cproton.pn_message_set_group_sequence(@impl, seq)
end
id() click to toggle source

Returns the message id.

# File lib/qpid_proton/message.rb, line 194
def id
  Cproton.pn_message_get_id(@impl)
end
id=(id) click to toggle source

Sets the message id.

Options

  • id = the id

# File lib/qpid_proton/message.rb, line 188
def id=(id)
  Cproton.pn_message_set_id(@impl, id)
end
priority() click to toggle source

Returns the priority.

# File lib/qpid_proton/message.rb, line 117
def priority
  Cproton.pn_message_get_priority(@impl)
end
priority=(priority) click to toggle source

Sets the priority.

NOTE: Priority values are limited to the range [0,255].

Options

  • priority - the priority value

# File lib/qpid_proton/message.rb, line 109
def priority=(priority)
  raise TypeError.new("invalid priority: #{priority}") if priority.nil? || !([Float, Fixnum].include?(priority.class))
  raise RangeError.new("priority out of range: #{priority}") if ((priority > 255) || (priority < 0))
  Cproton.pn_message_set_priority(@impl, priority.floor)
end
reply_to() click to toggle source

Returns the reply-to address

# File lib/qpid_proton/message.rb, line 258
def reply_to
  Cproton.pn_message_get_reply_to(@impl)
end
reply_to=(address) click to toggle source

Sets the reply-to address.

Options

  • address - the reply-to address

# File lib/qpid_proton/message.rb, line 252
def reply_to=(address)
  Cproton.pn_message_set_reply_to(@impl, address)
end
reply_to_group_id() click to toggle source

Returns the reply-to group id.

# File lib/qpid_proton/message.rb, line 426
def reply_to_group_id
  Cproton.pn_message_get_reply_to_group_id(@impl)
end
reply_to_group_id=(id) click to toggle source

Sets the reply-to group id.

Options

  • id - the id

# File lib/qpid_proton/message.rb, line 420
def reply_to_group_id=(id)
  Cproton.pn_message_set_reply_to_group_id(@impl, id)
end
subject() click to toggle source

Returns the subject

# File lib/qpid_proton/message.rb, line 242
def subject
  Cproton.pn_message_get_subject(@impl)
end
subject=(subject) click to toggle source

Sets the subject.

Options

  • subject - the subject

# File lib/qpid_proton/message.rb, line 236
def subject=(subject)
  Cproton.pn_message_set_subject(@impl, subject)
end
ttl() click to toggle source

Returns the time-to-live, in milliseconds.

# File lib/qpid_proton/message.rb, line 135
def ttl
  Cproton.pn_message_get_ttl(@impl)
end
ttl=(time) click to toggle source

Sets the time-to-live for the message.

Options

  • time - the time in milliseconds

# File lib/qpid_proton/message.rb, line 127
def ttl=(time)
  raise TypeError.new("invalid ttl: #{time}") if time.nil? || !([Float, Fixnum].include?(time.class))
  raise RangeError.new("time out of range: #{time}") if ((time < 0))
  Cproton.pn_message_set_ttl(@impl, time.floor)
end
user_id() click to toggle source

Returns the user id.

# File lib/qpid_proton/message.rb, line 210
def user_id
  Cproton.pn_message_get_user_id(@impl)
end
user_id=(id) click to toggle source

Sets the user id.

Options

  • id - the user id

# File lib/qpid_proton/message.rb, line 204
def user_id=(id)
  Cproton.pn_message_set_user_id(@impl, id)
end