예제 #1
0
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);
}
예제 #2
0
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);
}
예제 #3
0
// delete operator
void DataVault_Destroy(DataVaultPtr self)
{
	DataVault_dtor(self);
	esif_ccb_free(self);
}