void ServerModel::QueueAction(ActionPtr spAction) { // resolve argument ObjectRef& ref = spAction->ArgumentRef(); if (ref.m_sp == NULL) ref.m_sp = m_objectMap.FindObject(ref.m_id).m_sp; spAction->Do(*this); }
/// executes action void Execute(ActionPtr spAction) { ObjectRef& arg = spAction->ArgumentRef(); ATLASSERT(arg.m_sp != NULL); { // lock argument ref Lockable::LockType lock = arg.m_sp->Lock(); spAction->Do(m_model); } }