void DependencyParts::DeleteAll() { for (int i = 0; i < NUM_DEPENDENCYPARTS; ++i) { offsets_[i] = -1; } DeleteIndices(); for (iterator iter = begin(); iter != end(); iter++) { if ((*iter) != NULL) { delete (*iter); *iter = NULL; } } clear(); }
void SequenceParts::DeleteAll() { for (int i = 0; i < NUM_SEQUENCEPARTS; ++i) { offsets_[i] = -1; } DeleteIndices(); for (iterator iter = begin(); iter != end(); iter++) { if ((*iter) != NULL) { delete (*iter); *iter = NULL; } } clear(); }
//! sets the pointers to the indices void VertexBuffer::SetIndices(void* pIndices, uint numIndices, bool _32bitIndices /*= false*/) { if(pIndices == m_pIndices) return; _sizeOfIndex = _32bitIndices ? 4 : 2; DeleteIndices(); m_pIndices = pIndices; m_MaxIndices = numIndices; m_NumIndices = numIndices; if(_32bitIndices) _getIndex = [this](uint index){ return ((uint*)m_pIndices)[index]; }; else _getIndex = [this](uint index){ return ((ushort*)m_pIndices)[index]; }; }
void DependencyParts::BuildIndices(int sentence_length, bool labeled) { DeleteIndices(); index_.resize(sentence_length); for (int h = 0; h < sentence_length; ++h) { index_[h].resize(sentence_length); for (int m = 0; m < sentence_length; ++m) { index_[h][m] = -1; } } int offset, num_basic_parts; GetOffsetArc(&offset, &num_basic_parts); for (int r = 0; r < num_basic_parts; ++r) { Part *part = (*this)[offset + r]; CHECK(part->type() == DEPENDENCYPART_ARC); int h = static_cast<DependencyPartArc*>(part)->head(); int m = static_cast<DependencyPartArc*>(part)->modifier(); index_[h][m] = offset + r; } if (labeled) { index_labeled_.resize(sentence_length); for (int h = 0; h < sentence_length; ++h) { index_labeled_[h].resize(sentence_length); for (int m = 0; m < sentence_length; ++m) { index_labeled_[h][m].clear(); } } int offset, num_labeled_arcs; GetOffsetLabeledArc(&offset, &num_labeled_arcs); for (int r = 0; r < num_labeled_arcs; ++r) { Part *part = (*this)[offset + r]; CHECK(part->type() == DEPENDENCYPART_LABELEDARC); int h = static_cast<DependencyPartLabeledArc*>(part)->head(); int m = static_cast<DependencyPartLabeledArc*>(part)->modifier(); index_labeled_[h][m].push_back(offset + r); } } }
void CTupleStoreImpl::ConstructL() { CALLSTACKITEM_N(_CL("CTupleStoreImpl"), _CL("ConstructL")); iSubNameIndexLength=40; // name: id, tupletype, TInt cols[]={ EDbColUint32, EDbColInt32, //{ Uid, Id, subname1 }, EDbColInt32, EDbColInt32, EDbColText, // priority, EDbColInt8, // { Uid, Id}, EDbColInt32, EDbColInt32, // data LeaseExpires EDbColLongBinary, EDbColDateTime, // subname2 EDbColText, -1 }; TInt col_flags[]={ TDbCol::EAutoIncrement, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // the tuple id is added to indices so that data is read in // the order it arrives TInt idxs[]={ ETupleType, ENameModule, ENameId, ENameSubName2, ETupleId, -2, ETupleId, -2, ETupleType, EComponentModule, EComponentId, EPriority, ETupleId, -2, ELeaseExpires, -1 }; MDBStore::ConstructL(cols, idxs, false, _L("TUPLES"), EFalse, col_flags); iTimer=CTimeOut::NewL(*this, CActive::EPriorityIdle); if (SeekIdL(0)) { TInt version=0; iTable.GetL(); // check version and migrate if necessary version=iTable.ColInt32(ENameId); if (version<KVersion) { SwitchIndexL(-1); // no index TBool found=iTable.FirstL(); while (found) { iTable.GetL(); TUint uid_in_table, new_uid; new_uid=uid_in_table=iTable.ColInt(ENameModule); GetBackwardsCompatibleUid(new_uid); if (new_uid != uid_in_table) { UpdateL(); iTable.SetColL(ENameModule, new_uid); MDBStore::PutL(); } found=iTable.NextL(); } } if (version<=KVersionBeforeExpires) { SwitchIndexL(-1); // no index TBool found=iTable.FirstL(); while (found) { iTable.GetL(); TInt tupletype; TTupleName tn; tn.iModule.iUid=iTable.ColInt(ENameModule); tn.iId=iTable.ColInt(ENameId); tupletype=iTable.ColInt(ETupleType); if ( (!(tn == KCLSettingsTuple)) && tupletype!=ETupleSpaceInternal ) { MDBStore::DeleteL(); } found=iTable.NextL(); } } if (version<KVersionBeforeNewUids) { TInt no_idxs[]={ -1 }; iTable.Close(); DeleteIndices(_L("TUPLES")); CC_TRAPD(err, MDBStore::ConstructL(cols, no_idxs, false, _L("TUPLES"), ETrue, col_flags)); iDb.BeginL(); TTransactionHolder th(*this); TBool found=iTable.FirstL(); while (found) { iTable.GetL(); if ( iTable.ColUint(ETupleId) == 0 ) { UpdateL(); iTable.SetColL(ENameId, KVersion); MDBStore::PutL(); } else if (! iTable.IsColNull(ENameSubName1)) { UpdateL(); iTable.SetColL(ENameSubName2, iTable.ColDes(ENameSubName1).Left(iSubNameIndexLength)); MDBStore::PutL(); } found=iTable.NextL(); } iDb.CommitL(); MDBStore::ConstructL(cols, idxs, false, _L("TUPLES"), ETrue, col_flags); } if (version>=KVersionBeforeNewUids) { CleanOldTuplesL(); } SeekIdL(0); UpdateL(); iTable.SetColL(ENameId, KVersion); MDBStore::PutL(); } else { InsertL(); iTable.SetColL(ETupleType, ETupleSpaceInternal); iTable.SetColL(ENameId, KVersion); iTable.SetColL( ELeaseExpires, Time::MaxTTime() ); MDBStore::PutL(); } }
void SemanticParts::BuildIndices(int sentence_length, bool labeled) { DeleteIndices(); int offset, num_basic_parts; GetOffsetArc(&offset, &num_basic_parts); index_senses_.resize(sentence_length); for (int r = 0; r < num_basic_parts; ++r) { Part *part = (*this)[offset + r]; CHECK(part->type() == SEMANTICPART_ARC) << part->type(); int p = static_cast<SemanticPartArc*>(part)->predicate(); int s = static_cast<SemanticPartArc*>(part)->sense(); int k = 0; for (; k < index_senses_[p].size(); ++k) { if (index_senses_[p][k] == s) break; } if (k == index_senses_[p].size()) { index_senses_[p].push_back(s); } } index_.resize(sentence_length); for (int p = 0; p < sentence_length; ++p) { index_[p].resize(sentence_length); for (int a = 0; a < sentence_length; ++a) { index_[p][a].clear(); } } for (int r = 0; r < num_basic_parts; ++r) { Part *part = (*this)[offset + r]; CHECK(part->type() == SEMANTICPART_ARC); int p = static_cast<SemanticPartArc*>(part)->predicate(); int a = static_cast<SemanticPartArc*>(part)->argument(); int s = static_cast<SemanticPartArc*>(part)->sense(); if (s >= index_[p][a].size()) index_[p][a].resize(s+1, -1); index_[p][a][s] = offset + r; } if (labeled) { index_labeled_.resize(sentence_length); for (int p = 0; p < sentence_length; ++p) { index_labeled_[p].resize(sentence_length); for (int a = 0; a < sentence_length; ++a) { index_labeled_[p][a].clear(); } } int offset, num_labeled_arcs; GetOffsetLabeledArc(&offset, &num_labeled_arcs); for (int r = 0; r < num_labeled_arcs; ++r) { Part *part = (*this)[offset + r]; CHECK(part->type() == SEMANTICPART_LABELEDARC); int p = static_cast<SemanticPartLabeledArc*>(part)->predicate(); int a = static_cast<SemanticPartLabeledArc*>(part)->argument(); int s = static_cast<SemanticPartLabeledArc*>(part)->sense(); //int role = static_cast<SemanticPartLabeledArc*>(part)->role(); if (s >= index_labeled_[p][a].size()) index_labeled_[p][a].resize(s+1); //if (role >= index_labeled_[p][a][s].size()) { // index_labeled_[p][a][s].resize(role+1, -1); //} //index_labeled_[p][a][s][role] = offset + r; index_labeled_[p][a][s].push_back(offset + r); } } }
//! destructor VertexBuffer::~VertexBuffer() { DeleteVertices(); DeleteIndices(); }