class Qpid::Messaging::Address
Address represents an address to which messages can be sent or from which they can be received.
The Address
String¶ ↑
An Address
can be described using the following pattern:
<address> [ / <subject> ] ; [ { <key> : <value> , … } ]
where address is a simple name and subject is a subject or subject pattern.
Options¶ ↑
The options, enclosed in curly braces, are key:value pairs delimited by a comma. The values can be nested maps also enclosed in curly braces. Or they can be lists of values, where they are contained within square brackets but still comma delimited, such as:
[value1,value2,value3]
The following are the list of supported options:
- create
-
Indicates if the address should be created; values are always, never, sender or reciever.
- assert
-
Indicates whether or not to assert any specified node properties; values are always, never, sender or receiver.
- delete
-
Indicates whether or not to delete the addressed node when a sender or receiver is cancelled; values are always, never, sender or receiver.
- node
-
A nested map describing properties for the addressed node. Properties are type (topic or queue), durable (a boolean), x-declare (a nested map of amqp 0.10-specific options) and x-bindings (nested list which specifies a queue, exchange or a binding key and arguments).
- link
-
A nested map through which properties of the link can be specified; properties are durable, reliability, x-declare, x-subscribe and x-bindings.
- mode
-
(*For receivers only*) indicates whether the receiver should consume or browse messages; values are consume (the default) and browse.
Public Class Methods
Creates a new Address
from an address string.
Attributes¶ ↑
-
address
- the address string
Examples¶ ↑
# create a new address for a queue named "my-queue" that will # be created if it doesn't already exist addr = Qpid::Messaging::Address.new "my-queue;{create:always}"
# File lib/qpid_messaging/address.rb, line 88 def initialize(address, address_impl = nil) @address_impl = address_impl || Cqpid::Address.new(address) end
Public Instance Methods
Returns the type for the Address
.
# File lib/qpid_messaging/address.rb, line 143 def address_type; @address_impl.getType; end
Sets the type for the Address
.
The type of the address determines how Sender
and
Receiver
objects are constructed for it. It also affects how a
reply-to address is encoded.
If no type is specified then it will be determined by querying the broker. Explicitly setting the type prevents this.
Values are either queue or topic.
Options¶ ↑
-
type
- the address type
Examples¶ ↑
# creates an queue address addr = Qpid::Messaging::Address.new "my-queue;{create:always}" addr.address_type = "queue"
# File lib/qpid_messaging/address.rb, line 166 def address_type=(type); @address_impl.setType(type); end
Sets the name for the Address
.
Examples¶ ↑
# create a new address with the name "my-queue" addr = Qpid::Messaging::Address.new "my-queue/my-subject;{create:always}" # changes the name to "my-new-queue" addr.name = "my-new-queue"
# File lib/qpid_messaging/address.rb, line 116 def name=(name); @address_impl.setName name; end
Returns the options.
# File lib/qpid_messaging/address.rb, line 169 def options; @address_impl.getOptions; end
Sets the options for the address.
NOTE: See the class documentation for more details on options.
Examples¶ ↑
addr.options = :create => :always addr.options = :create => :always, :delete => :always
# File lib/qpid_messaging/address.rb, line 180 def options=(options = {}); @address_impl.setOptions(convert_options(options)); end
Sets the subject for the Address
.
Examples¶ ↑
# creates an address with the subject "example" addr = Qpid::Messaging::Address.new "my-queue/example;{create:always}" # changes the subject to "test" addr.subject = "test"
# File lib/qpid_messaging/address.rb, line 136 def subject=(subject); @address_impl.setSubject(subject); end
Private Instance Methods
# File lib/qpid_messaging/address.rb, line 188 def convert_options(options) result = {} options.each_pair {|key, value| result[key.to_s] = value.to_s} return result end