コード例 #1
0
 /// <summary>
 /// Releases unmanaged and - optionally - managed resources
 /// </summary>
 /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
 private void Dispose(bool disposing)
 {
     if (disposing)
     {
         SenderEndPoint.Dispose();
     }
 }
コード例 #2
0
 /// <summary>
 /// Sends the specified message.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="messageInfo">The message info.</param>
 /// <returns></returns>
 public override int Send(byte[] message, IMessageInfo messageInfo)
 {
     try
     {
         SenderEndPoint.Send(message, messageInfo.Header.Priority);
         return(message.Length);
     }
     catch (Exception ex)
     {
         Logger.Fatal("Error Send Message", ex);
         return(0);
     }
 }
コード例 #3
0
        /// <summary>
        /// Sends the specified MSG.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="priority">The priority.</param>
        /// <returns>Bytes Sent</returns>
        public override int Send(IMessage message, int priority)
        {
            try
            {
                var messageBus = MessageBusFactory.Create(_identification, message, DataContractSerializer);
                messageBus.Header.Priority = priority;

                var callerContext = CallerContextFactory.Create(_identification);
                messageBus.Header.CallStack.Push(callerContext);

                var serializedMessage = MessageBusParser.ToBytes(messageBus);
                SenderEndPoint.Send(serializedMessage, priority);
                InvokeSentMessage(messageBus.Header.BodyType, serializedMessage.Length);
                return(serializedMessage.Length);
            }
            catch (Exception ex)
            {
                Logger.Error("OutputGateway - Error Send Message", ex);
                throw;
            }
        }
コード例 #4
0
        /// <summary>
        /// Sends the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="messageInfo">The message info.</param>
        /// <returns></returns>
        public override int Send(IMessage message, IMessageInfo messageInfo)
        {
            try
            {
                var messageBus = MessageBusFactory.Create(_identification, message, DataContractSerializer);

                messageBus.Header.Priority    = messageInfo.Header.Priority;
                messageBus.Header.CallStack   = messageInfo.Header.CallStack;
                messageBus.Header.CallContext = messageInfo.CurrentCallContext;

                if (!messageInfo.IsReply)
                {
                    var callerContext = CallerContextFactory.Create(_identification, messageInfo.CurrentSession);
                    messageBus.Header.CallStack.Push(callerContext);
                }
                else
                {
                    messageBus.Header.Type = MessageBusType.Reply;
                }

                var serializedMessage = MessageBusParser.ToBytes(messageBus);

                if (!messageInfo.IsReply)
                {
                    messageBus.Header.CallStack.Pop();
                }

                SenderEndPoint.Send(serializedMessage, messageInfo.Header.Priority);
                InvokeSentMessage(messageBus.Header.BodyType, serializedMessage.Length);
                return(serializedMessage.Length);
            }
            catch (Exception ex)
            {
                Logger.Error("OutputGateway - Error Send Message", ex);
                throw;
            }
        }
コード例 #5
0
 /// <summary>
 /// Serves as a hash function for a particular type.
 /// </summary>
 /// <returns>
 /// A hash code for the current <see cref="T:System.Object"/>.
 /// </returns>
 /// <filterpriority>2</filterpriority>
 public override int GetHashCode()
 {
     return(SenderEndPoint != null ? SenderEndPoint.GetHashCode() : 0);
 }
コード例 #6
0
 /// <summary>
 /// Sends the specified MSG.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="priority">The priority.</param>
 public override int Send(byte[] message, int priority)
 {
     SenderEndPoint.Send(message, priority);
     return(message.Length);
 }