Skip to content

Commit 89c04b7

Browse files
author
Simon MacMullen
committed
Merge bug23839 (Add capabilities to client connection)
2 parents 7d42393 + b5b2e62 commit 89c04b7

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

projects/client/RabbitMQ.Client/src/client/impl/AbstractProtocolBase.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
using RabbitMQ.Client.Impl;
4343
using RabbitMQ.Util;
4444

45+
using System.Collections;
46+
4547
namespace RabbitMQ.Client.Impl {
4648
public abstract class AbstractProtocolBase: IProtocol {
4749
public abstract int MajorVersion { get; }
@@ -50,6 +52,8 @@ public abstract class AbstractProtocolBase: IProtocol {
5052
public abstract string ApiName { get; }
5153
public abstract int DefaultPort { get; }
5254

55+
public IDictionary Capabilities = new Hashtable();
56+
5357
public abstract IFrameHandler CreateFrameHandler(AmqpTcpEndpoint endpoint);
5458
public abstract IConnection CreateConnection(ConnectionFactory factory,
5559
bool insist,
@@ -74,20 +78,20 @@ public abstract void CreateChannelClose(ushort reasonCode,
7478
out Command request,
7579
out int replyClassId,
7680
out int replyMethodId);
77-
81+
7882
///<summary>Used in the quiescing session to determine if the command
7983
///is allowed to be sent.</summary>
80-
public abstract bool CanSendWhileClosed(Command cmd);
84+
public abstract bool CanSendWhileClosed(Command cmd);
8185

8286
public AmqpVersion Version {
8387
get {
8488
return new AmqpVersion(MajorVersion, MinorVersion);
8589
}
8690
}
8791

88-
public override string ToString() {
89-
return Version.ToString();
90-
}
92+
public override string ToString() {
93+
return Version.ToString();
94+
}
9195

9296
public override bool Equals(object obj) {
9397
return (GetType() == obj.GetType());

projects/client/RabbitMQ.Client/src/client/impl/ConnectionBase.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -984,6 +984,7 @@ protected void StartAndTune()
984984
}
985985

986986
m_clientProperties = new Hashtable(m_factory.ClientProperties);
987+
m_clientProperties["capabilities"] = Protocol.Capabilities;
987988

988989
// FIXME: parse out locales properly!
989990
ConnectionTuneDetails connectionTune = default(ConnectionTuneDetails);

projects/client/RabbitMQ.Client/src/client/impl/v0_9_1/ProtocolBase.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,17 @@
4242
using RabbitMQ.Client.Impl;
4343
using RabbitMQ.Util;
4444

45+
using System.Collections;
46+
4547
namespace RabbitMQ.Client.Framing.Impl.v0_9_1 {
4648
public abstract class ProtocolBase: AbstractProtocolBase {
4749

50+
public ProtocolBase() {
51+
Capabilities["publisher_confirms"] = true;
52+
Capabilities["exchange_exchange_bindings"] = true;
53+
Capabilities["basic.nack"] = true;
54+
}
55+
4856
public override IFrameHandler CreateFrameHandler(AmqpTcpEndpoint endpoint) {
4957
return new SocketFrameHandler_0_9(endpoint);
5058
}

0 commit comments

Comments
 (0)