示例#1
0
 /// <summary>
 /// Prepare instance for GC collection
 /// </summary>
 public virtual void Clear()
 {
     hasBeenExecuted = false;
     inProgress      = false;
     chainedCommand?.Clear();
     _previousCommand = null;
     _onExecuteDone.Clear();
 }
示例#2
0
 public void UnChain()
 {
     if (chainedCommand != null)
     {
         (chainedCommand as BaseChainCommand)._previousCommand = null;
         chainedCommand = null;
     }
 }
示例#3
0
        /// <summary>
        /// Recursive chaining
        /// </summary>
        /// <param name="cmd"></param>
        /// <returns></returns>
        public IChainCommand Chain(IChainCommand cmd)
        {
            if (chainedCommand == null)
            {
                chainedCommand      = cmd;
                cmd.PreviousCommand = this;
            }
            else
            {
                chainedCommand.Chain(cmd);
            }

            return(cmd);
        }
示例#4
0
 public IChainCommand SetNext(IChainCommand command)
 {
     m_next = command;
     return(m_next);
 }
示例#5
0
 public void SetSuccessor(IChainCommand successor)
 {
     m_successor = successor;
 }
        public IChainCommand Chain(IChainCommand cmd)
        {
            chainedCommand = cmd;

            return cmd;
        }