public void TestRemove() { TSet <Frac> tset1 = new TSet <Frac>(); tset1.Add(new Frac(1, 2)); tset1.Add(new Frac(2, 3)); tset1.Add(new Frac(3, 4)); tset1.Remove(new Frac(2, 3)); Assert.AreEqual(tset1.Show(), "1/2 3/4 "); }
public Boolean RemoveState(SafeID tID) { if ((!this.Available) || ((!m_DynamicMode && IsActive))) { return(false); } lock (m_Locker) { State tTarget = m_FreeStateSet.Find(tID); if (null == tTarget) { return(false); } m_FreeStateSet.Remove(tID); } RefreshState(); return(true); }
public static void Remove(String tID) { s_NameSpaceSet.Remove(tID); }
public override Status Task(params object[] tArgs) { if (!this.Available) { return(m_Status); } do { switch (m_Status) { case Status.FSM_STARTING: m_Status = Status.FSM_WORKING; break; case Status.FSM_CLOSING: case Status.FSM_PENDING: case Status.FSM_WORKING: break; case Status.FSM_ERROR: case Status.FSM_INVALID: case Status.FSM_CANCELLED: case Status.FSM_CLOSED: case Status.FSM_IDLE: default: return(m_Status); } //! stop event if (m_Event.WaitOne(0)) { lock (m_Locker) { foreach (State tItem in m_ActiveStateSet) { if (null == tItem) { continue; } else if (!tItem.Available) { continue; } if ((tItem.IsActive) || (tItem.Status == Status.FSM_IDLE)) { tItem.StopSignal.Set(); } } foreach (State tItem in m_ActiveFSMSet) { if (null == tItem) { continue; } else if (!tItem.Available) { continue; } IFSM tFSM = tItem as IFSM; if (null == tFSM) { continue; } if ((tFSM.IsActive) || (tFSM.Status == Status.FSM_IDLE)) { tFSM.RequestStop(); } } m_Event.Reset(); } } m_StateChanged = false; //!< reset state change flag lock (m_Locker) { State[] tActiveStates = m_ActiveStateSet.ToArray(); foreach (State tItem in tActiveStates) { if (null == tItem) { continue; } else if (!tItem.Available) { continue; } switch (tItem.Task(m_Args)) { case Status.FSM_PENDING: case Status.FSM_CLOSING: case Status.FSM_STARTING: case Status.FSM_WORKING: break; case Status.FSM_ERROR: //! encountered an unhandled error if (ErrorHandler(m_Args)) { continue; } m_Status = Status.FSM_ERROR; return(m_Status); case Status.FSM_INVALID: case Status.FSM_CANCELLED: case Status.FSM_CLOSED: case Status.FSM_IDLE: default: m_FreeStateSet.Add(tItem); m_ActiveStateSet.Remove(tItem.ID); m_StateChanged = true; break; } } tActiveStates = m_ActiveFSMSet.ToArray(); foreach (State tItem in tActiveStates) { if (null == tItem) { continue; } else if (!tItem.Available) { continue; } switch (tItem.Task(m_Args)) { case Status.FSM_ERROR: m_Status = Status.FSM_ERROR; return(m_Status); case Status.FSM_CLOSING: case Status.FSM_PENDING: case Status.FSM_STARTING: case Status.FSM_WORKING: break; case Status.FSM_INVALID: case Status.FSM_CANCELLED: case Status.FSM_CLOSED: case Status.FSM_IDLE: default: m_FreeStateSet.Add(tItem); m_ActiveFSMSet.Remove(tItem.ID); m_StateChanged = true; IFSM tFSM = tItem as IFSM; if (null != tFSM) { tFSM.Reset(); } do { miniFSM tminiFSM = tItem as miniFSM; if (null == tminiFSM) { break; } else if (null == tminiFSM.ReturnStateID) { break; } this.TriggerFSM(tminiFSM.ReturnStateID, m_Args); }while (false); break; } } } RefreshState(); }while (m_StateChanged); return(m_Status); }
//! \brief remove component from list public Boolean Remove(SafeID tID) { return(m_ComponentSet.Remove(tID)); }