Exemple #1
0
        /// <summary>
        /// Opens and inintializes the Endpoint.  This should be called only once prior to closing the endpoint.
        /// </summary>
        /// <param name="cfxHandle">The unique CFX Handle for this endpoint.</param>
        /// <param name="requestUri">The Uri / network address on which this endpoint will listen for incoming requests for this endpoint.  amqp:// prefix
        /// may be used for unencrypted AMQP on port 5672.  amqps:// prefix may be used for secure AMQP on port 5671.  You may also specify
        /// custom ports using normal hostname:port notation.  Authentication may also be specified using standard user notation:  eg.
        /// amqps://user1:password1@myhost/
        /// </param>
        /// <param name="certificate">An X509 certificate that has been loaded from the certificate store.  This is optional, and only must be set when using secure, encrypted AMQPS</param>
        public void Open(string cfxHandle, Uri requestUri = null, X509Certificate2 certificate = null)
        {
            IsOpen = false;

            try
            {
                this.CFXHandle = cfxHandle;

                if (requestUri != null)
                {
                    this.RequestUri  = requestUri;
                    requestProcessor = new AmqpRequestProcessor();
                    requestProcessor.Open(this.CFXHandle, this.RequestUri, certificate);
                    requestProcessor.OnRequestReceived             += RequestProcessor_OnRequestReceived;
                    requestProcessor.OnMessageReceivedFromListener += RequestProcessor_OnCFXMessageReceivedFromListener;
                }

                IsOpen = true;
            }
            catch (Exception ex)
            {
                Cleanup();
                Debug.WriteLine(ex.Message);
            }
        }
 public InternalSourceProcessor(AmqpRequestProcessor parentProcessor, string sourceAddress)
 {
     this.parentProcessor = parentProcessor;
     this.SourceAddress   = sourceAddress;
     MessageQueue         = new DurableQueue($"SOURCEQUEUE-{sourceAddress}");
     MessageQueue.Clear();
 }
Exemple #3
0
        public void Open(string cfxHandle, Uri requestUri = null)
        {
            IsOpen = false;

            try
            {
                this.CFXHandle = cfxHandle;
                if (requestUri != null)
                {
                    this.RequestUri = requestUri;
                }
                else
                {
                    this.RequestUri = new Uri(string.Format("amqp://{0}:5672", EnvironmentHelper.GetMachineName()));
                }

                requestProcessor = new AmqpRequestProcessor();
                requestProcessor.Open(this.CFXHandle, this.RequestUri);
                requestProcessor.OnRequestReceived += RequestProcessor_OnRequestReceived;

                IsOpen = true;
            }
            catch (Exception ex)
            {
                Cleanup();
                Debug.WriteLine(ex.Message);
            }
        }
Exemple #4
0
        private void Cleanup()
        {
            if (requestProcessor != null)
            {
                requestProcessor.Close();
                requestProcessor = null;
            }

            foreach (AmqpConnection conn in channels.Values)
            {
                conn.Dispose();
            }

            channels.Clear();
            IsOpen = false;
        }
 public InternalMessageProcessor(AmqpRequestProcessor p)
 {
     processor = p;
 }
 public InternalIncomingLinkEndpoint(AmqpRequestProcessor requestProcessor, string targetAddress)
 {
     parentProcessor    = requestProcessor;
     this.targetAddress = targetAddress;
 }
 public InternalLinkProcessor(AmqpRequestProcessor requestProcessor)
 {
     parentProcessor = requestProcessor;
     //TargetAddress = targetAddress;
 }
 public InternalMessageProcessor(AmqpRequestProcessor p, string targetAddress)
 {
     parentProcessor = p;
     TargetAddress   = targetAddress;
 }
Exemple #9
0
 public InternalLinkProcessor(AmqpRequestProcessor requestProcessor, string targetAddress)
 {
     parentProcessor = requestProcessor;
     TargetAddress   = targetAddress;
 }