diff options
Diffstat (limited to 'dotnet/client-010/wcf/model/QpidBinding.cs')
-rw-r--r-- | dotnet/client-010/wcf/model/QpidBinding.cs | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/dotnet/client-010/wcf/model/QpidBinding.cs b/dotnet/client-010/wcf/model/QpidBinding.cs new file mode 100644 index 0000000000..8f4684c1a1 --- /dev/null +++ b/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 |