예제 #1
0
void IICHANEventAllocator::DeleteEvent(EVENT* e)
{
	if(!e)
		return;

	int id = e->id;
	id = GetIndexById(id);
	delete e;
	e = NULL;

	events.erase(events.begin() + id);
}
//---------------------------------------------------------------------------
void Table::AddIndexById(unsigned char Id, char *desc)
{
	if (GetIndexById(Id)) return;
	ColumnField *col = GetColumnById(Id);
	if (!col)
		return;
	IndexField *newindex = new IndexField(Id, IndexList->Fields.GetNElements()-1, col->GetDataType(), desc);
	newindex->index = new Index(IdxHandle, Id, IndexList->Fields.GetNElements()-1, col->GetDataType(), TRUE, dScanner->index->NEntries, this);
	IndexList->AddField(newindex);

	IndexField *previous = (IndexField *)newindex->Previous;
	previous->index->Colaborate(newindex);
	newindex->index->Colaborate(((IndexField *)IndexList->Fields.GetHead()));

	previous->index->Propagate();

	IndexList->WriteFields();
}