void DataBank_CloseNameSpace ( DataBankPtr self, esif_string nameSpace ) { UInt32 ns; esif_ccb_write_lock(&self->lock); // Find Existing NameSpace for (ns = 0; ns < self->size; ns++) { if (esif_ccb_stricmp(nameSpace, self->elements[ns].name) == 0) { DataVault_dtor(&self->elements[ns]); // Move Array Items down one and wipe the final item for ( ; ns + 1 < self->size; ns++) esif_ccb_memcpy(&self->elements[ns], &self->elements[ns + 1], sizeof(self->elements[ns])); if (ns < ESIF_MAX_NAME_SPACES) { WIPEPTR(&self->elements[ns]); } self->size--; } } esif_ccb_write_unlock(&self->lock); }
void DataBank_Destroy (DataBankPtr self) { UInt32 idx; for (idx = 0; idx < self->size; idx++) DataVault_dtor(&self->elements[idx]); self->size = 0; esif_ccb_lock_uninit(&self->lock); esif_ccb_free(self); }
// delete operator void DataVault_Destroy(DataVaultPtr self) { DataVault_dtor(self); esif_ccb_free(self); }