summaryrefslogtreecommitdiff
path: root/qpid/dotnet/client-010/wcf/model/QpidBinding.cs
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/dotnet/client-010/wcf/model/QpidBinding.cs')
-rw-r--r--qpid/dotnet/client-010/wcf/model/QpidBinding.cs185
1 files changed, 185 insertions, 0 deletions
diff --git a/qpid/dotnet/client-010/wcf/model/QpidBinding.cs b/qpid/dotnet/client-010/wcf/model/QpidBinding.cs
new file mode 100644
index 0000000000..8f4684c1a1
--- /dev/null
+++ b/qpid/dotnet/client-010/wcf/model/QpidBinding.cs
@@ -0,0 +1,185 @@
+/*
+*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*
+*/
+
+using System.Configuration;
+using System.ServiceModel;
+using System.ServiceModel.Channels;
+
+namespace org.apache.qpid.wcf.model
+{
+ public sealed class QpidBinding : Binding
+ {
+ private string _host;
+ private int _port;
+ private string _username;
+ private string _password;
+ private string _virtuaHost;
+ private readonly CompositeDuplexBindingElement _compositeDuplex;
+ private readonly MessageEncodingBindingElement _encoding;
+ private bool _oneWayOnly;
+ private readonly ReliableSessionBindingElement _session;
+ private readonly TransactionFlowBindingElement _transactionFlow;
+ private bool _transactionsEnabled;
+ private readonly QpidTransportBindingElement _transport;
+
+
+
+ public QpidBinding() : this("localhost", 5672, "guest", "guest", "test")
+ {
+ }
+
+
+ public QpidBinding(string host, int port ) : this (host, port, "guest", "guest", "test")
+ {
+ }
+
+ public QpidBinding(string host, int port, string username, string password, string virtualhost)
+ {
+ Host = host;
+ PortNumber = port;
+ UserName = username;
+ Password = password;
+ VirtualHost = virtualhost;
+ _transport = new QpidTransportBindingElement();
+ _transport.Host = host;
+ _transport.PortNumber = port;
+ _transport.Password = password;
+ _transport.UserName = username;
+ _transport.VirtualHost = virtualhost;
+ _encoding = new TextMessageEncodingBindingElement();
+ _session = new ReliableSessionBindingElement();
+ _compositeDuplex = new CompositeDuplexBindingElement();
+ _transactionFlow = new TransactionFlowBindingElement();
+ }
+
+ public override BindingElementCollection CreateBindingElements()
+ {
+ var elements = new BindingElementCollection();
+
+ if (_transactionsEnabled)
+ {
+ elements.Add(_transactionFlow);
+ }
+ if (!OneWayOnly)
+ {
+ elements.Add(_session);
+ elements.Add(_compositeDuplex);
+ }
+ elements.Add(_encoding);
+ elements.Add(_transport);
+
+ return elements;
+ }
+
+
+
+ /// <summary>
+ /// Gets the scheme used by the binding, soap.amqp
+ /// </summary>
+ public override string Scheme
+ {
+ get { return "soap.amqp"; }
+ }
+
+ /// <summary>
+ /// Specifies the broker host
+ /// </summary>
+ [ConfigurationProperty("host")]
+ public string Host
+ {
+ get { return _host; }
+ set { _host = value; }
+ }
+
+ /// <summary>
+ /// Specifies the broker port
+ /// </summary>
+ public int PortNumber
+ {
+ get { return _port; }
+ set { _port = value; }
+ }
+
+ /// <summary>
+ /// Specifies the username
+ /// </summary>
+ public string UserName
+ {
+ get { return _username; }
+ set { _username = value; }
+ }
+
+ /// <summary>
+ /// Specifies the password
+ /// </summary>
+ public string Password
+ {
+ get { return _password; }
+ set { _password = value; }
+ }
+
+ /// <summary>
+ /// Specifies the virtualhost
+ /// </summary>
+ public string VirtualHost
+ {
+ get { return _virtuaHost; }
+ set { _virtuaHost = value; }
+ }
+
+
+ /// <summary>
+ /// Gets the AMQP _transport binding element
+ /// </summary>
+ public QpidTransportBindingElement Transport
+ {
+ get { return _transport; }
+ }
+
+ /// <summary>
+ /// Gets the reliable _session parameters for this binding instance
+ /// </summary>
+ public ReliableSession ReliableSession
+ {
+ get { return new ReliableSession(_session); }
+ }
+
+ /// <summary>
+ /// Determines whether or not the TransactionFlowBindingElement will
+ /// be added to the channel stack
+ /// </summary>
+ public bool TransactionFlow
+ {
+ get { return _transactionsEnabled; }
+ set { _transactionsEnabled = value; }
+ }
+
+ /// <summary>
+ /// Specifies whether or not the CompositeDuplex and ReliableSession
+ /// binding elements are added to the channel stack.
+ /// </summary>
+ public bool OneWayOnly
+ {
+ get { return _oneWayOnly; }
+ set { _oneWayOnly = value; }
+ }
+ }
+} \ No newline at end of file