Author: rhs
Date: Wed Aug 8 19:26:18 2007
New Revision: 564077
URL: http://svn.apache.org/viewvc?view=rev&rev=564077
Log:
updated the amqp.0-10-preview.xml to reflect the latest votes, and added
support for execution results
Added:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Future.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Result.java
Modified:
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/impl/ClientSessionDelegate.java
incubator/qpid/trunk/qpid/java/common/generate
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Channel.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Session.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SessionDelegate.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyBroker.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyClient.java
incubator/qpid/trunk/qpid/specs/amqp.0-10-preview.xml
Modified:
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/impl/ClientSessionDelegate.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/impl/ClientSessionDelegate.java?view=diff&rev=564077&r1=564076&r2=564077
==============================================================================
---
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/impl/ClientSessionDelegate.java
(original)
+++
incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/impl/ClientSessionDelegate.java
Wed Aug 8 19:26:18 2007
@@ -1,7 +1,6 @@
package org.apache.qpidity.impl;
import org.apache.qpidity.CommonSessionDelegate;
-import org.apache.qpidity.ExchangeQueryOk;
import org.apache.qpidity.client.Session;
@@ -42,11 +41,5 @@
MessagePartListener l = context.messagListeners.get(destination);
l.endData();
}*/
-
-
- // --------------------------------------------
- // Exchange related functionality
- // --------------------------------------------
- public void exchangeQueryOk(Session session, ExchangeQueryOk struct) {}
}
Modified: incubator/qpid/trunk/qpid/java/common/generate
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/generate?view=diff&rev=564077&r1=564076&r2=564077
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/generate (original)
+++ incubator/qpid/trunk/qpid/java/common/generate Wed Aug 8 19:26:18 2007
@@ -103,7 +103,8 @@
class Struct:
- def __init__(self, name, base, type, track, content):
+ def __init__(self, node, name, base, type, track, content):
+ self.node = node
self.name = name
self.base = base
self.type = type
@@ -111,6 +112,16 @@
self.content = content
self.fields = []
+ def result(self):
+ r = self.node["result"]
+ if not r: return
+ name = r["@domain"]
+ if not name:
+ name = self.name + "Result"
+ else:
+ name = camel(0, name)
+ return name
+
def field(self, type, name):
self.fields.append((type, name))
@@ -265,6 +276,7 @@
name = camel(0, m.parent["@name"], m["@name"])
type = int(m.parent["@index"])*256 + int(m["@index"])
self.structs.append((name, "Method", type, m))
+ self.descend(m)
def do_domain(self, d):
s = d["struct"]
@@ -276,6 +288,15 @@
else:
type = int(st)
self.structs.append((name, "Struct", type, s))
+ self.descend(d)
+
+ def do_result(self, r):
+ s = r["struct"]
+ if s:
+ name = camel(0, r.parent.parent["@name"], r.parent["@name"], "Result")
+ type = int(r.parent.parent["@index"]) * 256 + int(s["@type"])
+ self.structs.append((name, "Result", type, s))
+ self.descend(r)
v = Visitor()
spec.dispatch(v)
@@ -284,7 +305,7 @@
opts.line("public enum Option {")
structs = []
for name, base, typecode, m in v.structs:
- struct = Struct(name, base, typecode,
+ struct = Struct(m, name, base, typecode,
TRACKS.get(m.parent["@name"], "Frame.L4"),
m["@content"] == "1")
for f in m.query["field", lambda f: FIELDS.get(f["@name"], True)]:
@@ -297,7 +318,7 @@
OPTIONS[name] = opt_name
opts.line(" %s," % opt_name)
structs.append(struct)
-opts.line(" %s," % "NO_OPTION")
+opts.line(" %s," % "NO_OPTION")
opts.line("}")
opts.write()
@@ -333,13 +354,22 @@
inv.line("public abstract class Invoker {")
inv.line()
inv.line(" protected abstract void invoke(Method method);")
-inv.line(" protected abstract void invoke(Method method, Handler<Struct>
handler);")
+inv.line(" protected abstract <T> Future<T> invoke(Method method, Class<T>
resultClass);")
inv.line()
for s in structs:
if s.base != "Method": continue
dname = dromedary(s.name)
- inv.line(" public void %s(%s) {" % (dname, s.parameters()))
- inv.line(" invoke(new %s(%s));" % (s.name, s.arguments()))
+ result = s.result()
+ if result:
+ result_type = "Future<%s>" % result
+ else:
+ result_type = "void"
+ inv.line(" public %s %s(%s) {" % (result_type, dname, s.parameters()))
+ if result:
+ inv.line(" return invoke(new %s(%s), %s.class);" %
+ (s.name, s.arguments(), result))
+ else:
+ inv.line(" invoke(new %s(%s));" % (s.name, s.arguments()))
inv.line(" }")
inv.line("}")
inv.write()
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Channel.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Channel.java?view=diff&rev=564077&r1=564076&r2=564077
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Channel.java
(original)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Channel.java
Wed Aug 8 19:26:18 2007
@@ -205,7 +205,7 @@
method(m);
}
- protected void invoke(Method m, Handler<Struct> handler)
+ protected <T> Future<T> invoke(Method m, Class<T> cls)
{
throw new UnsupportedOperationException();
}
Added:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Future.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Future.java?view=auto&rev=564077
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Future.java
(added)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Future.java
Wed Aug 8 19:26:18 2007
@@ -0,0 +1,37 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpidity;
+
+
+/**
+ * Future
+ *
+ * @author Rafael H. Schloming
+ */
+
+public interface Future<T>
+{
+
+ T get();
+
+ boolean isDone();
+
+}
Added:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Result.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Result.java?view=auto&rev=564077
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Result.java
(added)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Result.java
Wed Aug 8 19:26:18 2007
@@ -0,0 +1,30 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpidity;
+
+
+/**
+ * Result
+ *
+ * @author Rafael H. Schloming
+ */
+
+public abstract class Result extends Struct {}
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Session.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Session.java?view=diff&rev=564077&r1=564076&r2=564077
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Session.java
(original)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Session.java
Wed Aug 8 19:26:18 2007
@@ -23,6 +23,8 @@
import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
+
+
/**
* Session
*
@@ -217,9 +219,86 @@
}
}
- protected void invoke(Method m, Handler<Struct> handler)
+ private Map<Long,ResultFuture<?>> results =
+ new HashMap<Long,ResultFuture<?>>();
+
+ void result(long command, Struct result)
+ {
+ ResultFuture<?> future;
+ synchronized (results)
+ {
+ future = results.remove(command);
+ }
+ future.set(result);
+ }
+
+ protected <T> Future<T> invoke(Method m, Class<T> klass)
+ {
+ long command = commandsOut;
+ ResultFuture<T> future = new ResultFuture<T>(klass);
+ synchronized (results)
+ {
+ results.put(command, future);
+ }
+ invoke(m);
+ return future;
+ }
+
+ private class ResultFuture<T> implements Future<T>
{
- throw new UnsupportedOperationException();
+
+ private final Class<T> klass;
+ private T result;
+
+ private ResultFuture(Class<T> klass)
+ {
+ this.klass = klass;
+ }
+
+ private void set(Struct result)
+ {
+ synchronized (this)
+ {
+ this.result = klass.cast(result);
+ notifyAll();
+ }
+ }
+
+ public T get(long timeout, int nanos)
+ {
+ synchronized (this)
+ {
+ while (!isDone())
+ {
+ try
+ {
+ wait(timeout, nanos);
+ }
+ catch (InterruptedException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ return result;
+ }
+
+ public T get(long timeout)
+ {
+ return get(timeout, 0);
+ }
+
+ public T get()
+ {
+ return get(0);
+ }
+
+ public boolean isDone()
+ {
+ return result != null;
+ }
+
}
}
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SessionDelegate.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SessionDelegate.java?view=diff&rev=564077&r1=564076&r2=564077
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SessionDelegate.java
(original)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SessionDelegate.java
Wed Aug 8 19:26:18 2007
@@ -34,6 +34,11 @@
public abstract void data(Session ssn, Frame frame);
+ @Override public void executionResult(Session ssn, ExecutionResult result)
+ {
+ ssn.result(result.getCommandId(), result.getData());
+ }
+
@Override public void executionComplete(Session ssn, ExecutionComplete
excmp)
{
RangeSet ranges = excmp.getRangedExecutionSet();
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyBroker.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyBroker.java?view=diff&rev=564077&r1=564076&r2=564077
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyBroker.java
(original)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyBroker.java
Wed Aug 8 19:26:18 2007
@@ -60,6 +60,12 @@
System.out.println("declared queue: " + qd.getQueue());
}
+ @Override public void queueQuery(Session ssn, QueueQuery qq)
+ {
+ QueueQueryResult result = new QueueQueryResult().queue(qq.getQueue());
+ ssn.executionResult(qq.getId(), result);
+ }
+
@Override public void messageTransfer(Session ssn, MessageTransfer xfr)
{
this.xfr = xfr;
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyClient.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyClient.java?view=diff&rev=564077&r1=564076&r2=564077
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyClient.java
(original)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ToyClient.java
Wed Aug 8 19:26:18 2007
@@ -85,6 +85,9 @@
ssn.data("this should be rejected");
ssn.endData();
ssn.sync();
+
+ Future<QueueQueryResult> future = ssn.queueQuery("asdf");
+ System.out.println(future.get().getQueue());
}
}
Modified: incubator/qpid/trunk/qpid/specs/amqp.0-10-preview.xml
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/specs/amqp.0-10-preview.xml?view=diff&rev=564077&r1=564076&r2=564077
==============================================================================
--- incubator/qpid/trunk/qpid/specs/amqp.0-10-preview.xml (original)
+++ incubator/qpid/trunk/qpid/specs/amqp.0-10-preview.xml Wed Aug 8 19:26:18
2007
@@ -1278,11 +1278,10 @@
arguments.
</doc>
<struct size="octet" pack="octet">
- <field name="sync" domain="bit"
- label="request notification of completion for a specific command">
+ <field name="sync" domain="bit" label="request notification of
completion for a specific command">
<doc>
- Indicates that an execution.complete should be sent immediately
after processing the
- command.
+ Indicates that the peer sending the request wants to be notified
when this command is
+ completed.
</doc>
</field>
</struct>
@@ -1343,7 +1342,7 @@
<chassis name="server" implement="MUST" />
<chassis name="client" implement="MUST" />
- <!-- - Method: connextion.start - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.start - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="start" synchronous="1" index="10" label="start connection
negotiation">
<doc>
@@ -1449,7 +1448,7 @@
</field>
</method>
- <!-- - Method: connextion.start-ok - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.start-ok - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="start-ok" synchronous="1" index="11"
label="select security mechanism and locale">
@@ -1517,7 +1516,7 @@
</field>
</method>
- <!-- - Method: connextion.secure - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.secure - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="secure" synchronous="1" index="20" label="security mechanism
challenge">
<doc>
@@ -1537,7 +1536,7 @@
</field>
</method>
- <!-- - Method: connextion.secure-ok - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.secure-ok - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="secure-ok" synchronous="1" index="21" label="security
mechanism response">
<doc>
@@ -1556,7 +1555,7 @@
</field>
</method>
- <!-- - Method: connextion.tune - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.tune - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="tune" synchronous="1" index="30" label="propose connection
tuning parameters">
<doc>
@@ -1618,7 +1617,7 @@
</field>
</method>
- <!-- - Method: connextion.tune-ok - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.tune-ok - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="tune-ok" synchronous="1" index="31"
label="negotiate connection tuning parameters">
@@ -1679,7 +1678,7 @@
</field>
</method>
- <!-- - Method: connextion.open - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.open - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="open" synchronous="1" index="40" label="open connection to
virtual host">
<doc>
@@ -1744,7 +1743,7 @@
</field>
</method>
- <!-- - Method: connextion.open-ok - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.open-ok - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="open-ok" synchronous="1" index="41" label="signal that
connection is ready">
<doc>
@@ -1756,7 +1755,7 @@
<field name="known-hosts" domain="known-hosts" />
</method>
- <!-- - Method: connextion.redirect - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.redirect - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="redirect" synchronous="1" index="42" label="redirects client
to other server">
<doc>
@@ -1786,7 +1785,7 @@
<field name="known-hosts" domain="known-hosts" />
</method>
- <!-- - Method: connextion.close - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.close - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="close" synchronous="1" index="50" label="request a
connection close">
<doc>
@@ -1827,7 +1826,7 @@
</field>
</method>
- <!-- - Method: connextion.close-ok - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+ <!-- - Method: connection.close-ok - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="close-ok" synchronous="1" index="51" label="confirm a
connection close">
<doc>
@@ -2655,14 +2654,11 @@
<method name="query" synchronous="1" index="30" label="request information
about an exchange">
<doc>
- This method is used to request information on a particular exchange.
That information is
- conveyed by an query-ok method.
+ This method is used to request information on a particular exchange.
</doc>
<chassis name="server" implement="MUST" />
- <response name="query-ok" />
-
<field name="ticket" domain="access-ticket">
<rule name="validity" on-failure="access-refused">
<doc>
@@ -2678,43 +2674,41 @@
the default exchange is implied.
</doc>
</field>
- </method>
-
- <!-- - Method: exchange.query-ok - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
-
- <method name="query-ok" synchronous="1" index="31" label="return exchange
information">
- <doc>
- This method is used in response to a query request and conveys
information on a particular
- exchange.
- </doc>
-
- <chassis name="client" implement="MUST" />
-
- <field name="type" domain="shortstr" label="indicate the exchange type">
- <doc>
- The type of the exchange. Will be empty if the exchange is not
found.
- </doc>
- </field>
-
- <field name="durable" domain="bit" label="indicate the durability">
- <doc>
- The durability of the exchange, i.e. if set the exchange is
durable. Will not be set if
- the exchange is not found.
- </doc>
- </field>
- <field name="not-found" domain="bit" label="indicate an unknown
exchange">
- <doc>
- If set, the exchange for which information was requested is not
known.
- </doc>
- </field>
+ <result>
+ <struct size="long" type="31">
+ <doc>
+ This is sent in response to a query request and conveys
information on a particular
+ exchange.
+ </doc>
- <field name="arguments" domain="table" label="other unspecified exchange
properties">
- <doc>
- A set of properties of the exchange whose syntax and semantics
depends on the server
- implementation. Will be empty if the exchange is not found.
- </doc>
- </field>
+ <field name="type" domain="shortstr" label="indicate the exchange
type">
+ <doc>
+ The type of the exchange. Will be empty if the exchange is not
found.
+ </doc>
+ </field>
+
+ <field name="durable" domain="bit" label="indicate the durability">
+ <doc>
+ The durability of the exchange, i.e. if set the exchange is
durable. Will not be set if
+ the exchange is not found.
+ </doc>
+ </field>
+
+ <field name="not-found" domain="bit" label="indicate an unknown
exchange">
+ <doc>
+ If set, the exchange for which information was requested is not
known.
+ </doc>
+ </field>
+
+ <field name="arguments" domain="table" label="other unspecified
exchange properties">
+ <doc>
+ A set of properties of the exchange whose syntax and semantics
depends on the server
+ implementation. Will be empty if the exchange is not found.
+ </doc>
+ </field>
+ </struct>
+ </result>
</method>
</class>
@@ -2733,7 +2727,7 @@
/ C:BIND
/ C:PURGE
/ C:DELETE
- / C:QUERY S:QUERY-OK
+ / C:QUERY
/ C:UNBIND
</doc>
@@ -3362,52 +3356,49 @@
<chassis name="server" implement="MUST" />
- <response name="query-ok" />
<field name="queue" domain="queue-name" label="the queried queue">
<assert check="notnull" />
</field>
- </method>
- <!-- - Method: queue.query-ok - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - -->
-
- <method name="query-ok" synchronous="1" index="61" label="convey
information about a queue">
- <doc>
- This method is sent in response to queue.query, and conveys the
requested information about
- a queue.
- </doc>
-
- <chassis name="client" implement="MUST" />
+ <result>
+ <struct size="long" type="61">
+ <doc>
+ This is sent in response to queue.query, and conveys the requested
information about a
+ queue.
+ </doc>
- <field name="queue" domain="queue-name">
- <doc>
- Reports the name of the queue.
- </doc>
- <assert check="notnull" />
- </field>
+ <field name="queue" domain="queue-name">
+ <doc>
+ Reports the name of the queue.
+ </doc>
+ <assert check="notnull" />
+ </field>
- <field name="alternate-exchange" domain="exchange-name" />
+ <field name="alternate-exchange" domain="exchange-name" />
- <field name="durable" domain="bit" />
+ <field name="durable" domain="bit" />
- <field name="exclusive" domain="bit" />
+ <field name="exclusive" domain="bit" />
- <field name="auto-delete" domain="bit" />
+ <field name="auto-delete" domain="bit" />
- <field name="arguments" domain="table" />
+ <field name="arguments" domain="table" />
- <field name="message-count" domain="long" label="number of messages in
queue">
- <doc>
- Reports the number of messages in the queue.
- </doc>
- </field>
+ <field name="message-count" domain="long" label="number of messages
in queue">
+ <doc>
+ Reports the number of messages in the queue.
+ </doc>
+ </field>
- <field name="consumer-count" domain="long" label="number of consumers">
- <doc>
- Reports the number of active consumers for the queue. Note that
consumers can suspend
- activity (Session.Flow) in which case they do not appear in this
count.
- </doc>
- </field>
+ <field name="consumer-count" domain="long" label="number of
consumers">
+ <doc>
+ Reports the number of active consumers for the queue. Note that
consumers can suspend
+ activity (Session.Flow) in which case they do not appear in this
count.
+ </doc>
+ </field>
+ </struct>
+ </result>
</method>
</class>
@@ -5104,6 +5095,7 @@
<assert check="notnull" />
</field>
</method>
+
</class>
<!-- == Class: tx
============================================================================ -->
@@ -5180,7 +5172,7 @@
<doc type="grammar">
dtx-demarcation = C:SELECT *demarcation
- demarcation = C:START S:START-OK C:END S:END-OK
+ demarcation = C:START C:END
</doc>
<rule name="access-control">
@@ -5247,13 +5239,11 @@
<chassis name="server" implement="MAY" />
- <response name="start-ok" />
-
<field name="ticket" domain="access-ticket" label="Access-ticket for
specific realm">
<doc>
Access-ticket granted by the server for a specific realm.
</doc>
-
+
<rule name="validity" on-failure="access-refused">
<doc>
The client MUST provide a valid access ticket giving "active"
access rights to all the
@@ -5302,35 +5292,32 @@
<assert check="notnull" />
</field>
- </method>
-
- <!-- - Method: dtx-demarcation.start-ok - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
-
- <method name="start-ok" synchronous="1" index="21" label="Confirm dtx
start">
- <doc>
- This method confirms to the client that the transaction branch is
started or specify the
- error condition.
- </doc>
- <chassis name="client" implement="MAY" />
+ <result>
+ <struct size="long" type="21">
+ <doc>
+ This confirms to the client that the transaction branch is started
or specify the error
+ condition.
+ </doc>
- <field name="status" domain="short" label="Status code">
- <doc>
- The value of this field may be one of the following constants:
+ <field name="status" domain="short" label="Status code">
+ <doc>
+ The value of this field may be one of the following constants:
- xa-ok: Normal execution.
+ xa-ok: Normal execution.
- xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
- reason.
+ xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
+ reason.
- xa-rbtimeout: The work represented by this transaction branch took
too long.
- </doc>
+ xa-rbtimeout: The work represented by this transaction branch
took too long.
+ </doc>
- <assert check="notnull" />
- </field>
+ <assert check="notnull" />
+ </field>
+ </struct>
+ </result>
</method>
-
<!-- - Method: dtx-demarcation.end - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="end" synchronous="1" index="30" label="End a dtx branch">
@@ -5376,20 +5363,18 @@
<chassis name="server" implement="MAY" />
- <response name="end-ok" />
-
<field name="ticket" domain="access-ticket" label="Access-ticket for
specific realm">
<doc>
Access-ticket granted by the server for a specific realm.
</doc>
-
+
<rule name="validity" on-failure="access-refused">
<doc>
The client MUST provide a valid access ticket giving "active"
access rights to all the
realms touched by this transaction.
</doc>
</rule>
-
+
<assert check="notnull" />
</field>
@@ -5418,8 +5403,8 @@
<doc>
An implementation MAY elect to roll a transaction back if this
failure notification is
recieved. Should an implementation elect to implement this
behaviour, and this bit is
- set, then then the transaction branch SHOULD be marked as
rollback-only and the end-ok
- response SHOULD have the xa-rbrollback response set.
+ set, then then the transaction branch SHOULD be marked as
rollback-only and the end
+ result SHOULD have the xa-rbrollback status set.
</doc>
</rule>
@@ -5440,33 +5425,31 @@
<assert check="notnull" />
</field>
- </method>
-
- <!-- - Method: dtx-demarcation.end-ok - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
-
- <method name="end-ok" synchronous="1" index="31" label="Confirm
distributed dtx end">
- <doc>
- This method confirms to the client that the transaction branch is
ended or specify the error
- condition.
- </doc>
- <chassis name="client" implement="MAY" />
+ <result>
+ <struct size="long" type="31">
+ <doc>
+ This method confirms to the client that the transaction branch is
ended or specify the
+ error condition.
+ </doc>
- <field name="status" domain="short" label="Status code">
- <doc>
- The value of this field may be one of the following constants:
+ <field name="status" domain="short" label="Status code">
+ <doc>
+ The value of this field may be one of the following constants:
- xa-ok: Normal execution.
+ xa-ok: Normal execution.
- xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
- reason. If an implementation chooses to implement
rollback-on-failure behaviour, then
- this value should be selected if the dtx-demarcation.end.fail
bit was set.
+ xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
+ reason. If an implementation chooses to implement
rollback-on-failure behaviour, then
+ this value should be selected if the
dtx-demarcation.end.fail bit was set.
- xa-rbtimeout: The work represented by this transaction branch took
too long.
- </doc>
+ xa-rbtimeout: The work represented by this transaction branch
took too long.
+ </doc>
- <assert check="notnull" />
- </field>
+ <assert check="notnull" />
+ </field>
+ </struct>
+ </result>
</method>
</class>
@@ -5486,16 +5469,16 @@
/ outcome
/ recovery
command = C:SET-TIMEOUT
- / C:GET-TIMEOUT S:GET-TIMEOUT-OK
+ / C:GET-TIMEOUT
outcome = one-phase-commit
/ one-phase-rollback
/ two-phase-commit
/ two-phase-rollback
- one-phase-commit = C:COMMIT S:COMMIT-OK
- one-phase-rollback = C:ROLLBACK S:ROLLBACK-OK
- two-phase-commit = C:PREPARE S:PREPARE-OK C:COMMIT S:COMMIT-OK
- two-phase-rollback = C:PREPARE S:PREPARE-OK C:ROLLBACK S:ROLLBACK-OK
- recovery = C:RECOVER S:RECOVER-OK *recovery-outcome
+ one-phase-commit = C:COMMIT
+ one-phase-rollback = C:ROLLBACK
+ two-phase-commit = C:PREPARE C:COMMIT
+ two-phase-rollback = C:PREPARE C:ROLLBACK
+ recovery = C:RECOVER *recovery-outcome
recovery-outcome = one-phase-commit
/ one-phase-rollback
/ C:FORGET
@@ -5536,13 +5519,11 @@
<chassis name="server" implement="MAY" />
- <response name="commit-ok" />
-
<field name="ticket" domain="access-ticket" label="Access-ticket for
specific realm">
<doc>
Access-ticket granted by the server for a specific realm.
</doc>
-
+
<rule name="validity" on-failure="access-refused">
<doc>
The client MUST provide a valid access ticket giving "active"
access rights to all the
@@ -5594,43 +5575,41 @@
<assert check="notnull" />
</field>
- </method>
-
- <!-- - Method: dtx-coordination.commit-ok - - - - - - - - - - - - - - - -
- - - - - - - - - -->
-
- <method name="commit-ok" synchronous="1" index="11" label="Confirm dtx
commit">
- <doc>
- This method confirms to the client that the transaction branch is
committed or specify the
- error condition.
- </doc>
- <chassis name="client" implement="MAY" />
+ <result>
+ <struct size="long" type="11">
+ <doc>
+ This confirms to the client that the transaction branch is
committed or specify the
+ error condition.
+ </doc>
- <field name="status" domain="short" label="Status code">
- <doc>
- The value of this field may be one of the following constants:
+ <field name="status" domain="short" label="Status code">
+ <doc>
+ The value of this field may be one of the following constants:
- xa-ok: Normal execution
+ xa-ok: Normal execution
- xa-heurhaz: Due to some failure, the work done on behalf of the
specified transaction
- branch may have been heuristically completed.
+ xa-heurhaz: Due to some failure, the work done on behalf of the
specified transaction
+ branch may have been heuristically completed.
- xa-heurcom: Due to a heuristic decision, the work done on behalf of
the specified
- transaction branch was committed.
+ xa-heurcom: Due to a heuristic decision, the work done on behalf
of the specified
+ transaction branch was committed.
- xa-heurrb: Due to a heuristic decision, the work done on behalf of
the specified
- transaction branch was rolled back.
+ xa-heurrb: Due to a heuristic decision, the work done on behalf
of the specified
+ transaction branch was rolled back.
- xa-heurmix: Due to a heuristic decision, the work done on behalf of
the specified
- transaction branch was partially committed and partially rolled
back.
+ xa-heurmix: Due to a heuristic decision, the work done on behalf
of the specified
+ transaction branch was partially committed and partially
rolled back.
- xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
- reason.
+ xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
+ reason.
- xa-rbtimeout: The work represented by this transaction branch took
too long.
- </doc>
- <assert check="notnull" />
- </field>
+ xa-rbtimeout: The work represented by this transaction branch
took too long.
+ </doc>
+ <assert check="notnull" />
+ </field>
+ </struct>
+ </result>
</method>
<!-- - Method: dtx-coordination.forget - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
@@ -5660,7 +5639,7 @@
<doc>
Access-ticket granted by the server for a specific realm.
</doc>
-
+
<rule name="validity" on-failure="access-refused">
<doc>
The client MUST provide a valid access ticket giving "active"
access rights to all the
@@ -5712,8 +5691,6 @@
<chassis name="server" implement="MAY" />
- <response name="get-timeout-ok" />
-
<field name="xid" domain="xid" label="Transaction xid">
<doc>
Specifies the xid of the transaction branch for getting the timeout.
@@ -5728,23 +5705,21 @@
<assert check="notnull" />
</field>
- </method>
-
- <!-- - Method: dtx-coordination.get-timeout-ok - - - - - - - - - - - - - -
- - - - - - - - - -->
- <method name="get-timeout-ok" synchronous="1" index="31" label="Return dtx
timeout">
- <doc>
- Returns the value of the timeout last specified through set-timeout.
- </doc>
-
- <chassis name="client" implement="MAY" />
+ <result>
+ <struct size="long" type="31">
+ <doc>
+ Returns the value of the timeout last specified through
set-timeout.
+ </doc>
- <field name="timeout" domain="long" label="The current transaction
timeout value">
- <doc>
- The current transaction timeout value in seconds.
- </doc>
- <assert check="notnull" />
- </field>
+ <field name="timeout" domain="long" label="The current transaction
timeout value">
+ <doc>
+ The current transaction timeout value in seconds.
+ </doc>
+ <assert check="notnull" />
+ </field>
+ </struct>
+ </result>
</method>
<!-- - Method: dtx-coordination.prepare - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
@@ -5784,13 +5759,11 @@
<chassis name="server" implement="MAY" />
- <response name="prepare-ok" />
-
<field name="ticket" domain="access-ticket" label="Access-ticket for
specific realm">
<doc>
Access-ticket granted by the server for a specific realm.
</doc>
-
+
<rule name="validity" on-failure="access-refused">
<doc>
The client MUST provide a valid access ticket giving "active"
access rights to all the
@@ -5822,34 +5795,32 @@
<assert check="notnull" />
</field>
- </method>
-
- <!-- - Method: dtx-coordination.prepare-ok - - - - - - - - - - - - - - - -
- - - - - - - - - -->
-
- <method name="prepare-ok" synchronous="1" index="41" label="Confirm dtx
prepare">
- <doc>
- This method confirms to the client that the transaction branch is
prepared or specify the
- error condition.
- </doc>
- <chassis name="client" implement="MAY" />
+ <result>
+ <struct size="long" type="41">
+ <doc>
+ This method confirms to the client that the transaction branch is
prepared or specify the
+ error condition.
+ </doc>
- <field name="status" domain="short" label="Status code">
- <doc>
- The value of this field may be one of the following constants:
+ <field name="status" domain="short" label="Status code">
+ <doc>
+ The value of this field may be one of the following constants:
- xa-ok: Normal execution.
+ xa-ok: Normal execution.
- xa-rdonly: The transaction branch was read-only and has been
committed.
+ xa-rdonly: The transaction branch was read-only and has been
committed.
- xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
- reason.
+ xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
+ reason.
- xa-rbtimeout: The work represented by this transaction branch took
too long.
- </doc>
+ xa-rbtimeout: The work represented by this transaction branch
took too long.
+ </doc>
- <assert check="notnull" />
- </field>
+ <assert check="notnull" />
+ </field>
+ </struct>
+ </result>
</method>
<!-- - Method: dtx-coordination.recover - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
@@ -5883,13 +5854,11 @@
<chassis name="server" implement="MAY" />
- <response name="recover-ok" />
-
<field name="ticket" domain="access-ticket" label="Access-ticket for
specific realm">
<doc>
Access-ticket granted by the server for a specific realm.
</doc>
-
+
<rule name="validity" on-failure="access-refused">
<doc>
The client MUST provide a valid access ticket giving "active"
access rights to all the
@@ -5921,33 +5890,31 @@
</doc>
<assert check="notnull" />
</field>
- </method>
-
- <!-- - Method: dtx-coordination.recover-ok - - - - - - - - - - - - - - - -
- - - - - - - - - -->
- <method name="recover-ok" synchronous="1" index="51" label="List of
recovered xids">
- <doc>
- Returns to the client a table with single item that is a sequence of
transaction xids that
- are in a prepared or heuristically completed state.
- </doc>
-
- <chassis name="client" implement="MAY" />
-
- <field name="in-doubt" domain="table" label="Table of xids to be
recovered">
- <doc>
- Table containing the sequence of xids to be recovered (xids that are
in a prepared or
- heuristically completed state).
- </doc>
-
- <rule name="xid-sequence">
+ <result>
+ <struct size="long" type="51">
<doc>
- The field table must contain a field called 'xids' of type
sequence of longstrs
- representing the xids that are in a prepared or heuristically
completed state.
+ Returns to the client a table with single item that is a sequence
of transaction xids that
+ are in a prepared or heuristically completed state.
</doc>
- </rule>
- <assert check="notnull" />
- </field>
+ <field name="in-doubt" domain="table" label="Table of xids to be
recovered">
+ <doc>
+ Table containing the sequence of xids to be recovered (xids that
are in a prepared or
+ heuristically completed state).
+ </doc>
+
+ <rule name="xid-sequence">
+ <doc>
+ The field table must contain a field called 'xids' of type
sequence of longstrs
+ representing the xids that are in a prepared or heuristically
completed state.
+ </doc>
+ </rule>
+
+ <assert check="notnull" />
+ </field>
+ </struct>
+ </result>
</method>
<!-- - Method: dtx-coordination.rollback - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
@@ -5974,13 +5941,11 @@
<chassis name="server" implement="MAY" />
- <response name="rollback-ok" />
-
<field name="ticket" domain="access-ticket" label="Access-ticket for
specific realm">
<doc>
Access-ticket granted by the server for a specific realm.
</doc>
-
+
<rule name="validity" on-failure="access-refused">
<doc>
The client MUST provide a valid access ticket giving "active"
access rights to all the
@@ -6012,43 +5977,41 @@
<assert check="notnull" />
</field>
- </method>
- <!-- - Method: dtx-coordination.rollback-ok - - - - - - - - - - - - - - -
- - - - - - - - - -->
-
- <method name="rollback-ok" synchronous="1" index="61" label="Confirm dtx
rollback">
- <doc>
- This method confirms to the client that the transaction branch is
rolled back or specify the
- error condition.
- </doc>
-
- <chassis name="client" implement="MAY" />
+ <result>
+ <struct size="long" type="61">
+ <doc>
+ This method confirms to the client that the transaction branch is
rolled back or specify the
+ error condition.
+ </doc>
- <field name="status" domain="short" label="Status code">
- <doc>
- The value of this field may be one of the following constants:
+ <field name="status" domain="short" label="Status code">
+ <doc>
+ The value of this field may be one of the following constants:
- xa-ok: Normal execution
+ xa-ok: Normal execution
- xa-heurhaz: Due to some failure, the work done on behalf of the
specified transaction
- branch may have been heuristically completed.
+ xa-heurhaz: Due to some failure, the work done on behalf of the
specified transaction
+ branch may have been heuristically completed.
- xa-heurcom: Due to a heuristic decision, the work done on behalf of
the specified
- transaction branch was committed.
+ xa-heurcom: Due to a heuristic decision, the work done on behalf
of the specified
+ transaction branch was committed.
- xa-heurrb: Due to a heuristic decision, the work done on behalf of
the specified
- transaction branch was rolled back.
+ xa-heurrb: Due to a heuristic decision, the work done on behalf
of the specified
+ transaction branch was rolled back.
- xa-heurmix: Due to a heuristic decision, the work done on behalf of
the specified
- transaction branch was partially committed and partially rolled
back.
+ xa-heurmix: Due to a heuristic decision, the work done on behalf
of the specified
+ transaction branch was partially committed and partially
rolled back.
- xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
- reason.
+ xa-rbrollback: The broker marked the transaction branch
rollback-only for an unspecified
+ reason.
- xa-rbtimeout: The work represented by this transaction branch took
too long.
- </doc>
- <assert check="notnull" />
- </field>
+ xa-rbtimeout: The work represented by this transaction branch
took too long.
+ </doc>
+ <assert check="notnull" />
+ </field>
+ </struct>
+ </result>
</method>
<!-- - Method: dtx-coordination.set-timeout - - - - - - - - - - - - - - -
- - - - - - - - - -->
@@ -6084,7 +6047,7 @@
<doc>
Access-ticket granted by the server for a specific realm.
</doc>
-
+
<rule name="validity" on-failure="access-refused">
<doc>
The client MUST provide a valid access ticket giving "active"
access rights to all the
@@ -6568,6 +6531,51 @@
<field name="destination" domain="destination" />
</method>
+ <!-- - Method: message.get - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+
+ <method name="get" index="40" label="direct access to a queue">
+ <doc>
+ This method provides a direct access to the messages in a queue using
a synchronous dialogue
+ that is designed for specific types of application where synchronous
functionality is more
+ important than performance.
+ </doc>
+
+ <chassis name="server" implement="MUST" />
+
+ <response name="empty" />
+
+ <field name="ticket" domain="access-ticket">
+ <rule name="ticket-required" on-failure="access-refused">
+ <doc>
+ The client MUST provide a valid access ticket giving "read" access
rights to the realm
+ for the queue from which the message will be consumed.
+ </doc>
+ </rule>
+ </field>
+
+ <field name="queue" domain="queue-name">
+ <doc>
+ Specifies the name of the queue to consume from. If the queue name
is null, refers to the
+ current queue for the session, which is the last declared queue.
+ </doc>
+ <rule name="empty-name">
+ <doc>
+ If the client did not previously declare a queue, and the queue
name in this method is
+ empty, the server MUST raise a connection exception with reply
code 530 (not allowed).
+ </doc>
+ </rule>
+ </field>
+
+ <field name="destination" domain="destination">
+ <doc>
+ On normal completion of the get request (i.e. a response of ok). A
message will be
+ transferred to the supplied destination.
+ </doc>
+ </field>
+
+ <field name="no-ack" domain="no-ack" />
+ </method>
+
<!-- - Method: message.recover - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="recover" index="50" label="redeliver unacknowledged
messages">
@@ -6729,6 +6737,70 @@
<field name="identifier" domain="shortstr" label="checkpoint identifier"
/>
</method>
+ <!-- - Method: message.qos - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
+
+ <method name="qos" index="110" label="specify quality of service">
+ <doc>
+ This method requests a specific quality of service. The QoS can be
specified for the current
+ session or for all sessions on the connection. The particular
properties and semantics of a
+ qos method always depend on the content class semantics. Though the
qos method could in
+ principle apply to both peers, it is currently meaningful only for the
server.
+ </doc>
+
+ <chassis name="server" implement="MUST" />
+
+ <field name="prefetch-size" domain="long" label="prefetch window in
octets">
+ <doc>
+ The client can request that messages be sent in advance so that when
the client finishes
+ processing a message, the following message is already held locally,
rather than needing
+ to be sent within the session. Prefetching gives a performance
improvement. This field
+ specifies the prefetch window size in octets. The server will send a
message in advance if
+ it is equal to or smaller in size than the available prefetch size
(and also falls into
+ other prefetch limits). May be set to zero, meaning "no specific
limit", although other
+ prefetch limits may still apply. The prefetch-size is ignored if the
no-ack option is set.
+ </doc>
+ <rule name="non-responsive-client">
+ <doc>
+ The server MUST ignore this setting when the client is not
processing any messages -
+ i.e. the prefetch size does not limit the transfer of single
messages to a client, only
+ the sending in advance of more messages while the client still has
one or more
+ unacknowledged messages.
+ </doc>
+ <doc type="scenario">
+ Define a QoS prefetch-size limit and send a single message that
exceeds that limit.
+ Verify that the message arrives correctly.
+ </doc>
+ </rule>
+ </field>
+
+ <field name="prefetch-count" domain="short" label="prefetch window in
messages">
+ <doc>
+ Specifies a prefetch window in terms of whole messages. This field
may be used in
+ combination with the prefetch-size field; a message will only be
sent in advance if both
+ prefetch windows (and those at the session and connection level)
allow it. The
+ prefetch-count is ignored if the no-ack option is set.
+ </doc>
+ <rule name="prefetch-maximum">
+ <doc>
+ The server may send less data in advance than allowed by the
client's specified prefetch
+ windows but it MUST NOT send more.
+ </doc>
+ <doc type="scenario">
+ Define a QoS prefetch-size limit and a prefetch-count limit
greater than one. Send
+ multiple messages that exceed the prefetch size. Verify that no
more than one message
+ arrives at once.
+ </doc>
+ </rule>
+ </field>
+
+ <field name="global" domain="bit" label="apply to entire connection">
+ <doc>
+ By default the QoS settings apply to the current session only. If
this field is set, they
+ are applied to the entire connection.
+ </doc>
+ </field>
+ </method>
+
<!-- - Method: message.flow-mode - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
<method name="flow-mode" index="120" label="set the flow control mode">
@@ -6899,14 +6971,11 @@
<method name="query" synchronous="1" index="10"
label="request information about bindings to an exchange">
<doc>
- This method is used to request information on the bindings to a
particular exchange. That
- information is conveyed in a query-ok method.
+ This method is used to request information on the bindings to a
particular exchange.
</doc>
<chassis name="server" implement="MUST" />
- <response name="query-ok" />
-
<field name="ticket" domain="access-ticket">
<rule name="validity" on-failure="access-refused">
<doc>
@@ -6942,52 +7011,50 @@
will ignore the arguments on bindings when searching for a match
</doc>
</field>
- </method>
-
- <!-- - Method: binding.query-ok - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -->
-
- <method name="query-ok" synchronous="1" index="11"
- label="returns information about bindings to exchange">
- <doc>
- This method is used in response to a query and conveys information on
the bindings to a
- particular exchange.
- </doc>
-
- <chassis name="client" implement="MUST" />
-
- <field name="exchange-not-found" domain="bit" label="indicate an unknown
exchange">
- <doc>
- If set, the exchange for which information was requested is not
known.
- </doc>
- </field>
- <field name="queue-not-found" domain="bit" label="indicate an unknown
queue">
- <doc>
- If set, the queue specified is not known.
- </doc>
- </field>
-
- <field name="queue-not-matched" domain="bit" label="indicate no matching
queue">
- <doc>
- A bit which if set indicates that no binding was found from the
specified exchange to the
- specified queue.
- </doc>
- </field>
-
- <field name="key-not-matched" domain="bit" label="indicate no matching
routing key">
- <doc>
- A bit which if set indicates that no binding was found from the
specified exchange with
- the specified routing key.
- </doc>
- </field>
+ <result>
+ <struct size="long" type="11">
+ <doc>
+ This method is used in response to a query and conveys information
on the bindings to a
+ particular exchange.
+ </doc>
- <field name="args-not-matched" domain="bit" label="indicate no matching
args">
- <doc>
- A bit which if set indicates that no binding was found from the
specified exchange with
- the specified arguments.
- </doc>
- </field>
+ <field name="exchange-not-found" domain="bit" label="indicate an
unknown exchange">
+ <doc>
+ If set, the exchange for which information was requested is not
known.
+ </doc>
+ </field>
+
+ <field name="queue-not-found" domain="bit" label="indicate an
unknown queue">
+ <doc>
+ If set, the queue specified is not known.
+ </doc>
+ </field>
+
+ <field name="queue-not-matched" domain="bit" label="indicate no
matching queue">
+ <doc>
+ A bit which if set indicates that no binding was found from the
specified exchange to the
+ specified queue.
+ </doc>
+ </field>
+
+ <field name="key-not-matched" domain="bit" label="indicate no
matching routing key">
+ <doc>
+ A bit which if set indicates that no binding was found from the
specified exchange with
+ the specified routing key.
+ </doc>
+ </field>
+
+ <field name="args-not-matched" domain="bit" label="indicate no
matching args">
+ <doc>
+ A bit which if set indicates that no binding was found from the
specified exchange with
+ the specified arguments.
+ </doc>
+ </field>
+ </struct>
+ </result>
</method>
+
</class>
<!-- == Class: execution
===================================================================== -->
@@ -7084,7 +7151,7 @@
<method name="sync" index="50" label="request notification of completion
for issued commands">
<doc>
Requests notification (via execution.complete) when all commands
issued prior to the sync
- control have been processed. If the recipient of this control has
already notified the
+ control are complete. If the recipient of this control has already
notified the
sender that said commands are complete, it may safely ignore the
control.
</doc>