Apache.NMS.ActiveMQ.Commands.Message.Clone C# (CSharp) Method

Clone() public method

public Clone ( ) : Object
return Object
        public override Object Clone()
        {
            // Since we are a derived class use the base's Clone()
            // to perform the shallow copy. Since it is shallow it
            // will include our derived class. Since we are derived,
            // this method is an override.
            Message o = (Message) base.Clone();

            if( this.messageId != null )
            {
                o.MessageId = (MessageId) this.messageId.Clone();
            }

            return o;
        }

Usage Example

 public override Response processMessage(Message send)
 {
     if(send != null)
     {
         if(TrackTransactions && send.TransactionId != null)
         {
             ConnectionId connectionId = send.ProducerId.ParentId.ParentId;
             if(connectionId != null)
             {
                 ConnectionState cs = connectionStates[connectionId];
                 if(cs != null)
                 {
                     TransactionState transactionState = cs[send.TransactionId];
                     if(transactionState != null)
                     {
                         transactionState.addCommand(send);
                     }
                 }
             }
             return TRACKED_RESPONSE_MARKER;
         }
         else if(TrackMessages)
         {
             messageCache.Add(send.MessageId, (Message) send.Clone());
             RemoveEldestInCache();
         }
     }
     return null;
 }