Updated to version 1.5.3 of the RabbitMQ libraries.
2009-05-20 Michael Barker <mike@middlesoft.co.uk>
* RabbitMQMessageEnumerator.cs: Removed references to realms & tickets.
* RabbitMQMessageQueue.cs: Removed references to realms & tickets.
svn path=/trunk/mcs/; revision=134509
2009-05-19 Michael Barker <mike@middlesoft.co.uk>
- * RabbitMQMessageQueue.cs: Added comments.
\ No newline at end of file
+ * RabbitMQMessageQueue.cs: Added comments.
+
+2009-05-20 Michael Barker <mike@middlesoft.co.uk>
+
+ * RabbitMQMessageEnumerator.cs: Removed references to realms & tickets.
+ * RabbitMQMessageQueue.cs: Removed references to realms & tickets.
\ No newline at end of file
if (subscription == null) {
IModel ch = Model;
- ushort ticket = ch.AccessRequest ("/data");
- string finalName = ch.QueueDeclare (ticket, qRef.Queue, false);
+ //ushort ticket = ch.AccessRequest ("/data");
+ string finalName = ch.QueueDeclare (qRef.Queue, false);
- subscription = new Subscription (ch, ticket, finalName);
+ subscription = new Subscription (ch, finalName);
}
return subscription;
using (IConnection cn = cf.CreateConnection (qRef.Host)) {
using (IModel model = cn.CreateModel ()) {
- ushort ticket = model.AccessRequest (realm);
- model.QueueDelete (ticket, qRef.Queue, false, false, false);
+ model.QueueDelete (qRef.Queue, false, false, false);
}
}
}
private void Send (IModel model, IMessage msg)
{
- ushort ticket = model.AccessRequest ("/data");
- string finalName = model.QueueDeclare (ticket, QRef.Queue, true);
+ string finalName = model.QueueDeclare (QRef.Queue, true);
IMessageBuilder mb = helper.WriteMessage (model, msg);
- model.BasicPublish (ticket, "", finalName,
+ model.BasicPublish ("", finalName,
(IBasicProperties) mb.GetContentHeader(),
mb.GetContentBody ());
}
using (IConnection cn = cf.CreateConnection (QRef.Host)) {
using (IModel model = cn.CreateModel ()) {
- ushort ticket = model.AccessRequest (realm);
- model.QueuePurge (ticket, QRef.Queue, false);
+ model.QueuePurge (QRef.Queue, false);
}
}
}
private IMessage Receive (IModel model, int timeout, bool doAck)
{
- ushort ticket = model.AccessRequest (realm);
- string finalName = model.QueueDeclare (ticket, QRef.Queue, false);
+ string finalName = model.QueueDeclare (QRef.Queue, false);
- using (Subscription sub = new Subscription (model, ticket, finalName)) {
+ using (Subscription sub = new Subscription (model, finalName)) {
BasicDeliverEventArgs result;
if (sub.Next (timeout, out result)) {
IMessage m = helper.ReadMessage (QRef, result);
private IMessage Receive (IModel model, int timeout,
bool doAck, IsMatch matcher)
{
- ushort ticket = model.AccessRequest (realm);
- string finalName = model.QueueDeclare (ticket, QRef.Queue, false);
+ string finalName = model.QueueDeclare (QRef.Queue, false);
- using (Subscription sub = new Subscription (model, ticket, finalName)) {
+ using (Subscription sub = new Subscription (model, finalName)) {
BasicDeliverEventArgs result;
while (sub.Next (timeout, out result)) {
RabbitMQ.Client assembly from RabbitMQ project.
http://www.rabbitmq.com/
+2009-05-21 Michael Barker <mike@middlesoft.co.uk>
+
+ Updated to version 1.5.3 of the RabbitMQ libraries.
clean-local:
rm -f ../../src/apigen/apigen-bootstrap.dll
+ rm autogenerated-api*.cs
test-local:
<?xml version="1.0"?>
-
+<!-- WARNING: Modified from the official 0-8 specification XML by
+ the addition of queue.unbind, queue.unbind-ok -->
<!--
Copyright Notice
================
</doc>
<chassis name="client" implement="MUST"/>
</method>
+
+ <!-- Unofficial additions to the 0-8 protocol, lifted from the 0-9
+ protocol specification: queue.unbind, queue.unbind-ok -->
+
+ <method name = "unbind" synchronous = "1" index = "50" label = "unbind a queue from an exchange">
+ <doc>This method unbinds a queue from an exchange.</doc>
+ <rule name = "01">
+ <doc>If a unbind fails, the server MUST raise a connection exception.</doc>
+ </rule>
+ <chassis name="server" implement="MUST"/>
+ <response name="unbind-ok"/>
+
+ <field name = "ticket" domain = "access ticket">
+ <doc>
+ The client provides a valid access ticket giving "active"
+ access rights to the queue's access realm.
+ </doc>
+ </field>
+
+ <field name = "queue" domain = "queue name">
+ <doc>Specifies the name of the queue to unbind.</doc>
+ <rule name = "02">
+ <doc>
+ If the queue does not exist the server MUST raise a channel exception
+ with reply code 404 (not found).
+ </doc>
+ </rule>
+ </field>
+
+ <field name = "exchange" domain = "exchange name">
+ <doc>The name of the exchange to unbind from.</doc>
+ <rule name = "03">
+ <doc>
+ If the exchange does not exist the server MUST raise a channel
+ exception with reply code 404 (not found).
+ </doc>
+ </rule>
+ </field>
+
+ <field name = "routing key" domain = "shortstr" label = "routing key of binding">
+ <doc>Specifies the routing key of the binding to unbind.</doc>
+ </field>
+
+ <field name = "arguments" domain = "table" label = "arguments of binding">
+ <doc>Specifies the arguments of the binding to unbind.</doc>
+ </field>
+ </method>
+
+ <method name = "unbind-ok" synchronous = "1" index = "51" label = "confirm unbind successful">
+ <doc>This method confirms that the unbind was successful.</doc>
+ <chassis name = "client" implement = "MUST"/>
+ </method>
+
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<method name="purge" synchronous="1" index="30">
purge a queue
result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
return result;
}
+ case 50: {
+ RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbind result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbind();
+ result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
+ return result;
+ }
+ case 51: {
+ RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbindOk result = new RabbitMQ.Client.Framing.Impl.v0_8.QueueUnbindOk();
+ result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
+ return result;
+ }
case 30: {
RabbitMQ.Client.Framing.Impl.v0_8.QueuePurge result = new RabbitMQ.Client.Framing.Impl.v0_8.QueuePurge();
result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));
/// </remarks>
public interface IQueueBindOk: IMethod {
}
+ /// <summary>Autogenerated type. AMQP specification method "queue.unbind".</summary>
+ /// <remarks>
+ /// This method unbinds a queue from an exchange.
+ /// </remarks>
+ public interface IQueueUnbind: IMethod {
+ /// <summary>
+ ///
+ /// The client provides a valid access ticket giving "active"
+ /// access rights to the queue's access realm.
+ ///
+ /// </summary>
+ ushort Ticket { get; }
+ /// <summary>
+ /// Specifies the name of the queue to unbind.
+ /// </summary>
+ string Queue { get; }
+ /// <summary>
+ /// The name of the exchange to unbind from.
+ /// </summary>
+ string Exchange { get; }
+ /// <summary>
+ /// Specifies the routing key of the binding to unbind.
+ /// </summary>
+ string RoutingKey { get; }
+ /// <summary>
+ /// Specifies the arguments of the binding to unbind.
+ /// </summary>
+ System.Collections.IDictionary Arguments { get; }
+ }
+ /// <summary>Autogenerated type. AMQP specification method "queue.unbind-ok".</summary>
+ /// <remarks>
+ /// This method confirms that the unbind was successful.
+ /// </remarks>
+ public interface IQueueUnbindOk: IMethod {
+ }
/// <summary>Autogenerated type. AMQP specification method "queue.purge".</summary>
/// <remarks>
///
}
}
/// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
+ public class QueueUnbind: RabbitMQ.Client.Impl.MethodBase, IQueueUnbind {
+ public const int ClassId = 50;
+ public const int MethodId = 50;
+
+ public ushort m_ticket;
+ public string m_queue;
+ public string m_exchange;
+ public string m_routingKey;
+ public System.Collections.IDictionary m_arguments;
+
+ ushort IQueueUnbind.Ticket { get { return m_ticket; } }
+ string IQueueUnbind.Queue { get { return m_queue; } }
+ string IQueueUnbind.Exchange { get { return m_exchange; } }
+ string IQueueUnbind.RoutingKey { get { return m_routingKey; } }
+ System.Collections.IDictionary IQueueUnbind.Arguments { get { return m_arguments; } }
+
+ public QueueUnbind() {}
+ public QueueUnbind(
+ ushort initTicket,
+ string initQueue,
+ string initExchange,
+ string initRoutingKey,
+ System.Collections.IDictionary initArguments)
+ {
+ m_ticket = initTicket;
+ m_queue = initQueue;
+ m_exchange = initExchange;
+ m_routingKey = initRoutingKey;
+ m_arguments = initArguments;
+ }
+
+ public override int ProtocolClassId { get { return 50; } }
+ public override int ProtocolMethodId { get { return 50; } }
+ public override string ProtocolMethodName { get { return "queue.unbind"; } }
+ public override bool HasContent { get { return false; } }
+
+ public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
+ m_ticket = reader.ReadShort();
+ m_queue = reader.ReadShortstr();
+ m_exchange = reader.ReadShortstr();
+ m_routingKey = reader.ReadShortstr();
+ m_arguments = reader.ReadTable();
+ }
+
+ public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
+ writer.WriteShort(m_ticket);
+ writer.WriteShortstr(m_queue);
+ writer.WriteShortstr(m_exchange);
+ writer.WriteShortstr(m_routingKey);
+ writer.WriteTable(m_arguments);
+ }
+
+ public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
+ sb.Append("(");
+ sb.Append(m_ticket); sb.Append(",");
+ sb.Append(m_queue); sb.Append(",");
+ sb.Append(m_exchange); sb.Append(",");
+ sb.Append(m_routingKey); sb.Append(",");
+ sb.Append(m_arguments);
+ sb.Append(")");
+ }
+ }
+ /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
+ public class QueueUnbindOk: RabbitMQ.Client.Impl.MethodBase, IQueueUnbindOk {
+ public const int ClassId = 50;
+ public const int MethodId = 51;
+
+
+
+ public QueueUnbindOk(
+)
+ {
+ }
+
+ public override int ProtocolClassId { get { return 50; } }
+ public override int ProtocolMethodId { get { return 51; } }
+ public override string ProtocolMethodName { get { return "queue.unbind-ok"; } }
+ public override bool HasContent { get { return false; } }
+
+ public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {
+ }
+
+ public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {
+ }
+
+ public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {
+ sb.Append("(");
+ sb.Append(")");
+ }
+ }
+ /// <summary>Autogenerated type. Private implementation class - do not use directly.</summary>
public class QueuePurge: RabbitMQ.Client.Impl.MethodBase, IQueuePurge {
public const int ClassId = 50;
public const int MethodId = 30;
public class Model: RabbitMQ.Client.Impl.ModelBase {
public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
- public override System.UInt16 _Private_AccessRequest(
- System.String @realm,
- System.Boolean @exclusive,
- System.Boolean @passive,
- System.Boolean @active,
- System.Boolean @write,
- System.Boolean @read)
- {
- AccessRequest __req = new AccessRequest();
- __req.m_realm = @realm;
- __req.m_exclusive = @exclusive;
- __req.m_passive = @passive;
- __req.m_active = @active;
- __req.m_write = @write;
- __req.m_read = @read;
- RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
- AccessRequestOk __rep = __repBase as AccessRequestOk;
- if (__rep == null) throw new UnexpectedMethodException(__repBase);
- return __rep.m_ticket;
- }
public override void _Private_BasicPublish(
- System.UInt16 @ticket,
System.String @exchange,
System.String @routingKey,
System.Boolean @mandatory,
System.Byte[] @body)
{
BasicPublish __req = new BasicPublish();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_routingKey = @routingKey;
__req.m_mandatory = @mandatory;
ModelSend(__req, (BasicProperties) basicProperties,body);
}
public override void _Private_BasicConsume(
- System.UInt16 @ticket,
System.String @queue,
System.String @consumerTag,
System.Boolean @noLocal,
System.Collections.IDictionary @filter)
{
BasicConsume __req = new BasicConsume();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_consumerTag = @consumerTag;
__req.m_noLocal = @noLocal;
ModelSend(__req,null,null);
}
public override void _Private_BasicGet(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @noAck)
{
BasicGet __req = new BasicGet();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_noAck = @noAck;
ModelSend(__req,null,null);
}
+ public override void _Private_ChannelFlowOk()
+ {
+ ChannelFlowOk __req = new ChannelFlowOk();
+ ModelSend(__req,null,null);
+ }
public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
System.Collections.IDictionary @clientProperties,
System.String @mechanism,
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void ExchangeDeclare(
- System.UInt16 @ticket,
System.String @exchange,
System.String @type,
System.Boolean @passive,
System.Collections.IDictionary @arguments)
{
ExchangeDeclare __req = new ExchangeDeclare();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_type = @type;
__req.m_passive = @passive;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void ExchangeDelete(
- System.UInt16 @ticket,
System.String @exchange,
System.Boolean @ifUnused,
System.Boolean @nowait)
{
ExchangeDelete __req = new ExchangeDelete();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_ifUnused = @ifUnused;
__req.m_nowait = @nowait;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override System.String QueueDeclare(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @passive,
System.Boolean @durable,
System.Collections.IDictionary @arguments)
{
QueueDeclare __req = new QueueDeclare();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_passive = @passive;
__req.m_durable = @durable;
return __rep.m_queue;
}
public override void QueueBind(
- System.UInt16 @ticket,
System.String @queue,
System.String @exchange,
System.String @routingKey,
System.Collections.IDictionary @arguments)
{
QueueBind __req = new QueueBind();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_exchange = @exchange;
__req.m_routingKey = @routingKey;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void QueueUnbind(
- System.UInt16 @ticket,
System.String @queue,
System.String @exchange,
System.String @routingKey,
System.Collections.IDictionary @arguments)
{
- throw new UnsupportedMethodException("QueueUnbind");
+ QueueUnbind __req = new QueueUnbind();
+ __req.m_queue = @queue;
+ __req.m_exchange = @exchange;
+ __req.m_routingKey = @routingKey;
+ __req.m_arguments = @arguments;
+ RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
+ QueueUnbindOk __rep = __repBase as QueueUnbindOk;
+ if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override System.UInt32 QueuePurge(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @nowait)
{
QueuePurge __req = new QueuePurge();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_nowait = @nowait;
if (nowait) {
return __rep.m_messageCount;
}
public override System.UInt32 QueueDelete(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @ifUnused,
System.Boolean @ifEmpty,
System.Boolean @nowait)
{
QueueDelete __req = new QueueDelete();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_ifUnused = @ifUnused;
__req.m_ifEmpty = @ifEmpty;
cmd.Body);
return true;
}
+ case 1310740: {
+ ChannelFlow __impl = (ChannelFlow) __method;
+ HandleChannelFlow(
+ __impl.m_active);
+ return true;
+ }
case 1310760: {
ChannelClose __impl = (ChannelClose) __method;
HandleChannelClose(
public class Model: RabbitMQ.Client.Impl.ModelBase {
public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
- public override System.UInt16 _Private_AccessRequest(
- System.String @realm,
- System.Boolean @exclusive,
- System.Boolean @passive,
- System.Boolean @active,
- System.Boolean @write,
- System.Boolean @read)
- {
- AccessRequest __req = new AccessRequest();
- __req.m_realm = @realm;
- __req.m_exclusive = @exclusive;
- __req.m_passive = @passive;
- __req.m_active = @active;
- __req.m_write = @write;
- __req.m_read = @read;
- RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
- AccessRequestOk __rep = __repBase as AccessRequestOk;
- if (__rep == null) throw new UnexpectedMethodException(__repBase);
- return __rep.m_ticket;
- }
public override void _Private_BasicPublish(
- System.UInt16 @ticket,
System.String @exchange,
System.String @routingKey,
System.Boolean @mandatory,
System.Byte[] @body)
{
BasicPublish __req = new BasicPublish();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_routingKey = @routingKey;
__req.m_mandatory = @mandatory;
ModelSend(__req, (BasicProperties) basicProperties,body);
}
public override void _Private_BasicConsume(
- System.UInt16 @ticket,
System.String @queue,
System.String @consumerTag,
System.Boolean @noLocal,
System.Collections.IDictionary @filter)
{
BasicConsume __req = new BasicConsume();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_consumerTag = @consumerTag;
__req.m_noLocal = @noLocal;
ModelSend(__req,null,null);
}
public override void _Private_BasicGet(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @noAck)
{
BasicGet __req = new BasicGet();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_noAck = @noAck;
ModelSend(__req,null,null);
}
+ public override void _Private_ChannelFlowOk()
+ {
+ ChannelFlowOk __req = new ChannelFlowOk();
+ ModelSend(__req,null,null);
+ }
public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
System.Collections.IDictionary @clientProperties,
System.String @mechanism,
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void ExchangeDeclare(
- System.UInt16 @ticket,
System.String @exchange,
System.String @type,
System.Boolean @passive,
System.Collections.IDictionary @arguments)
{
ExchangeDeclare __req = new ExchangeDeclare();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_type = @type;
__req.m_passive = @passive;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void ExchangeDelete(
- System.UInt16 @ticket,
System.String @exchange,
System.Boolean @ifUnused,
System.Boolean @nowait)
{
ExchangeDelete __req = new ExchangeDelete();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_ifUnused = @ifUnused;
__req.m_nowait = @nowait;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override System.String QueueDeclare(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @passive,
System.Boolean @durable,
System.Collections.IDictionary @arguments)
{
QueueDeclare __req = new QueueDeclare();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_passive = @passive;
__req.m_durable = @durable;
return __rep.m_queue;
}
public override void QueueBind(
- System.UInt16 @ticket,
System.String @queue,
System.String @exchange,
System.String @routingKey,
System.Collections.IDictionary @arguments)
{
QueueBind __req = new QueueBind();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_exchange = @exchange;
__req.m_routingKey = @routingKey;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void QueueUnbind(
- System.UInt16 @ticket,
System.String @queue,
System.String @exchange,
System.String @routingKey,
System.Collections.IDictionary @arguments)
{
QueueUnbind __req = new QueueUnbind();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_exchange = @exchange;
__req.m_routingKey = @routingKey;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override System.UInt32 QueuePurge(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @nowait)
{
QueuePurge __req = new QueuePurge();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_nowait = @nowait;
if (nowait) {
return __rep.m_messageCount;
}
public override System.UInt32 QueueDelete(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @ifUnused,
System.Boolean @ifEmpty,
System.Boolean @nowait)
{
QueueDelete __req = new QueueDelete();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_ifUnused = @ifUnused;
__req.m_ifEmpty = @ifEmpty;
cmd.Body);
return true;
}
+ case 1310740: {
+ ChannelFlow __impl = (ChannelFlow) __method;
+ HandleChannelFlow(
+ __impl.m_active);
+ return true;
+ }
case 1310760: {
ChannelClose __impl = (ChannelClose) __method;
HandleChannelClose(
public class Model: RabbitMQ.Client.Impl.ModelBase {
public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}
- public override System.UInt16 _Private_AccessRequest(
- System.String @realm,
- System.Boolean @exclusive,
- System.Boolean @passive,
- System.Boolean @active,
- System.Boolean @write,
- System.Boolean @read)
- {
- AccessRequest __req = new AccessRequest();
- __req.m_realm = @realm;
- __req.m_exclusive = @exclusive;
- __req.m_passive = @passive;
- __req.m_active = @active;
- __req.m_write = @write;
- __req.m_read = @read;
- RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,null,null);
- AccessRequestOk __rep = __repBase as AccessRequestOk;
- if (__rep == null) throw new UnexpectedMethodException(__repBase);
- return __rep.m_ticket;
- }
public override void _Private_BasicPublish(
- System.UInt16 @ticket,
System.String @exchange,
System.String @routingKey,
System.Boolean @mandatory,
System.Byte[] @body)
{
BasicPublish __req = new BasicPublish();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_routingKey = @routingKey;
__req.m_mandatory = @mandatory;
ModelSend(__req, (BasicProperties) basicProperties,body);
}
public override void _Private_BasicConsume(
- System.UInt16 @ticket,
System.String @queue,
System.String @consumerTag,
System.Boolean @noLocal,
System.Collections.IDictionary @filter)
{
BasicConsume __req = new BasicConsume();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_consumerTag = @consumerTag;
__req.m_noLocal = @noLocal;
ModelSend(__req,null,null);
}
public override void _Private_BasicGet(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @noAck)
{
BasicGet __req = new BasicGet();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_noAck = @noAck;
ModelSend(__req,null,null);
}
+ public override void _Private_ChannelFlowOk()
+ {
+ ChannelFlowOk __req = new ChannelFlowOk();
+ ModelSend(__req,null,null);
+ }
public override RabbitMQ.Client.Impl.ConnectionTuneDetails ConnectionStartOk(
System.Collections.IDictionary @clientProperties,
System.String @mechanism,
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void ExchangeDeclare(
- System.UInt16 @ticket,
System.String @exchange,
System.String @type,
System.Boolean @passive,
System.Collections.IDictionary @arguments)
{
ExchangeDeclare __req = new ExchangeDeclare();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_type = @type;
__req.m_passive = @passive;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void ExchangeDelete(
- System.UInt16 @ticket,
System.String @exchange,
System.Boolean @ifUnused,
System.Boolean @nowait)
{
ExchangeDelete __req = new ExchangeDelete();
- __req.m_ticket = @ticket;
__req.m_exchange = @exchange;
__req.m_ifUnused = @ifUnused;
__req.m_nowait = @nowait;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override System.String QueueDeclare(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @passive,
System.Boolean @durable,
System.Collections.IDictionary @arguments)
{
QueueDeclare __req = new QueueDeclare();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_passive = @passive;
__req.m_durable = @durable;
return __rep.m_queue;
}
public override void QueueBind(
- System.UInt16 @ticket,
System.String @queue,
System.String @exchange,
System.String @routingKey,
System.Collections.IDictionary @arguments)
{
QueueBind __req = new QueueBind();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_exchange = @exchange;
__req.m_routingKey = @routingKey;
if (__rep == null) throw new UnexpectedMethodException(__repBase);
}
public override void QueueUnbind(
- System.UInt16 @ticket,
System.String @queue,
System.String @exchange,
System.String @routingKey,
throw new UnsupportedMethodException("QueueUnbind");
}
public override System.UInt32 QueuePurge(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @nowait)
{
QueuePurge __req = new QueuePurge();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_nowait = @nowait;
if (nowait) {
return __rep.m_messageCount;
}
public override System.UInt32 QueueDelete(
- System.UInt16 @ticket,
System.String @queue,
System.Boolean @ifUnused,
System.Boolean @ifEmpty,
System.Boolean @nowait)
{
QueueDelete __req = new QueueDelete();
- __req.m_ticket = @ticket;
__req.m_queue = @queue;
__req.m_ifUnused = @ifUnused;
__req.m_ifEmpty = @ifEmpty;
cmd.Body);
return true;
}
+ case 1310740: {
+ ChannelFlow __impl = (ChannelFlow) __method;
+ HandleChannelFlow(
+ __impl.m_active);
+ return true;
+ }
case 1310760: {
ChannelClose __impl = (ChannelClose) __method;
HandleChannelClose(
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
LOCAL_MCS_FLAGS = /r:System.dll \
/r:System.Xml.dll \
- /r:apigen-bootstrap.dll \
/main:RabbitMQ.Client.Apigen.Apigen
include ../../../../build/executable.make
+++ /dev/null
-thisdir := class/RabbitMQ.Client/src/apigen
-SUBDIRS =
-include ../../../../build/rules.make
-
-LIBRARY = apigen-bootstrap.dll
-LIB_MCS_FLAGS = /r:System.dll
-NO_TEST = yes
-NO_SIGN_ASSEMBLY = yes
-
-include ../../../../build/library.make
+++ /dev/null
-../client/api/IModel.cs
-../client/api/IContentHeader.cs
-../client/api/IBasicProperties.cs
-../client/api/IFileProperties.cs
-../client/api/IStreamProperties.cs
-../client/api/AmqpTimestamp.cs
-../client/api/IBasicConsumer.cs
-../client/api/ShutdownEventArgs.cs
-../client/api/ShutdownInitiator.cs
-../client/api/PublicationAddress.cs
-../client/events/BasicReturnEventArgs.cs
-../client/events/BasicReturnEventHandler.cs
-../client/events/CallbackExceptionEventArgs.cs
-../client/events/CallbackExceptionEventHandler.cs
-../client/events/ModelShutdownEventHandler.cs
./api/AmqpVersion.cs
./api/IBasicConsumer.cs
./api/IConnection.cs
-./api/AccessRequestConfig.cs
./api/ShutdownInitiator.cs
./api/IModel.cs
./api/ConnectionFactory.cs
./api/IStreamProperties.cs
./api/IBasicProperties.cs
./api/ShutdownEventArgs.cs
-../../docs/specs/autogenerated-api-0-9.cs
-../../docs/specs/autogenerated-api-0-8.cs
-../../docs/specs/autogenerated-api-qpid-0-8.cs
../util/DebugUtil.cs
../util/NetworkBinaryReader.cs
../util/NetworkBinaryWriter.cs
../util/Either.cs
../util/SharedQueue.cs
../util/XmlUtil.cs
+../../docs/specs/autogenerated-api-0-9.cs
+../../docs/specs/autogenerated-api-0-8.cs
+../../docs/specs/autogenerated-api-qpid-0-8.cs
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
/// IConnection conn = factory.CreateConnection(protocol, hostName, portNumber);
/// //
/// IModel ch = conn.CreateModel();
- /// ushort ticket = ch.AccessRequest("/data");
/// //
/// // ... use ch's IModel methods ...
/// //
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
private ushort m_requestedChannelMax = DefaultChannelMax;
private uint m_requestedFrameMax = DefaultFrameMax;
private ushort m_requestedHeartbeat = DefaultHeartbeat;
- private AccessRequestConfig m_accessRequestConfig = AccessRequestConfig.UseDefault;
///<summary>Construct a fresh instance, with all fields set to
///their respective defaults.</summary>
set { m_requestedHeartbeat = value; }
}
- /// <summary>Used to control whether Access.Request methods
- /// are sent to the peer or not, in conjunction with the
- /// protocol default.</summary>
- public AccessRequestConfig AccessRequestConfig
- {
- get { return m_accessRequestConfig; }
- set { m_accessRequestConfig = value; }
- }
-
///<summary>Implement ICloneable.Clone by delegating to our type-safe variant.</summary>
object ICloneable.Clone()
{
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
///</remarks>
void Close();
+ ///<summary>Close this connection and all its channels.</summary>
+ ///<remarks>
+ ///The method behaves in the same way as Close(), with the only
+ ///difference that the connection is closed with the given connection
+ ///close code and message.
+ ///<para>
+ ///The close code (See under "Reply Codes" in the AMQP specification)
+ ///</para>
+ ///<para>
+ ///A message indicating the reason for closing the connection
+ ///</para>
+ ///</remarks>
+ void Close(ushort reasonCode, string reasonText);
+
///<summary>Close this connection and all its channels
///and wait with a timeout for all the in-progress close operations
///to complete.
///</remarks>
void Close(int timeout);
+ ///<summary>Close this connection and all its channels
+ ///and wait with a timeout for all the in-progress close operations
+ ///to complete.
+ ///</summary>
+ ///<remarks>
+ ///The method behaves in the same way as Close(int timeout), with the only
+ ///difference that the connection is closed with the given connection
+ ///close code and message.
+ ///<para>
+ ///The close code (See under "Reply Codes" in the AMQP specification)
+ ///</para>
+ ///<para>
+ ///A message indicating the reason for closing the connection
+ ///</para>
+ ///</remarks>
+ void Close(ushort reasonCode, string reasonText, int timeout);
+
///<summary>Abort this connection and all its channels.</summary>
///<remarks>
///Note that all active channels, sessions, and models will be
///</remarks>
void Abort();
+ ///<summary>Abort this connection and all its channels.</summary>
+ ///<remarks>
+ ///The method behaves in the same way as Abort(), with the only
+ ///difference that the connection is closed with the given connection
+ ///close code and message.
+ ///<para>
+ ///The close code (See under "Reply Codes" in the AMQP specification)
+ ///</para>
+ ///<para>
+ ///A message indicating the reason for closing the connection
+ ///</para>
+ ///</remarks>
+ void Abort(ushort reasonCode, string reasonText);
+
///<summary>
///Abort this connection and all its channels and wait with a
///timeout for all the in-progress close operations to complete.
- ///.</summary>
+ ///</summary>
///<remarks>
///This method, behaves in a similar way as method Abort() with the
///only difference that it explictly specifies the timeout given
///</remarks>
void Abort(int timeout);
+ ///<summary>
+ ///Abort this connection and all its channels and wait with a
+ ///timeout for all the in-progress close operations to complete.
+ ///</summary>
+ ///<remarks>
+ ///The method behaves in the same way as Abort(timeout), with the only
+ ///difference that the connection is closed with the given connection
+ ///close code and message.
+ ///<para>
+ ///The close code (See under "Reply Codes" in the AMQP specification)
+ ///</para>
+ ///<para>
+ ///A message indicating the reason for closing the connection
+ ///</para>
+ ///</remarks>
+ void Abort(ushort reasonCode, string reasonText, int timeout);
+
///<summary>Returns the list of ShutdownReportEntry objects that
///contain information about any errors reported while closing the
///connection in the order they appeared</summary>
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
[return: AmqpFieldMapping(null, "active")]
void ChannelFlow(bool active);
- ///<summary>(Spec method) Convenience method, asking for
- ///non-exclusive access to all capabilities within a
- ///realm.</summary>
- ///<remarks>
- ///If Access.Request is disabled, either through the IProtocol
- ///default or through the AccessRequestConfig property of
- ///ConnectionParameters, no request is sent to the peer and a
- ///dummy ticket number is returned.
- ///</remarks>
- [AmqpMethodDoNotImplement(null)]
- ushort AccessRequest(string realm);
-
- ///<summary>(Spec method) Retrieve an access ticket
- ///("capability") for a realm.</summary>
- ///<remarks>
- ///If Access.Request is disabled, either through the IProtocol
- ///default or through the AccessRequestConfig property of
- ///ConnectionParameters, no request is sent to the peer and a
- ///dummy ticket number is returned.
- ///</remarks>
- [AmqpMethodDoNotImplement(null)]
- ushort AccessRequest(string realm,
- bool exclusive,
- bool passive,
- bool active,
- bool write,
- bool read);
-
///<summary>(Spec method) Declare an exchange.</summary>
///<remarks>
///The exchange is declared non-passive, non-autodelete, and
///exercised.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- void ExchangeDeclare(ushort ticket, string exchange, string type, bool durable);
+ void ExchangeDeclare(string exchange, string type, bool durable);
///<summary>(Spec method) Declare an exchange.</summary>
///<remarks>
///exercised.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- void ExchangeDeclare(ushort ticket, string exchange, string type);
+ void ExchangeDeclare(string exchange, string type);
///<summary>(Spec method) Declare an exchange.</summary>
- void ExchangeDeclare(ushort ticket,
- string exchange,
+ void ExchangeDeclare(string exchange,
string type,
bool passive,
bool durable,
IDictionary arguments);
///<summary>(Spec method) Delete an exchange.</summary>
- void ExchangeDelete(ushort ticket,
- string exchange,
+ void ExchangeDelete(string exchange,
bool ifUnused,
[AmqpNowaitArgument(null)]
bool nowait);
///name is the return value of this method.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- string QueueDeclare(ushort ticket);
+ string QueueDeclare();
///<summary>(Spec method) Declare a queue.</summary>
///<remarks>
///non-exclusive, and non-autodelete, with no arguments.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- string QueueDeclare(ushort ticket,
- string queue);
+ string QueueDeclare(string queue);
///<summary>(Spec method) Declare a queue.</summary>
///<remarks>
///non-autodelete, with no arguments.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- string QueueDeclare(ushort ticket,
- string queue,
+ string QueueDeclare(string queue,
bool durable);
///<summary>(Spec method) Declare a queue.</summary>
///Returns the name of the queue that was declared.
///</remarks>
[return: AmqpFieldMapping(null, "queue")]
- string QueueDeclare(ushort ticket,
- string queue,
+ string QueueDeclare(string queue,
bool passive,
bool durable,
bool exclusive,
IDictionary arguments);
///<summary>(Spec method) Bind a queue to an exchange.</summary>
- void QueueBind(ushort ticket,
- string queue,
+ void QueueBind(string queue,
string exchange,
string routingKey,
[AmqpNowaitArgument(null)]
///<summary>(Spec method) Unbind a queue from an exchange.</summary>
///<remarks>
///Note: This operation is only supported when communicating
- ///using AMQP protocol version 0-9.
+ ///using AMQP protocol version 0-9, or when communicating with
+ ///a 0-8 broker that has been enhanced with the unofficial
+ ///addition of a queue.unbind method.
///</remarks>
- [AmqpUnsupported("RabbitMQ.Client.Framing.v0_8")]
[AmqpUnsupported("RabbitMQ.Client.Framing.v0_8qpid")]
- void QueueUnbind(ushort ticket,
- string queue,
+ void QueueUnbind(string queue,
string exchange,
string routingKey,
IDictionary arguments);
///specified, returns <code>uint.MaxValue</code>.
///</remarks>
[return: AmqpFieldMapping(null, "messageCount")]
- uint QueuePurge(ushort ticket,
- string queue,
+ uint QueuePurge(string queue,
[AmqpNowaitArgument(null, "0xFFFFFFFF")]
bool nowait);
///<code>uint.MaxValue</code>.
///</remarks>
[return: AmqpFieldMapping(null, "messageCount")]
- uint QueueDelete(ushort ticket,
- string queue,
+ uint QueueDelete(string queue,
bool ifUnused,
bool ifEmpty,
[AmqpNowaitArgument(null, "0xFFFFFFFF")]
///noLocal=false and exclusive=false.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- string BasicConsume(ushort ticket,
- string queue,
+ string BasicConsume(string queue,
IDictionary filter,
IBasicConsumer consumer);
///noLocal=false and exclusive=false.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- string BasicConsume(ushort ticket,
- string queue,
+ string BasicConsume(string queue,
bool noAck,
IDictionary filter,
IBasicConsumer consumer);
///noLocal=false and exclusive=false.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- string BasicConsume(ushort ticket,
- string queue,
+ string BasicConsume(string queue,
bool noAck,
string consumerTag,
IDictionary filter,
///<summary>Start a Basic content-class consumer.</summary>
[AmqpMethodDoNotImplement(null)]
- string BasicConsume(ushort ticket,
- string queue,
+ string BasicConsume(string queue,
bool noAck,
string consumerTag,
bool noLocal,
///The publication occurs with mandatory=false and immediate=false.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- void BasicPublish(ushort ticket,
- PublicationAddress addr,
+ void BasicPublish(PublicationAddress addr,
IBasicProperties basicProperties,
byte[] body);
///The publication occurs with mandatory=false and immediate=false.
///</remarks>
[AmqpMethodDoNotImplement(null)]
- void BasicPublish(ushort ticket,
- string exchange,
+ void BasicPublish(string exchange,
string routingKey,
IBasicProperties basicProperties,
byte[] body);
///<summary>(Spec method) Publish a message using the Basic
///content-class.</summary>
[AmqpMethodDoNotImplement(null)]
- void BasicPublish(ushort ticket,
- string exchange,
+ void BasicPublish(string exchange,
string routingKey,
bool mandatory,
bool immediate,
///no messages are currently available. See also
///IModel.BasicAck.</summary>
[AmqpMethodDoNotImplement(null)]
- BasicGetResult BasicGet(ushort ticket,
- string queue,
+ BasicGetResult BasicGet(string queue,
bool noAck);
///<summary>(Spec method) Enable TX mode for this session.</summary>
///<summary>Close this session.</summary>
///<remarks>
- /// If the session is already closed (or closing), then this
- /// method does nothing but wait for the in-progress close
- /// operation to complete. This method will not return to the
- /// caller until the shutdown is complete.
+ ///If the session is already closed (or closing), then this
+ ///method does nothing but wait for the in-progress close
+ ///operation to complete. This method will not return to the
+ ///caller until the shutdown is complete.
+ ///</remarks>
+ [AmqpMethodDoNotImplement(null)]
+ void Close();
+
+ ///<summary>Close this session.</summary>
+ ///<remarks>
+ ///The method behaves in the same way as Close(), with the only
+ ///difference that the model is closed with the given model
+ ///close code and message.
+ ///<para>
+ ///The close code (See under "Reply Codes" in the AMQP specification)
+ ///</para>
+ ///<para>
+ ///A message indicating the reason for closing the model
+ ///</para>
///</remarks>
[AmqpMethodDoNotImplement(null)]
void Close(ushort replyCode, string replyText);
+
+ ///<summary>Abort this session.</summary>
+ ///<remarks>
+ ///If the session is already closed (or closing), then this
+ ///method does nothing but wait for the in-progress close
+ ///operation to complete. This method will not return to the
+ ///caller until the shutdown is complete.
+ ///In comparison to normal Close() method, Abort() will not throw
+ ///AlreadyClosedException or IOException during closing model.
+ ///</remarks>
+ [AmqpMethodDoNotImplement(null)]
+ void Abort();
+
+ ///<summary>Abort this session.</summary>
+ ///<remarks>
+ ///The method behaves in the same way as Abort(), with the only
+ ///difference that the model is closed with the given model
+ ///close code and message.
+ ///<para>
+ ///The close code (See under "Reply Codes" in the AMQP specification)
+ ///</para>
+ ///<para>
+ ///A message indicating the reason for closing the model
+ ///</para>
+ ///</remarks>
+ [AmqpMethodDoNotImplement(null)]
+ void Abort(ushort replyCode, string replyText);
}
///<summary>Represents Basic.GetOk responses from the server.</summary>
///<see cref="RabbitMQ.Client.Framing.Impl.v0_9.Model"/>
public interface IFullModel : RabbitMQ.Client.IModel
{
- ///<summary>Used to send an Access.Request method. Called by
- ///the public API after checking whether our peer's
- ///implementation can actually handle access
- ///requests.</summary>
- [AmqpMethodMapping(null, "access", "request")]
- [return: AmqpFieldMapping(null, "ticket")]
- ushort _Private_AccessRequest(string realm,
- bool exclusive,
- bool passive,
- bool active,
- bool write,
- bool read);
-
///<summary>Used to send a Basic.Publish method. Called by the
///public publish method after potential null-reference issues
///have been rectified.</summary>
[AmqpMethodMapping(null, "basic", "publish")]
- void _Private_BasicPublish(ushort ticket,
- string exchange,
+ void _Private_BasicPublish(string exchange,
string routingKey,
bool mandatory,
bool immediate,
///datastructures.</summary>
[AmqpForceOneWay]
[AmqpMethodMapping(null, "basic", "consume")]
- void _Private_BasicConsume(ushort ticket,
- string queue,
+ void _Private_BasicConsume(string queue,
string consumerTag,
bool noLocal,
bool noAck,
///required.</summary>
[AmqpForceOneWay]
[AmqpMethodMapping(null, "basic", "get")]
- void _Private_BasicGet(ushort ticket,
- string queue,
+ void _Private_BasicGet(string queue,
bool noAck);
///<summary>Handle incoming Basic.GetOk methods. Routes the
IBasicProperties basicProperties,
[AmqpContentBodyMapping]
byte[] body);
+
+ ///<summary>Used to send a Channel.FlowOk. Confirms that
+ ///Channel.Flow from the broker was processed.</summary>
+ [AmqpMethodMapping(null, "channel", "flow-ok")]
+ void _Private_ChannelFlowOk();
+
+ ///<summary>Handle incoming Channel.Flow methods. Either
+ ///stops or resumes sending the methods that have content.</summary>
+ void HandleChannelFlow(bool active);
///<summary>Handle an incoming Channel.Close. Shuts down the
///session and model.</summary>
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
///<summary>Retrieve the protocol's default TCP port</summary>
int DefaultPort { get; }
- ///<summary>Returns false if this protocol variant defaults to
- ///permitting Access.Requests to be sent to the peer, or true
- ///if Access.Requests should be suppressed by
- ///default.</summary>
- bool DefaultSuppressAccessRequest { get; }
-
///<summary>Construct a frame handler for a given endpoint.</summary>
IFrameHandler CreateFrameHandler(AmqpTcpEndpoint endpoint);
///<summary>Construct a connection from a given set of
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
///<example><code>
/// IModel channel = ...;
/// QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel);
- /// channel.BasicConsume(ticket, queueName, null, consumer);
+ /// channel.BasicConsume(queueName, null, consumer);
///
/// // At this point, messages will be being asynchronously delivered,
/// // and will be queueing up in consumer.Queue.
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
public abstract string ApiName { get; }
public abstract int DefaultPort { get; }
- public abstract bool DefaultSuppressAccessRequest { get; }
-
public abstract IFrameHandler CreateFrameHandler(AmqpTcpEndpoint endpoint);
public abstract IConnection CreateConnection(ConnectionParameters parameters,
bool insist,
out Command request,
out int replyClassId,
out int replyMethodId);
+
+ ///<summary>Used in the quiescing session to determine if the command
+ ///is allowed to be sent.</summary>
+ public abstract bool CanSendWhileClosed(Command cmd);
public AmqpVersion Version {
get {
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
m_sessionManager = new SessionManager(this);
m_session0 = new MainSession(this);
- m_session0.Handler = NotifyReceivedClose;
+ m_session0.Handler = new MainSession.SessionCloseDelegate(NotifyReceivedCloseOk);
m_model0 = (ModelBase)Protocol.CreateModel(m_session0);
StartMainLoop();
void IDisposable.Dispose()
{
- Close();
+ Abort();
+ if (ShutdownReport.Count > 0)
+ {
+ foreach (ShutdownReportEntry entry in ShutdownReport)
+ {
+ if (entry.Exception != null)
+ throw entry.Exception;
+ }
+ throw new OperationInterruptedException(null);
+ }
}
///<summary>API-side invocation of connection close.</summary>
Close(200, "Goodbye", Timeout.Infinite);
}
+ ///<summary>API-side invocation of connection close.</summary>
+ public void Close(ushort reasonCode, string reasonText)
+ {
+ Close(reasonCode, reasonText, Timeout.Infinite);
+ }
+
///<summary>API-side invocation of connection close with timeout.</summary>
public void Close(int timeout)
{
Close(200, "Goodbye", timeout);
}
-
- public void Close(ShutdownEventArgs reason)
- {
- Close(reason, false, Timeout.Infinite);
- }
+ ///<summary>API-side invocation of connection close with timeout.</summary>
public void Close(ushort reasonCode, string reasonText, int timeout)
{
Close(new ShutdownEventArgs(ShutdownInitiator.Application, reasonCode, reasonText), false, timeout);
}
-
+
+ public void Close(ShutdownEventArgs reason)
+ {
+ Close(reason, false, Timeout.Infinite);
+ }
///<summary>API-side invocation of connection abort.</summary>
public void Abort()
{
Abort(Timeout.Infinite);
}
+
+ ///<summary>API-side invocation of connection abort.</summary>
+ public void Abort(ushort reasonCode, string reasonText)
+ {
+ Abort(reasonCode, reasonText, Timeout.Infinite);
+ }
///<summary>API-side invocation of connection abort with timeout.</summary>
public void Abort(int timeout)
Abort(200, "Connection close forced", timeout);
}
+ ///<summary>API-side invocation of connection abort with timeout.</summary>
public void Abort(ushort reasonCode, string reasonText, int timeout)
{
Abort(reasonCode, reasonText, ShutdownInitiator.Application, timeout);
FinishClose();
}
- public void HandleHeartbeatFrame()
+ public void NotifyHeartbeatThread()
{
if (m_heartbeat == 0) {
// Heartbeating not enabled for this connection.
return;
}
-
m_heartbeatRead.Set();
}
{
Frame frame = m_frameHandler.ReadFrame();
+ NotifyHeartbeatThread();
// We have received an actual frame.
if (frame.Type == CommonFraming.Constants.FrameHeartbeat) {
// Ignore it: we've already just reset the heartbeat
// counter.
- HandleHeartbeatFrame();
return;
}
closed = true;
m_heartbeatRead.Set();
m_heartbeatWrite.Set();
-
+
m_frameHandler.Close();
m_model0.SetCloseReason(m_closeReason);
m_model0.FinishClose();
///</remarks>
public void ClosingLoop()
{
- m_frameHandler.Timeout = ConnectionCloseTimeout;
- DateTime startTimeout = DateTime.Now;
try
{
+ m_frameHandler.Timeout = ConnectionCloseTimeout;
+ DateTime startTimeout = DateTime.Now;
// Wait for response/socket closure or timeout
while (!closed)
{
MainLoopIteration();
}
}
+ catch (ObjectDisposedException ode)
+ {
+ if (!closed)
+ LogCloseError("Connection didn't close cleanly", ode);
+ }
catch (EndOfStreamException eose)
{
if (m_model0.CloseReason == null)
}
}
- public void NotifyReceivedClose()
+ public void NotifyReceivedCloseOk()
{
+ TerminateMainloop();
closed = true;
- m_frameHandler.Close();
}
///<summary>
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
event SessionShutdownEventHandler SessionShutdown;
int ChannelNumber { get; }
- IConnection Connection { get; }
- ShutdownEventArgs CloseReason { get; }
+ IConnection Connection { get; }
+ ShutdownEventArgs CloseReason { get; }
bool IsOpen { get; }
void HandleFrame(Frame frame);
void Transmit(Command cmd);
void Close(ShutdownEventArgs reason);
+ void Close(ShutdownEventArgs reason, bool notify);
+ void Notify();
}
}
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
public SessionCloseDelegate Handler
{
get { return handler; }
- set { handler = new SessionCloseDelegate(value); }
+ set { handler = value; }
}
public override void HandleFrame(Frame frame)
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
private readonly object m_eventLock = new object();
private BasicReturnEventHandler m_basicReturn;
private CallbackExceptionEventHandler m_callbackException;
+
+ public ManualResetEvent m_flowControlBlock = new ManualResetEvent(true);
public event ModelShutdownEventHandler ModelShutdown
{
}
}
}
+ m_flowControlBlock.Set();
}
public virtual void OnBasicReturn(BasicReturnEventArgs args)
public void ModelSend(MethodBase method, ContentHeaderBase header, byte[] body)
{
+ if (method.HasContent) {
+ m_flowControlBlock.WaitOne();
+ }
m_session.Transmit(new Command(method, header, body));
}
e.Body = body;
OnBasicReturn(e);
}
+
+ public abstract void _Private_ChannelFlowOk();
+
+ public void HandleChannelFlow(bool active)
+ {
+ if (active)
+ m_flowControlBlock.Set();
+ else
+ m_flowControlBlock.Reset();
+ _Private_ChannelFlowOk();
+ }
public void HandleConnectionStart(byte versionMajor,
byte versionMinor,
replyText,
classId,
methodId));
- FinishClose();
- _Private_ChannelCloseOk();
+
+ m_session.Close(m_closeReason, false);
+ try {
+ _Private_ChannelCloseOk();
+ } finally {
+ m_session.Notify();
+ }
}
public void FinishClose()
public abstract void ChannelFlow(bool active);
- public ushort AccessRequest(string realm)
- {
- return AccessRequest(realm, false, true, true, true, true);
- }
-
- public static AccessRequestConfig GetEnvironmentAccessRequestConfig()
- {
- string setting = Environment.GetEnvironmentVariable("AMQP_ACCESS_REQUEST");
- if (setting == null)
- {
- return AccessRequestConfig.UseDefault;
- }
- switch (setting)
- {
- case "ENABLE": return AccessRequestConfig.Enable;
- case "SUPPRESS": return AccessRequestConfig.Suppress;
- case "USE_DEFAULT": return AccessRequestConfig.UseDefault;
- default: {
- string message = string.Format("Unsupported AMQP_ACCESS_REQUEST setting: {0}",
- setting);
- throw new NotSupportedException(message);
- }
- }
- }
-
- public static AccessRequestConfig Combine(AccessRequestConfig first,
- AccessRequestConfig second)
- {
- return (first == AccessRequestConfig.UseDefault) ? second : first;
- }
-
- public ushort AccessRequest(string realm,
- bool exclusive,
- bool passive,
- bool active,
- bool write,
- bool read)
- {
- bool send;
- switch (Combine(m_session.Connection.Parameters.AccessRequestConfig,
- GetEnvironmentAccessRequestConfig()))
- {
- case AccessRequestConfig.Enable:
- send = true;
- break;
- case AccessRequestConfig.Suppress:
- send = false;
- break;
- case AccessRequestConfig.UseDefault:
- send = !m_session.Connection.Protocol.DefaultSuppressAccessRequest;
- break;
- default: {
- send = false;
-
- string message = string.Format("Illegal value for AccessRequestConfig: {0}",
- (int) m_session.Connection.Parameters.AccessRequestConfig);
- throw new ArgumentException(message);
- }
- }
- if (send)
- {
- return _Private_AccessRequest(realm, exclusive, passive, active, write, read);
- }
- else
- {
- return 0;
- }
- }
-
- // TODO: Consider changing the access modifier or name, _Private => protected (?)
- public abstract ushort _Private_AccessRequest(string realm,
- bool exclusive,
- bool passive,
- bool active,
- bool write,
- bool read);
-
- public void ExchangeDeclare(ushort ticket, string exchange, string type, bool durable)
+ public void ExchangeDeclare(string exchange, string type, bool durable)
{
- ExchangeDeclare(ticket, exchange, type, false, durable, false, false, false, null);
+ ExchangeDeclare(exchange, type, false, durable, false, false, false, null);
}
- public void ExchangeDeclare(ushort ticket, string exchange, string type)
+ public void ExchangeDeclare(string exchange, string type)
{
- ExchangeDeclare(ticket, exchange, type, false, false, false, false, false, null);
+ ExchangeDeclare(exchange, type, false, false, false, false, false, null);
}
- public abstract void ExchangeDeclare(ushort ticket,
- string exchange,
+ public abstract void ExchangeDeclare(string exchange,
string type,
bool passive,
bool durable,
bool nowait,
IDictionary arguments);
- public abstract void ExchangeDelete(ushort ticket,
- string exchange,
+ public abstract void ExchangeDelete(string exchange,
bool ifUnused,
bool nowait);
//TODO: Mark these as virtual, maybe the model has an optimized way
// of dealing with missing parameters.
-
- public string QueueDeclare(ushort ticket)
+ public string QueueDeclare()
{
- return QueueDeclare(ticket, "", false, false, true, true, false, null);
+ return QueueDeclare("", false, false, true, true, false, null);
}
- public string QueueDeclare(ushort ticket, string queue)
+ public string QueueDeclare(string queue)
{
- return QueueDeclare(ticket, queue, false);
+ return QueueDeclare(queue, false);
}
- public string QueueDeclare(ushort ticket, string queue, bool durable)
+ public string QueueDeclare(string queue, bool durable)
{
- return QueueDeclare(ticket, queue, false, durable, false, false, false, null);
+ return QueueDeclare(queue, false, durable, false, false, false, null);
}
- public abstract string QueueDeclare(ushort ticket,
- string queue,
+ public abstract string QueueDeclare(string queue,
bool passive,
bool durable,
bool exclusive,
bool nowait,
IDictionary arguments);
- public abstract void QueueBind(ushort ticket,
- string queue,
+ public abstract void QueueBind(string queue,
string exchange,
string routingKey,
bool nowait,
IDictionary arguments);
- public abstract void QueueUnbind(ushort ticket,
- string queue,
+ public abstract void QueueUnbind(string queue,
string exchange,
string routingKey,
IDictionary arguments);
- public abstract uint QueuePurge(ushort ticket,
- string queue,
+ public abstract uint QueuePurge(string queue,
bool nowait);
- public abstract uint QueueDelete(ushort ticket,
- string queue,
+ public abstract uint QueueDelete(string queue,
bool ifUnused,
bool ifEmpty,
bool nowait);
- public string BasicConsume(ushort ticket,
- string queue,
+ public string BasicConsume(string queue,
IDictionary filter,
IBasicConsumer consumer)
{
- return BasicConsume(ticket, queue, false, filter, consumer);
+ return BasicConsume(queue, false, filter, consumer);
}
- public string BasicConsume(ushort ticket,
- string queue,
+ public string BasicConsume(string queue,
bool noAck,
IDictionary filter,
IBasicConsumer consumer)
{
- return BasicConsume(ticket, queue, noAck, "", filter, consumer);
+ return BasicConsume(queue, noAck, "", filter, consumer);
}
- public string BasicConsume(ushort ticket,
- string queue,
+ public string BasicConsume(string queue,
bool noAck,
string consumerTag,
IDictionary filter,
IBasicConsumer consumer)
{
- return BasicConsume(ticket, queue, noAck, consumerTag, false, false, filter, consumer);
+ return BasicConsume(queue, noAck, consumerTag, false, false, filter, consumer);
}
public class BasicConsumerRpcContinuation : SimpleBlockingRpcContinuation
public BasicConsumerRpcContinuation() { }
}
- public string BasicConsume(ushort ticket,
- string queue,
+ public string BasicConsume(string queue,
bool noAck,
string consumerTag,
bool noLocal,
// the RPC response, but a response is still expected.
try
{
- _Private_BasicConsume(ticket, queue, consumerTag, noLocal, noAck, exclusive,
+ _Private_BasicConsume(queue, consumerTag, noLocal, noAck, exclusive,
/*nowait:*/ false, filter);
}
catch (AlreadyClosedException)
public BasicGetRpcContinuation() { }
}
- public BasicGetResult BasicGet(ushort ticket,
- string queue,
+ public BasicGetResult BasicGet(string queue,
bool noAck)
{
BasicGetRpcContinuation k = new BasicGetRpcContinuation();
Enqueue(k);
try
{
- _Private_BasicGet(ticket, queue, noAck);
+ _Private_BasicGet(queue, noAck);
}
catch (AlreadyClosedException)
{
ushort prefetchCount,
bool global);
- public abstract void _Private_BasicConsume(ushort ticket,
- string queue,
+ public abstract void _Private_BasicConsume(string queue,
string consumerTag,
bool noLocal,
bool noAck,
public abstract void _Private_BasicCancel(string consumerTag,
bool nowait);
- public void BasicPublish(ushort ticket,
- PublicationAddress addr,
+ public void BasicPublish(PublicationAddress addr,
IBasicProperties basicProperties,
byte[] body)
{
- BasicPublish(ticket,
- addr.ExchangeName,
+ BasicPublish(addr.ExchangeName,
addr.RoutingKey,
basicProperties,
body);
}
- public void BasicPublish(ushort ticket,
- string exchange,
+ public void BasicPublish(string exchange,
string routingKey,
IBasicProperties basicProperties,
byte[] body)
{
- BasicPublish(ticket,
- exchange,
+ BasicPublish(exchange,
routingKey,
false,
false,
body);
}
- public void BasicPublish(ushort ticket,
- string exchange,
+ public void BasicPublish(string exchange,
string routingKey,
bool mandatory,
bool immediate,
{
basicProperties = CreateBasicProperties();
}
- _Private_BasicPublish(ticket,
- exchange,
+ _Private_BasicPublish(exchange,
routingKey,
mandatory,
immediate,
body);
}
- public abstract void _Private_BasicPublish(ushort ticket,
- string exchange,
+ public abstract void _Private_BasicPublish(string exchange,
string routingKey,
bool mandatory,
bool immediate,
void IDisposable.Dispose()
{
- Close(200, "");
+ Close();
+ }
+
+ public void Close()
+ {
+ Close(200, "Goodbye");
}
- public void Close(ushort replyCode, string replyText)
+ public void Close(ushort replyCode, string replyText)
+ {
+ Close(replyCode, replyText, false);
+ }
+
+ public void Abort()
+ {
+ Abort(200, "Goodbye");
+ }
+
+ public void Abort(ushort replyCode, string replyText)
+ {
+ Close(replyCode, replyText, true);
+ }
+
+ public void Close(ushort replyCode, string replyText, bool abort)
{
ShutdownContinuation k = new ShutdownContinuation();
ModelShutdown += new ModelShutdownEventHandler(k.OnShutdown);
-
- if (SetCloseReason(new ShutdownEventArgs(ShutdownInitiator.Application,
- replyCode,
- replyText)))
- {
- _Private_ChannelClose(replyCode, replyText, 0, 0);
+
+ try {
+ if (SetCloseReason(new ShutdownEventArgs(ShutdownInitiator.Application,
+ replyCode,
+ replyText)))
+ {
+ _Private_ChannelClose(replyCode, replyText, 0, 0);
+ }
+ k.Wait();
+ } catch (AlreadyClosedException ace) {
+ if (!abort)
+ throw ace;
+ } catch (IOException ioe) {
+ if (!abort)
+ throw ioe;
}
-
- k.Wait();
}
public void HandleChannelCloseOk()
public abstract void _Private_ChannelCloseOk();
- public abstract void _Private_BasicGet(ushort ticket,
- string queue,
+ public abstract void _Private_BasicGet(string queue,
bool noAck);
public void HandleBasicGetOk(ulong deliveryTag,
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
{
if (m_closeReason != null)
{
- throw new AlreadyClosedException(m_closeReason);
+ if (!m_connection.Protocol.CanSendWhileClosed(cmd))
+ throw new AlreadyClosedException(m_closeReason);
}
// We transmit *inside* the lock to avoid interleaving
// of frames within a channel.
}
public void Close(ShutdownEventArgs reason)
+ {
+ Close(reason, true);
+ }
+
+ public void Close(ShutdownEventArgs reason, bool notify)
{
lock (m_shutdownLock)
{
m_closeReason = reason;
}
}
-
+ if (notify)
+ OnSessionShutdown(m_closeReason);
+ }
+
+ public void Notify()
+ {
+ // Ensure that we notify only when session is already closed
+ // If not, throw exception, since this is a serious bug in the library
+ lock (m_shutdownLock)
+ {
+ if (m_closeReason == null)
+ throw new Exception("Internal Error in Session.Close");
+ }
OnSessionShutdown(m_closeReason);
}
}
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
m_endpoint = endpoint;
m_socket = new TcpClient();
m_socket.Connect(endpoint.HostName, endpoint.Port);
+ // disable Nagle's algorithm, for more consistently low latency
+ m_socket.NoDelay = true;
Stream netstream = m_socket.GetStream();
m_reader = new NetworkBinaryReader(netstream);
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
namespace RabbitMQ.Client.Framing.Impl.v0_8 {
public abstract class ProtocolBase: AbstractProtocolBase {
- public override bool DefaultSuppressAccessRequest { get { return false; } }
public override IFrameHandler CreateFrameHandler(AmqpTcpEndpoint endpoint) {
return new SocketFrameHandler_0_9(endpoint);
replyClassId = RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk.ClassId;
replyMethodId = RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk.MethodId;
}
+
+ public override bool CanSendWhileClosed(Command cmd)
+ {
+ return cmd.m_method is RabbitMQ.Client.Framing.Impl.v0_8.ChannelCloseOk;
+ }
}
}
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
namespace RabbitMQ.Client.Framing.Impl.v0_8qpid {
public abstract class ProtocolBase: AbstractProtocolBase {
- public override bool DefaultSuppressAccessRequest { get { return true; } }
public override IFrameHandler CreateFrameHandler(AmqpTcpEndpoint endpoint) {
return new SocketFrameHandler_0_9(endpoint);
replyClassId = RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk.ClassId;
replyMethodId = RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk.MethodId;
}
+
+ public override bool CanSendWhileClosed(Command cmd)
+ {
+ return cmd.m_method is RabbitMQ.Client.Framing.Impl.v0_8qpid.ChannelCloseOk;
+ }
}
}
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
namespace RabbitMQ.Client.Framing.Impl.v0_9 {
public abstract class ProtocolBase: AbstractProtocolBase {
- public override bool DefaultSuppressAccessRequest { get { return false; } }
public override IFrameHandler CreateFrameHandler(AmqpTcpEndpoint endpoint) {
return new SocketFrameHandler_0_9(endpoint);
replyClassId = RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk.ClassId;
replyMethodId = RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk.MethodId;
}
+
+ public override bool CanSendWhileClosed(Command cmd)
+ {
+ return cmd.m_method is RabbitMQ.Client.Framing.Impl.v0_9.ChannelCloseOk;
+ }
}
}
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
/// using (IConnection conn = new ConnectionFactory()
/// .CreateConnection(serverAddress)) {
/// using (IModel ch = conn.CreateModel()) {
- /// ushort ticket = ch.AccessRequest("/data");
/// SimpleRpcClient client =
- /// new SimpleRpcClient(ch, ticket, queueName);
+ /// new SimpleRpcClient(ch, queueName);
/// client.TimeoutMilliseconds = 5000; // optional
///
/// /// ... make use of the various Call() overloads
public event EventHandler Disconnected;
protected IModel m_model;
- protected ushort m_ticket;
protected Subscription m_subscription;
private PublicationAddress m_address;
private int m_timeout;
///<summary>Retrieve the IModel this instance uses to communicate.</summary>
public IModel Model { get { return m_model; } }
- ///<summary>Retrieve the ticket this instance uses to take AMQP actions.</summary>
- public ushort Ticket { get { return m_ticket; } }
///<summary>Retrieve the Subscription that is used to receive
///RPC replies corresponding to Call() RPC requests. May be
///<summary>Construct an instance with no configured
///Address. The Address property must be set before Call() or
///Cast() are called.</summary>
- public SimpleRpcClient(IModel model, ushort ticket)
- : this(model, ticket, (PublicationAddress) null) {}
+ public SimpleRpcClient(IModel model)
+ : this(model, (PublicationAddress) null) {}
///<summary>Construct an instance that will deliver to the
///default exchange (""), with routing key equal to the passed
///in queueName, thereby delivering directly to a named queue
///on the AMQP server.</summary>
- public SimpleRpcClient(IModel model, ushort ticket, string queueName)
- : this(model, ticket, new PublicationAddress(ExchangeType.Direct, "", queueName)) {}
+ public SimpleRpcClient(IModel model, string queueName)
+ : this(model, new PublicationAddress(ExchangeType.Direct, "", queueName)) {}
///<summary>Construct an instance that will deliver to the
///named and typed exchange, with the given routing
///key.</summary>
- public SimpleRpcClient(IModel model, ushort ticket,
- string exchange, string exchangeType, string routingKey)
- : this(model, ticket, new PublicationAddress(exchangeType, exchange, routingKey)) {}
+ public SimpleRpcClient(IModel model, string exchange,
+ string exchangeType, string routingKey)
+ : this(model, new PublicationAddress(exchangeType, exchange, routingKey)) {}
///<summary>Construct an instance that will deliver to the
///given address.</summary>
- public SimpleRpcClient(IModel model, ushort ticket, PublicationAddress address)
+ public SimpleRpcClient(IModel model, PublicationAddress address)
{
m_model = model;
- m_ticket = ticket;
m_address = address;
m_subscription = null;
m_timeout = Timeout.Infinite;
protected virtual void EnsureSubscription()
{
if (m_subscription == null) {
- m_subscription = new Subscription(m_model, m_ticket);
+ m_subscription = new Subscription(m_model);
}
}
public virtual void Cast(IBasicProperties requestProperties,
byte[] body)
{
- m_model.BasicPublish(m_ticket,
- Address,
+ m_model.BasicPublish(Address,
requestProperties,
body);
}
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
/// using (IConnection conn = new ConnectionFactory()
/// .CreateConnection(serverAddress)) {
/// using (IModel ch = conn.CreateModel()) {
- /// ushort ticket = ch.AccessRequest("/data");
- /// Subscription sub = new Subscription(ch, ticket, queueName);
+ /// Subscription sub = new Subscription(ch, queueName);
/// new MySimpleRpcServerSubclass(sub).MainLoop();
/// }
/// }
}
replyProperties.CorrelationId = properties.CorrelationId;
- m_subscription.Model.BasicPublish(m_subscription.Ticket,
- replyAddress,
+ m_subscription.Model.BasicPublish(replyAddress,
replyProperties,
reply);
} else {
///<summary>Called by HandleCall and HandleCast when a
///"jms/stream-message" request is received.</summary>
///<remarks>
- ///<para>
- /// The args array contains the values decoded by HandleCall
- /// or HandleCast.
- ///</para>
- ///<para>
- /// The replyWriter parameter will be null if we were called
- /// from HandleCast, in which case a reply is not expected or
- /// possible, or non-null if we were called from
- /// HandleCall. Use the methods of replyWriter in this case to
- /// assemble your reply, which will be sent back to the remote
- /// caller.
- ///</para>
- ///<para>
- /// This default implementation does nothing, which
- /// effectively sends back an empty reply to any and all
- /// remote callers.
- ///</para>
+ ///<para>
+ /// The args array contains the values decoded by HandleCall
+ /// or HandleCast.
+ ///</para>
+ ///<para>
+ /// The replyWriter parameter will be null if we were called
+ /// from HandleCast, in which case a reply is not expected or
+ /// possible, or non-null if we were called from
+ /// HandleCall. Use the methods of replyWriter in this case to
+ /// assemble your reply, which will be sent back to the remote
+ /// caller.
+ ///</para>
+ ///<para>
+ /// This default implementation does nothing, which
+ /// effectively sends back an empty reply to any and all
+ /// remote callers.
+ ///</para>
///</remarks>
public virtual void HandleStreamMessageCall(IStreamMessageBuilder replyWriter,
bool isRedelivered,
///<summary>Called by ProcessRequest(), this is the most
///general method that handles RPC-style requests.</summary>
///<remarks>
- ///<para>
- /// This method should map requestProperties and body to
- /// replyProperties and the returned byte array.
- ///</para>
- ///<para>
- /// The default implementation checks
- /// requestProperties.ContentType, and if it is
- /// "jms/stream-message" (i.e. the current value of
- /// StreamMessageBuilder.MimeType), parses it using
- /// StreamMessageReader and delegates to
- /// HandleStreamMessageCall before encoding and returning the
- /// reply. If the ContentType is any other value, the request
- /// is passed to HandleSimpleCall instead.
- ///</para>
- ///<para>
- /// The isRedelivered flag is true when the server knows for
- /// sure that it has tried to send this request previously
- /// (although not necessarily to this application). It is not
- /// a reliable indicator of previous receipt, however - the
- /// only claim it makes is that a delivery attempt was made,
- /// not that the attempt succeeded. Be careful if you choose
- /// to use the isRedelivered flag.
- ///</para>
+ ///<para>
+ /// This method should map requestProperties and body to
+ /// replyProperties and the returned byte array.
+ ///</para>
+ ///<para>
+ /// The default implementation checks
+ /// requestProperties.ContentType, and if it is
+ /// "jms/stream-message" (i.e. the current value of
+ /// StreamMessageBuilder.MimeType), parses it using
+ /// StreamMessageReader and delegates to
+ /// HandleStreamMessageCall before encoding and returning the
+ /// reply. If the ContentType is any other value, the request
+ /// is passed to HandleSimpleCall instead.
+ ///</para>
+ ///<para>
+ /// The isRedelivered flag is true when the server knows for
+ /// sure that it has tried to send this request previously
+ /// (although not necessarily to this application). It is not
+ /// a reliable indicator of previous receipt, however - the
+ /// only claim it makes is that a delivery attempt was made,
+ /// not that the attempt succeeded. Be careful if you choose
+ /// to use the isRedelivered flag.
+ ///</para>
///</remarks>
public virtual byte[] HandleCall(bool isRedelivered,
IBasicProperties requestProperties,
///<summary>Called by the default HandleCall() implementation
///as a fallback.</summary>
///<remarks>
- /// If the MIME ContentType of the request did not match any
- /// of the types specially recognised
- /// (e.g. "jms/stream-message"), this method is called instead
- /// with the raw bytes of the request. It should fill in
- /// replyProperties (or set it to null) and return a byte
- /// array to send back to the remote caller as a reply
- /// message.
+ /// If the MIME ContentType of the request did not match any
+ /// of the types specially recognised
+ /// (e.g. "jms/stream-message"), this method is called instead
+ /// with the raw bytes of the request. It should fill in
+ /// replyProperties (or set it to null) and return a byte
+ /// array to send back to the remote caller as a reply
+ /// message.
///</remarks>
public virtual byte[] HandleSimpleCall(bool isRedelivered,
IBasicProperties requestProperties,
///general method that handles asynchronous, one-way
///requests.</summary>
///<remarks>
- ///<para>
- /// The default implementation checks
- /// requestProperties.ContentType, and if it is
- /// "jms/stream-message" (i.e. the current value of
- /// StreamMessageBuilder.MimeType), parses it using
- /// StreamMessageReader and delegates to
- /// HandleStreamMessageCall, passing in null as the
- /// replyWriter parameter to indicate that no reply is desired
- /// or possible. If the ContentType is any other value, the
- /// request is passed to HandleSimpleCast instead.
- ///</para>
- ///<para>
- /// The isRedelivered flag is true when the server knows for
- /// sure that it has tried to send this request previously
- /// (although not necessarily to this application). It is not
- /// a reliable indicator of previous receipt, however - the
- /// only claim it makes is that a delivery attempt was made,
- /// not that the attempt succeeded. Be careful if you choose
- /// to use the isRedelivered flag.
- ///</para>
+ ///<para>
+ /// The default implementation checks
+ /// requestProperties.ContentType, and if it is
+ /// "jms/stream-message" (i.e. the current value of
+ /// StreamMessageBuilder.MimeType), parses it using
+ /// StreamMessageReader and delegates to
+ /// HandleStreamMessageCall, passing in null as the
+ /// replyWriter parameter to indicate that no reply is desired
+ /// or possible. If the ContentType is any other value, the
+ /// request is passed to HandleSimpleCast instead.
+ ///</para>
+ ///<para>
+ /// The isRedelivered flag is true when the server knows for
+ /// sure that it has tried to send this request previously
+ /// (although not necessarily to this application). It is not
+ /// a reliable indicator of previous receipt, however - the
+ /// only claim it makes is that a delivery attempt was made,
+ /// not that the attempt succeeded. Be careful if you choose
+ /// to use the isRedelivered flag.
+ ///</para>
///</remarks>
public virtual void HandleCast(bool isRedelivered,
IBasicProperties requestProperties,
///<summary>Called by the default HandleCast() implementation
///as a fallback.</summary>
///<remarks>
- /// If the MIME ContentType of the request did not match any
- /// of the types specially recognised
- /// (e.g. "jms/stream-message"), this method is called instead
- /// with the raw bytes of the request.
+ /// If the MIME ContentType of the request did not match any
+ /// of the types specially recognised
+ /// (e.g. "jms/stream-message"), this method is called instead
+ /// with the raw bytes of the request.
///</remarks>
public virtual void HandleSimpleCast(bool isRedelivered,
IBasicProperties requestProperties,
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
///</remarks>
public class Subscription: IEnumerable, IEnumerator, IDisposable {
protected IModel m_model;
- protected ushort m_ticket;
///<summary>Retrieve the IModel our subscription is carried by.</summary>
public IModel Model { get { return m_model; } }
- ///<summary>Retrieve the ticket we use for all our server operations.</summary>
- public ushort Ticket { get { return m_ticket; } }
protected string m_queueName;
protected QueueingBasicConsumer m_consumer;
///property of the Subscription. After creating the queue, the
///queue is bound to the named exchange, using Bind() with the
///given routingKey bind parameter.</summary>
- public Subscription(IModel model, ushort ticket,
- string exchangeName, string exchangeType, string routingKey)
- : this(model, ticket)
+ public Subscription(IModel model, string exchangeName,
+ string exchangeType, string routingKey)
+ : this(model)
{
Bind(exchangeName, exchangeType, routingKey);
}
///consuming from a fresh, autodelete, anonymous queue. The
///name of the queue can be retrieved using the QueueName
///property of the Subscription.</summary>
- public Subscription(IModel model, ushort ticket)
- : this(model, ticket, null) {}
+ public Subscription(IModel model)
+ : this(model, null) {}
///<summary>Creates a new Subscription in "noAck" mode,
///consuming from a named queue. If the queueName parameter is
///called. After declaring the queue and starting the
///consumer, the queue is bound to the named exchange, using
///Bind() with the given routingKey bind parameter.</summary>
- public Subscription(IModel model, ushort ticket, string queueName,
- string exchangeName, string exchangeType, string routingKey)
- : this(model, ticket, queueName)
+ public Subscription(IModel model, string queueName, string exchangeName,
+ string exchangeType, string routingKey)
+ : this(model, queueName)
{
Bind(exchangeName, exchangeType, routingKey);
}
///anonymous queue; otherwise, the queue is declared using
///IModel.QueueDeclare() before IModel.BasicConsume() is
///called.</summary>
- public Subscription(IModel model, ushort ticket, string queueName)
- : this(model, ticket, queueName, true) {}
+ public Subscription(IModel model, string queueName)
+ : this(model, queueName, true) {}
///<summary>Creates a new Subscription, with full control over
///both "noAck" mode and the name of the queue (which, if null
///queue and starting the consumer, the queue is bound to the
///named exchange, using Bind() with the given routingKey bind
///parameter.</summary>
- public Subscription(IModel model, ushort ticket, string queueName, bool noAck,
+ public Subscription(IModel model, string queueName, bool noAck,
string exchangeName, string exchangeType, string routingKey)
- : this(model, ticket, queueName, noAck)
+ : this(model, queueName, noAck)
{
Bind(exchangeName, exchangeType, routingKey);
}
///both "noAck" mode and the name of the queue (which, if null
///or the empty-string, will be a fresh autodelete queue, as
///for the other constructor overloads).</summary>
- public Subscription(IModel model, ushort ticket, string queueName, bool noAck)
+ public Subscription(IModel model, string queueName, bool noAck)
{
m_model = model;
- m_ticket = ticket;
if (queueName == null || queueName.Equals("")) {
- m_queueName = m_model.QueueDeclare(ticket);
+ m_queueName = m_model.QueueDeclare();
m_shouldDelete = true;
} else {
- m_queueName = m_model.QueueDeclare(ticket, queueName);
+ m_queueName = m_model.QueueDeclare(queueName);
m_shouldDelete = false;
}
m_consumer = new QueueingBasicConsumer(m_model);
- m_consumerTag = m_model.BasicConsume(m_ticket, m_queueName, m_noAck, null, m_consumer);
+ m_consumerTag = m_model.BasicConsume(m_queueName, m_noAck, null, m_consumer);
m_latestEvent = null;
}
// We set m_shouldDelete false before attempting
// the delete, because trying twice is worse than
// trying once and failing.
- m_model.QueueDelete(m_ticket, m_queueName, false, false, false);
+ m_model.QueueDelete(m_queueName, false, false, false);
}
} catch (OperationInterruptedException) {
// We don't mind, here.
///</remarks>
public void Bind(string exchangeName, string exchangeType, string routingKey)
{
- m_model.ExchangeDeclare(m_ticket, exchangeName, exchangeType);
- m_model.QueueBind(m_ticket, m_queueName, exchangeName, routingKey, false, null);
+ m_model.ExchangeDeclare(exchangeName, exchangeType);
+ m_model.QueueBind(m_queueName, exchangeName, routingKey, false, null);
}
///<summary>If LatestEvent is non-null, passes it to
///<summary>Retrieves the next incoming delivery in our
///subscription queue.</summary>
- ///<remarks>
- ///<para>
- /// Returns null when the end of the stream is reached and on
+ ///<remarks>
+ ///<para>
+ /// Returns null when the end of the stream is reached and on
/// every subsequent call. End-of-stream can arise through the
/// action of the Subscription.Close() method, or through the
/// closure of the IModel or its underlying IConnection.
- ///</para>
- ///<para>
- /// Updates LatestEvent to the value returned.
- ///</para>
- ///<para>
- /// Does not acknowledge any deliveries at all (but in "noAck"
+ ///</para>
+ ///<para>
+ /// Updates LatestEvent to the value returned.
+ ///</para>
+ ///<para>
+ /// Does not acknowledge any deliveries at all (but in "noAck"
/// mode, the server will have auto-acknowledged each event
/// before it is even sent across the wire to us).
- ///</para>
- ///</remarks>
+ ///</para>
+ ///</remarks>
public BasicDeliverEventArgs Next()
{
try {
} catch (EndOfStreamException) {
m_latestEvent = null;
}
- return m_latestEvent;
+ return m_latestEvent;
}
///<summary>Retrieves the next incoming delivery in our
///subscription queue, or times out after a specified number
///of milliseconds.</summary>
-
- ///<remarks>
- ///<para>
- /// Returns false only if the timeout expires before either a
- /// delivery appears or the end-of-stream is reached. If false
- /// is returned, the out parameter "result" is set to null,
- /// but LatestEvent is not updated.
- ///</para>
- ///<para>
- /// Returns true to indicate a delivery or the end-of-stream.
- ///</para>
- ///<para>
- /// If a delivery is already waiting in the queue, or one
- /// arrives before the timeout expires, it is removed from the
- /// queue and placed in the "result" out parameter. If the
- /// end-of-stream is detected before the timeout expires,
- /// "result" is set to null.
- ///</para>
- ///<para>
- /// Whenever this method returns true, it updates LatestEvent
- /// to the value placed in "result" before returning.
- ///</para>
- ///<para>
- /// End-of-stream can arise through the action of the
- /// Subscription.Close() method, or through the closure of the
- /// IModel or its underlying IConnection.
- ///</para>
- ///<para>
- /// This method does not acknowledge any deliveries at all
+ ///<remarks>
+ ///<para>
+ /// Returns false only if the timeout expires before either a
+ /// delivery appears or the end-of-stream is reached. If false
+ /// is returned, the out parameter "result" is set to null,
+ /// but LatestEvent is not updated.
+ ///</para>
+ ///<para>
+ /// Returns true to indicate a delivery or the end-of-stream.
+ ///</para>
+ ///<para>
+ /// If a delivery is already waiting in the queue, or one
+ /// arrives before the timeout expires, it is removed from the
+ /// queue and placed in the "result" out parameter. If the
+ /// end-of-stream is detected before the timeout expires,
+ /// "result" is set to null.
+ ///</para>
+ ///<para>
+ /// Whenever this method returns true, it updates LatestEvent
+ /// to the value placed in "result" before returning.
+ ///</para>
+ ///<para>
+ /// End-of-stream can arise through the action of the
+ /// Subscription.Close() method, or through the closure of the
+ /// IModel or its underlying IConnection.
+ ///</para>
+ ///<para>
+ /// This method does not acknowledge any deliveries at all
/// (but in "noAck" mode, the server will have
/// auto-acknowledged each event before it is even sent across
/// the wire to us).
- ///</para>
+ ///</para>
///<para>
- /// A timeout of -1 (i.e. System.Threading.Timeout.Infinite)
- /// will be interpreted as a command to wait for an
- /// indefinitely long period of time for an item or the end of
- /// the stream to become available. Usage of such a timeout is
- /// equivalent to calling Next() with no arguments (modulo
- /// predictable method signature differences).
+ /// A timeout of -1 (i.e. System.Threading.Timeout.Infinite)
+ /// will be interpreted as a command to wait for an
+ /// indefinitely long period of time for an item or the end of
+ /// the stream to become available. Usage of such a timeout is
+ /// equivalent to calling Next() with no arguments (modulo
+ /// predictable method signature differences).
///</para>
- ///</remarks>
+ ///</remarks>
public bool Next(int millisecondsTimeout, out BasicDeliverEventArgs result)
{
try {
// Closed!
throw new InvalidOperationException();
}
- object qValue;
- if (!m_consumer.Queue.Dequeue(millisecondsTimeout, out qValue)) {
- result = null;
- return false;
- }
+ object qValue;
+ if (!m_consumer.Queue.Dequeue(millisecondsTimeout, out qValue)) {
+ result = null;
+ return false;
+ }
m_latestEvent = (BasicDeliverEventArgs) qValue;
} catch (EndOfStreamException) {
m_latestEvent = null;
}
- result = m_latestEvent;
- return true;
+ result = m_latestEvent;
+ return true;
}
///<summary>Implementation of the IEnumerable interface, for
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
using (IConnection conn = new ConnectionFactory().CreateConnection(args[0])) {
using (IModel ch = conn.CreateModel()) {
- ushort ticket = ch.AccessRequest("/data");
object[] addends = new object[args.Length - 1];
for (int i = 0; i < args.Length - 1; i++) {
addends[i] = double.Parse(args[i + 1]);
}
- SimpleRpcClient client = new SimpleRpcClient(ch, ticket, "AddServer");
+ SimpleRpcClient client = new SimpleRpcClient(ch, "AddServer");
client.TimeoutMilliseconds = 5000;
client.TimedOut += new EventHandler(TimedOutHandler);
client.Disconnected += new EventHandler(DisconnectedHandler);
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
using (IConnection conn = new ConnectionFactory().CreateConnection(args[0])) {
using (IModel ch = conn.CreateModel()) {
- ushort ticket = ch.AccessRequest("/data");
- Subscription sub = new Subscription(ch, ticket, "AddServer");
+ Subscription sub = new Subscription(ch, "AddServer");
new AddServer(sub).MainLoop();
}
}
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
//
//---------------------------------------------------------------------------
using System;
+using System.Collections;
using System.IO;
using System.Text;
int optionIndex = 0;
bool durable = false;
bool delete = false;
+ IDictionary arguments = null;
while (optionIndex < args.Length) {
if (args[optionIndex] == "/durable") { durable = true; }
else if (args[optionIndex] == "/delete") { delete = true; }
+ else if (args[optionIndex].StartsWith("/arg:")) {
+ if (arguments == null) { arguments = new Hashtable(); }
+ string[] pieces = args[optionIndex].Split(new Char[] { ':' });
+ if (pieces.Length >= 3) {
+ arguments[pieces[1]] = pieces[2];
+ }
+ }
else { break; }
optionIndex++;
}
Console.Error.WriteLine("Available options:");
Console.Error.WriteLine(" /durable declare a durable queue");
Console.Error.WriteLine(" /delete delete after declaring");
+ Console.Error.WriteLine(" /arg:KEY:VAL add longstr entry to arguments table");
return 1;
}
using (IConnection conn = new ConnectionFactory().CreateConnection(serverAddress))
{
using (IModel ch = conn.CreateModel()) {
- ushort ticket = ch.AccessRequest("/data");
- string finalName = ch.QueueDeclare(ticket, inputQueueName, durable);
+ string finalName = ch.QueueDeclare(inputQueueName, false,
+ durable, false, false,
+ false, arguments);
Console.WriteLine("{0}\t{1}", finalName, durable);
while ((optionIndex + 1) < args.Length) {
string exchange = args[optionIndex++];
string routingKey = args[optionIndex++];
- ch.QueueBind(ticket, finalName, exchange, routingKey, false, null);
+ ch.QueueBind(finalName, exchange, routingKey, false, null);
Console.WriteLine("{0}\t{1}\t{2}", finalName, exchange, routingKey);
}
if (delete) {
- ch.QueueDelete(ticket, finalName, false, false, false);
+ ch.QueueDelete(finalName, false, false, false);
}
return 0;
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
ch.ModelShutdown += new ModelShutdownEventHandler(Second);
ch.CallbackException += new CallbackExceptionEventHandler(OnCallbackException);
- ushort ticket = ch.AccessRequest("/data");
- string queueName = ch.QueueDeclare(ticket);
+ string queueName = ch.QueueDeclare();
ThrowingConsumer consumer = new ThrowingConsumer(ch);
- string consumerTag = ch.BasicConsume(ticket, queueName, null, consumer);
- ch.BasicPublish(ticket, "", queueName, null, Encoding.UTF8.GetBytes("test"));
+ string consumerTag = ch.BasicConsume(queueName, null, consumer);
+ ch.BasicPublish("", queueName, null, Encoding.UTF8.GetBytes("test"));
ch.BasicCancel(consumerTag);
return 0;
}
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
using (IConnection conn = new ConnectionFactory().CreateConnection(serverAddress))
{
using (IModel ch = conn.CreateModel()) {
- ushort ticket = ch.AccessRequest("/data");
-
Subscription sub;
if (exchange == "") {
- sub = new Subscription(ch, ticket, routingKey);
+ sub = new Subscription(ch, routingKey);
} else {
- sub = new Subscription(ch, ticket, exchange, exchangeType, routingKey);
+ sub = new Subscription(ch, exchange, exchangeType, routingKey);
}
Console.WriteLine("Consumer tag: " + sub.ConsumerTag);
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
Console.Error.WriteLine(" /persist send message in 'persistent' mode");
return 1;
}
-
- Uri uri = new Uri(args[optionIndex++]);
+
+ Uri uri = new Uri(args[optionIndex++]);
string exchange = uri.Segments[1].TrimEnd(new char[] { '/' });
- string exchangeType =
- uri.Query.StartsWith("?type=") ? uri.Query.Substring(6) : null;
- string routingKey = uri.Segments.Length > 2 ? uri.Segments[2] : "";
+ string exchangeType = uri.Query.StartsWith("?type=") ? uri.Query.Substring(6) : null;
+ string routingKey = uri.Segments.Length > 2 ? uri.Segments[2] : "";
if (exchange == "amq.default") {
exchange = "";
using (IConnection conn = new ConnectionFactory().CreateConnection(uri))
{
using (IModel ch = conn.CreateModel()) {
- ushort ticket = ch.AccessRequest("/data");
if (exchangeType != null) {
- ch.ExchangeDeclare(ticket, exchange, exchangeType);
+ ch.ExchangeDeclare(exchange, exchangeType);
}
IMapMessageBuilder b = new MapMessageBuilder(ch);
if (persistMode) {
((IBasicProperties) b.GetContentHeader()).DeliveryMode = 2;
}
- ch.BasicPublish(ticket,
- exchange,
+ ch.BasicPublish(exchange,
routingKey,
(IBasicProperties) b.GetContentHeader(),
b.GetContentBody());
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
using (IConnection conn = new ConnectionFactory().CreateConnection(serverAddress))
{
using (IModel ch = conn.CreateModel()) {
- ushort ticket = ch.AccessRequest("/data");
if (exchange != "") {
- ch.ExchangeDeclare(ticket, exchange, exchangeType);
+ ch.ExchangeDeclare(exchange, exchangeType);
}
- ch.BasicPublish(ticket,
- exchange,
+ ch.BasicPublish(exchange,
routingKey,
null,
Encoding.UTF8.GetBytes(message));
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
using (IModel ch = conn.CreateModel()) {
conn.AutoClose = true;
- ushort ticket = ch.AccessRequest("/data");
- ch.QueueDeclare(ticket, queueName);
- BasicGetResult result = ch.BasicGet(ticket, queueName, false);
+ ch.QueueDeclare(queueName);
+ BasicGetResult result = ch.BasicGet(queueName, false);
if (result == null) {
Console.WriteLine("No message available.");
} else {
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
-// Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+// Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
// Technologies LLC., and Rabbit Technologies Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
//
// The Original Code is The RabbitMQ .NET Client.
//
-// The Initial Developers of the Original Code are LShift Ltd.,
-// Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+// The Initial Developers of the Original Code are LShift Ltd,
+// Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
//
-// Portions created by LShift Ltd., Cohesive Financial Technologies
-// LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
-// LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
-// Technologies Ltd.;
+// Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+// Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+// are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+// Technologies LLC, and Rabbit Technologies Ltd.
+//
+// Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+// Ltd. Portions created by Cohesive Financial Technologies LLC are
+// Copyright (C) 2007-2009 Cohesive Financial Technologies
+// LLC. Portions created by Rabbit Technologies Ltd are Copyright
+// (C) 2007-2009 Rabbit Technologies Ltd.
//
// All Rights Reserved.
//