Esempio n. 1
0
void Controller::Detach ()
{
  if (!impl->node)
    return;    
    
  AddRef ();    
    
  OnNodeDetached ();    

  Node* node = impl->node;
  
  impl->node = 0;    
  
  node->DetachController (impl->entry);  
  
  switch (impl->owner_mode)
  {
    case ControllerOwnerMode_ControllerOwnsNode:
      node->Release ();
      break;      
    case ControllerOwnerMode_NodeOwnsController:
      Release ();
      break;
    default:
      break;
  }

  Release ();
}