// Remove child node bool pyVaultNode::RemoveNode( pyVaultNode& pynode, PyObject* cbObject, uint32_t cbContext ) { pyVaultNodeOperationCallback * cb = new pyVaultNodeOperationCallback( cbObject ); if (fNode && pynode.fNode) { // Hack the callbacks until vault notification is in place cb->VaultOperationStarted( cbContext ); VaultRemoveChildNode(fNode->GetNodeId(), pynode.fNode->GetNodeId(), nil, nil); cb->SetNode(pynode.fNode); cb->fPyNodeRef = pyVaultNodeRef::New(fNode, pynode.fNode); cb->VaultOperationComplete( cbContext, hsOK ); return true; } else { // manually make the callback cb->VaultOperationStarted( cbContext ); cb->VaultOperationComplete( cbContext, hsFail ); } return false; }
// Remove all child nodes void pyVaultNode::RemoveAllNodes( void ) { if (!fNode) return; ARRAY(unsigned) nodeIds; fNode->GetChildNodeIds(&nodeIds, 1); for (unsigned i = 0; i < nodeIds.Count(); ++i) VaultRemoveChildNode(fNode->GetNodeId(), nodeIds[i], nil, nil); }
void pyVaultPlayerInfoListNode::RemovePlayer( uint32_t playerID ) { if (!fNode) return; NetVaultNode * templateNode = NEWZERO(NetVaultNode); templateNode->IncRef(); templateNode->SetNodeType(plVault::kNodeType_PlayerInfo); VaultPlayerInfoNode access(templateNode); access.SetPlayerId(playerID); if (RelVaultNode * rvn = fNode->GetChildNodeIncRef(templateNode, 1)) { VaultRemoveChildNode(fNode->nodeId, rvn->nodeId, nil, nil); rvn->DecRef(); } templateNode->DecRef(); }